#1
| ||||
| ||||
Gruppenverwaltung - How to?Hi. Ich bin mittlerweile ganz gut mit dem Viscacha Board zugange, doch eine Sache da zerbreche ich mir jetzt seit einigen Tagen den Kopf drüber. Wie realisiere ich das mit den Nutzergruppen/rechten? Ich hoffe mir kann einer Erklären wie ich das am besten Löse. Habe mir schon einiges angeguckt aber so richtig schlüßßig bin ich noch nirgend geworden. Hoffe ihr könnt mir da weiterhelfen, MfG MaMo __________________ Forensoftware mit integriertem CMS: Viscacha 0.8! |
#2
| ||||
| ||||
Naja, am besten, ein Benutzer kann in mehreren Gruppen sein. Entweder du speicherst dies in den Daten jedes Benutzers in diesem (oder einem ähnlichen) Format speicherst: 1,3,4,7 (Gruppen-IDs , geteilt durch Komma!) Oder du nimmst eine Extra-Tabelle, um Benutzer und Gruppen miteinander zu verknüpfen. Wenn du in den Gruppen selbst bestimmte Rechte festlegst, dann mach es am besten so: Benutzer kann [irgendwas]: 1=ja, 0=nein, -1=nicht gesetzt. Wenn du (Beispielsweise) per MySQL dann in einer Query die Gruppen eines Benutzers abfragst, ermittelst du dann immer den maximalen Wert jeder Spalte, Beispiel: Klein Fritzchen ist in 3 Gruppen: - Almjodler: darf_limo_trinken=-1 - Almdudler: darf_limo_trinken=1 - Bersteiger: darf_limo_trinken=0 Nun erhält der Benutzer immer die maximalen ihm zugewiesenen Rechte (Er darf Limo trinken!). Man müsste am besten irgednwo im Forum Standardwerte definieren, die angeben, ob der User Standardmäßig Limo trinken darf oder nicht, am besten in Standardgruppen, denen Jedes Mitlgied automatisch angehört (Gäste, registrierte Benutzer) Man kann noch Prioritäten dazunehmen, was heißt, dass bestimmte Gruppen andere Gruppenrechte "überschreiben" können, ürde ich persönlich aber nich machen! Ich habe auch mal ein Board programmiert (nie fertig geworden), das habe ich es ähnlich, wie oben beschrieben gemacht! Ich hoffe, das hilft dir weiter! __________________ Fabian Michael "Ein Tag, an dem du nicht lächelst, ist ein verlorener Tag." - Charlie Chaplin Wiki |
#3
| ||||
| ||||
Hi. Danke. Ja das hilft schonmal ein wenig. Hat noch einer andere Ausführungen? MfG MaMo __________________ Forensoftware mit integriertem CMS: Viscacha 0.8! |
#4
| |||
| |||
Ich möchte das bei meinem Board so realisieren: Der Nutzer gehört nur einer Gruppe an, besitzt aber einen Userlevel und einen Straflevel. Nun wird, z.B. beim posten geprüft: Darf die Gruppe dort posten? Besitzt er einen Userlevel größer oder gleich dem Minimum? Ist sein Straflevel kleiner als der maximal erlaubte? Ich denke das ist einfach zu realisieren, gewährt aber dennoch viele Freiheiten für den Admin. Zugegeben, das System ist von Rapidforum abgeguckt... " Allerdings ist Dracaelius Version deutlich beliebert und wohl auch besser. __________________ Patrick Gotthardt Patrick Gotthardt on Software |
#5
| ||||
| ||||
Ich habe für ein eigenes Forum folgenden Ansatz überlegt und angefangen (erfolgreich) umzusetzen. Das Gruppensystem umfasst die Möglichkeit ein Mitglied mehreren Gruppen zuzuweisen, jeder Gruppe individuellen Zugriff auf die verschiedenen Boardunktionen und auf einzelne Foren zu geben. Folgende Tabellen (MySQL) werden benötigt. 1. Eine Tabelle in der generelle Informationen, wie Gruppen ID und Titel gespeichert werden. 2. Eine Tabelle in der für jede Gruppe allgemeine Zugriffsrechte gespeichert werden (kann Suche benutzen, kann Mitgliederliste einsehen usw.). 3. Eine Tabelle in der gespeichert wird welche Gruppe welches Forum wie betreten darf (kann Forum betreten, kann Themen starten, kann Antworten schreiben, kann Beiträge editieren usw.). 4. Eine Tabelle in der gespeichert wird welcher Benutzer Mitglied in welchen Gruppen ist. Angenommen die Tabellen bekommen folgende Namen: 1. groups 2. group_permissions 2. forum_permissions 4. group_memberships brauchen sie folgende Struktur: groups: Code: group_id int | group_title varchar Code: group_id int | permission_name varchar | permission_value enum(0, 1) Code: group_id int | forum_id int | permission_name varchar | permission_value enum(0, 1) Code: group_id int | user_id int Wir nehmen einfach mal an das der aktuelle Benutzer die Nummer 5 hat und Mitglied in den Gruppen 1,2 und 4 ist. Wenn du die Gruppen haben willst in der der Benutzer Mitglied ist: Code: SELECT group_id FROM group_memberships WHERE user_id = 5 Code: SELECT permission_name, permission_value FROM group_permissions WHERE group_id IN(1,2,4) Wenn also Gruppe 1 und 2 die Suchfunktion nicht benutzen dürfen, 'can_use_search' also auf 0 steht, Gruppe 4 die Suchfunktion aber benutzen darf, 'can_use_search' also auf 1 steht, kann auch der Benutzer mit Mitgliedschaft in allen 3 Gruppen die Suchfunktion benutzen. Angenommen der Benutzer betritt das Forum mit der Nummer 7 musst du in etwa das gleiche machen: Code: SELECT permission_name, permission_value FROM forum_permissions WHERE group_id IN(1,2,4) AND forum_id = 7 Das ganze ist ein Ansatz wie ich ihn mir überlegt habe, hoffe das war jetzt verständlich genug |
#6
| ||||
| ||||
Hi. Hmm... ja der Ansatz @ exe ist gut. Ich denke den werde ich so auch praktizieren. Danke für eure Hilfe, werde jetztr mal starten. MfG MaMo __________________ Forensoftware mit integriertem CMS: Viscacha 0.8! |
Stichworte |
- |