|
|
|
|
|
|
|||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
|
|
LinkBack (1) | Themen-Optionen | Thema bewerten |
|
|
#1 (permalink)
|
|
Erfahrener Benutzer
Registriert seit: 06.09.2008
Beiträge: 189
![]() |
Hallo!
Ich dachte ja immer es wäre eine gute Idee ein Rechtesystem zu schreiben, dass auf dem binären Zahlensystem aufbaut, doch wurde ich ja nun eines Besseren belehrt und möchte mich daher an die Entwicklung eines neuen Systems setzen. In dem Thread, in dem ich mein Binäres Rechtesystem vorgestellt hatte, wurden ja schon einige Alternativen genannt, wie ich ein solches System aufbauen könnte. Eine Möglichkeit wäre natürlich alle Rechte eines Nutzers in eine Spalte rights in die Usertabelle zu schreiben und einfach durch Kommata zu separieren. Das halte ich bei großen Systemen für eine absolut unübersichtliche, Performance fressende und vorallem schlecht zu händelnde Variante. Manko 10 hatte da denke ich schon eine deutlich bessere Alternative. Seine Idee war es drei Tabellen für die User, die Rechte (oder geschützten Bereiche) sowie eine Tabelle in der diese Zusammengeführt werden, also die Benutzer bezogenen Rechte (Permissions), zu erstellen. Auf diese Weise könnte man relativ einfach Module hinzufügen oder auch entfernen. Schön fand ich auch die Idee von dr.e das ganze über Beziehungen zu regeln. Allerdings halte ich diesen Ansatz für etwas zu komplex. Man könnte an dieser Stelle vielleicht ansetzen und anstatt mit tausenden Tabellen mit Nested Sets arbeiten. Käme mir auch ganz geöegen, da ich mich bereits mit diesem Thema beschäftigt habe. Ich würde jetzt auf der Idee von Manko 10 aufbauen und eine drei Tabellen Struktur aufbauen. Doch anstatt einer Tabelle, in der nur die existierenden Bereiche gespeichert sind, würde ich eine Tabelle einfügen, die auf Nested Sets aufbaut. Durch die Baumstruktur ist es nun sehr einfach möglich Rechte zur Verarbeitung eines, eines Bereichs oder allen Artikeln zu vergeben. Zudem kann man duch die Baumstruktur auch sehr sehr einfach verschiedene Navigationen von einander trennen, diese Navigationen individuell sortieren, weitere Module einbinden oder eine Sitemap erstellen lassen. Was haltet ihr von einem solchen Ansatz? Gibt es Anregungen, Fragen oder weiterführende Ideen? Freue mich über jede Wortmeldung. MfG, Andy
__________________
I'm so tired of slitting the throats of people calling me a violent psychopath. |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#2 (permalink) |
|
Moderator und Wett-König
|
Hallo #Avedo,
für ein reines Benutzer-Management reicht dir auf das folgende UML: Adventure PHP Framework - Generischer OR Mapper. Damit solltest du alle weiteren Themen erschlagen können. Nested Sets ist eine Möglichkeit hirarchische Strukturen (Bäume) abzubilden, sind für meine Begriffe jedoch hier nicht nötig.
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
#3 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 06.09.2008
Beiträge: 189
![]() |
Das es gute Lösungen bereits gibt ist mir bekannt. Allerdings möchte ich selbst eine Lösung finden, da ich, um mene PHP-Kenntnisse zu erweitern, ein eigenes kleines CMS schreiben möchte. Das wird wahrscheinlich nie jemandem außer mir helfen, aber es ist eine gute Übung. Das Problem ist, dass dies erweiterbar sein soll und somit reicht mein bisher verwendetes binäres Rechtesstem nicht mehr aus.
MfG, Andy
__________________
I'm so tired of slitting the throats of people calling me a violent psychopath. |
|
|
|
|
|
#4 (permalink) | |
|
moderatives Dielektrikum
Registriert seit: 21.05.2008
Beiträge: 25.134
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Zitat:
Das UML sieht doch ganz vernünftig aus. Ich persönlich würde allerdings auch der Gruppe ein PermissionSet zuordnen.
__________________
-- „Eins ist Fakt: Gescannt wird nackt!“ Privatsphäre 2.0 - Nacktscanner mit Eyetracking. Unser Flugzeug darf kein geschlechtsfreier Raum sein. -- Geändert von nikosch (14.09.2008 um 18:23 Uhr). |
|
|
|
|
|
|
#5 (permalink) | |
|
Moderator und Wett-König
|
Zitat:
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
|
#6 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 06.09.2008
Beiträge: 189
![]() |
Ok stimmt. Dachte du wolltest mir das Framework nahelegen. Entschuldige. Schau es mir noch einmal in Ruhe an.
MfG, Andy
__________________
I'm so tired of slitting the throats of people calling me a violent psychopath. |
|
|
|
|
|
#7 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 06.09.2008
Beiträge: 189
![]() |
Entschuldigt, dass ich hier göleich ein zweites mal hinterher schreibe, aber ich muss gestehen, dass ich durch dieses Vorhaben, dass mir diese UML vermitteln soll nicht ganz durchsteige.
Also in der Tabelle umgtPermissions werden einfach die Rechte benannt und ihnen eine ID zugeordnet. Die umgtUser enthält einfach alle Benutzerdaten. Soweit glaube ich das verstanden zu haben. umgtRole und umgtGroup ist im Prinzip das gleiche doch ist an die "Rolle" eines Nutzers ganz bestimmte Rechte gekoppelt. An die Gruppe eines Nutzers können Rechte gekoppelt sein, zum Beispiel, dass man im Forum der Gruppe aggieren darf, dies muss aber nicht so sein. Leider verstehe ich nicht, welche Rolle nun umgtPermissionsSet bzw. umgtApplikation haben. Leider sehe ich auch keine Möglichkeit einem Nutzer direkt bestimmte Rechte zu geben, sondern man muss sehr sehr viele verschiedene Rollen zur Verfügung stellen, um alle Rechte abzudecken. Ich hoffe ich habe das ganze nicht vollkommen falsch verstanden bzw. dass mir hier jemand etwas mehr Licht ins Dunkel bringen kann. MfG, Andy
__________________
I'm so tired of slitting the throats of people calling me a violent psychopath. |
|
|
|
|
|
#8 (permalink) | |||
|
Moderator und Wett-König
|
Hallo #Avedo,
gleich vorneweg: Rollen und Rechte sind nicht gleich, Rollen und Gruppen auch nicht! Dieser Fehler wird leider viel zu oft begangen. Noch mal zur Verfahrensweise: Rechte definieren die Sichtbarkeit von Objekten, Rollen definieren, welche Aktionen auf Objekte, auf die ein Benutzer Rechte hat ausgeführt werden dürfen. Das 1:1 zu koppeln raubt dir die zweite Bewertungsebene, die du gerade bei mandantenfähigen Anwendungen dringend brauchst. Zitat:
![]() Zitat:
Zitat:
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|||
|
|
|
|
|
#9 (permalink) |
|
moderatives Dielektrikum
Registriert seit: 21.05.2008
Beiträge: 25.134
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Kannst Du auch bitte noch mal die Rolle der Gruppe (umgtGroup) im Modell erklären? Trotz Kommentar verstehe ich nicht, wie sie bestimmte Rechte auf eine Usergruppe abbilden kann.
__________________
-- „Eins ist Fakt: Gescannt wird nackt!“ Privatsphäre 2.0 - Nacktscanner mit Eyetracking. Unser Flugzeug darf kein geschlechtsfreier Raum sein. -- |
|
|
|
|
|
#10 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 06.09.2008
Beiträge: 189
![]() |
Danke dr.e. für deine Erläuterungen. Ich werde mir, wie von dir empfohlen möglichst bald ein Buch zum Thema UML anschaffen. Ich habe nun allerdings noch eine Frage. Ich habe zwar verstanden, dass diese Übersicht nur Beziehungen zwischen Objekten, keine Datenbankstrukturen darstellt, doch frage ich mich, wie eine Datenbankstruktur zu soetwas aussehen könnte.
MfG, Andy
__________________
I'm so tired of slitting the throats of people calling me a violent psychopath. |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
LinkBacks (?)
LinkBack to this Thread: http://www.php.de/php-fortgeschrittene/47427-best-practices-benutzerverwaltung.html
|
||||
| Erstellt von | For | Type | Datum | |
| Adventure PHP Framework - Literatur | This thread | Refback | 02.12.2008 15:17 | |
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| .htaccess: alle umleiten auf info.html bis auf best. IPs | Gumfuzi | Server, Hosting und Workstations | 8 | 17.02.2008 19:07 |
| best bewerteten Bilder auswählen | Maho88 | Datenbanken | 19 | 01.08.2006 18:51 |
| [Erledigt] Button an best Tagen zu best. Uhrzeiten wechseln lassen | PHP Tipps 2005-2 | 3 | 30.07.2005 12:52 | |
| The best h4x0r in the world!!!!! | Freeaak | Off-Topic Diskussionen | 2 | 29.07.2005 18:54 |
| String nach best. Zeichen durchsuchen | PHP-Fortgeschrittene | 10 | 19.07.2005 19:21 | |
| Auslesen eines Textes mit best. Länge aus DB-Tabelle | PHP Tipps 2005 | 2 | 01.07.2005 00:00 | |
| Eine best. Zeile aus einer Datei löschen | PHP Tipps 2005 | 9 | 23.04.2005 23:25 | |
| Fehlerhafte anzeige mit best. Browsern | Flor1an | HTML, Usability und Barrierefreiheit | 6 | 10.11.2004 19:28 |
| html-Datei ab best. Stelle auslesen | PHP Tipps 2004 | 3 | 17.08.2004 17:38 | |