|
|
|
|
|
|
|||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
|
|
LinkBack (5) | Themen-Optionen | Thema bewerten |
|
|
#1 (permalink)
|
|
Erfahrener Benutzer
Registriert seit: 06.09.2008
Beiträge: 189
![]() |
Hallo!
Ich habe vor langer Zeit mal ein eigenes Rechtesystem vorgestellt, das allerdings sehr beschränkt war. Da ich das erkannt hatte habe ich mich einfach mal nach der "Best Practice Benutzerverwaltung" erkundigt. Nun ist es soweit und ich möchte mich endlich an eine oder auch mehrere Klassen setzen, die mir das Verwalten von Nutzern erleichtern sollen. Doch nichts geht ohne ein Konzept und ich würde dies gerne mal mit euch durchkauen. Ich habe mir überlegt das ganze auf drei Tabellen zu verteilen. Und zwar soll es eine Tabelle user, die die Benutzerdaten enthält, eine Tabelle categories, für die verschiedenen Bereiche und eine Tabelle permissions für die Rechteverteilung geben. Code:
Table `user`: +----+------+ | id | name | +----+------+ | 1 | Joe | | 2 | Max | | 3 | Mic | +----+------+ Table `categories`: +----+---------------------+ | id | name | +----+---------------------+ | 1 | Artikel lesen | | 2 | Artikel schreiben | | 3 | Artikel feigeben | | 3 | Kommentar lesen | | 3 | Kommentar schreiben | | 3 | Kommentar feigeben | +----+---------------------+ Table `permissions`: +--------+---------+ | userid | perms | +--------+---------+ | 1 | 1 | | 2 | 1 | | 3 | 1 | | 3 | 2 | +--------+---------+ MfG, Andy
__________________
I'm so tired of slitting the throats of people calling me a violent psychopath. Geändert von #Avedo (07.01.2009 um 00:44 Uhr). |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#2 (permalink) |
|
moderatives Dielektrikum
Registriert seit: 21.05.2008
Beiträge: 25.134
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
kleiner Hinweis vorweg: category
- Weitere Kategorien wären: Artikel editieren und löschen, Rechte vergeben, User 'anheuern' und weitere Meta-Rechte. - Gruppen wären gut, die Kategorien und/oder User bündeln - Wie sieht denn das Konzept über die reine DB Struktur hinaus aus?
__________________
-- „Eins ist Fakt: Gescannt wird nackt!“ Privatsphäre 2.0 - Nacktscanner mit Eyetracking. Unser Flugzeug darf kein geschlechtsfreier Raum sein. -- Geändert von nikosch (07.01.2009 um 00:46 Uhr). |
|
|
|
|
|
#4 (permalink) |
|
Neuer Benutzer
Registriert seit: 27.12.2008
Beiträge: 23
![]() |
Es kommt natürlich darauf an, wo du die Rechteverwaltung einsetzt, aber zB. bei einem cms wäre es doch wünschenswert, wenn man einem User auf einigen Unterseiten zB. das Recht zum Bearbeiten geben kann, während er auf anderen Seiten gar nichts darf.
|
|
|
|
|
|
#5 (permalink) |
|
Moderator und Wett-König
|
Hallo Andy,
wenn es dich interessiert, dann schau mal hier vorbei. auf dieser Seite habe ich ein Benutzer-Management vorgestellt, mit dem das Thema Funktionsberechtigungen gelöst wird. Aus deinen Schilderungen lese ich, dass du nicht nur Rechte auf Objekte (=Blog-Beitrag, ...), sondern auch Rechte auf Funktionen innerhalb einer Applikation verwalten möchtest (=Blog-Beitrag editieren, ...). Dies kann mit dem vorgestellten Datenmodell implizit über die Rolle eines Benutzers (innerhalb einer Applikation) gesteuert werden. Jeder Benutzer erhält über seine Rolle mehrere Permissions, die eine Zuordung von Identifiern und Werten enthalten (z.B. loadadminmenu=true). Rechte auf Objekte können ganz einfach damit abgebildet werden, dass eine Beziehung zwischen einem Benutzer oder einer Gruppe auf ein Objekt deiner Anwendung hergestellt wird (siehe Diskussion in den von dir verlinkten Threads).
__________________
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: 28.09.2008
Beiträge: 760
PHP-Kenntnisse: Fortgeschritten ![]() |
Interessant wär es vielleicht eine Usereigenschaft "Rechte" als Bitmuster zu haben.
z.B.: Rechte: Lesen, Schreiben, Neu erstellen Alle gesetzt (User hat alle Rechte) wäre 111. So kann man z.B. eine Gruppe Besucher haben mit den Rechten 100, aber dennoch einzelnen Usern das Recht zum schreiben geben: ......100 XOR 010 ---------- ergibt 110 Mit AND, NOT und OR ergeben sich weitere interessante Möglichkeiten: so können einem User mit AND Rechte entzogen werden. Bei AND kann er aber nie mehr Rechte bekommen als die Gruppe hat der er angehört. Geändert von Koala (10.01.2009 um 13:10 Uhr). |
|
|
|
|
|
#7 (permalink) |
|
moderatives Dielektrikum
Registriert seit: 21.05.2008
Beiträge: 25.134
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Das Thema Bitmuster wurde, glaube ich, im oben verlinkten Thread auch schon ausgiebig diskutiert.
__________________
-- „Eins ist Fakt: Gescannt wird nackt!“ Privatsphäre 2.0 - Nacktscanner mit Eyetracking. Unser Flugzeug darf kein geschlechtsfreier Raum sein. -- |
|
|
|
|
|
#8 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 06.09.2008
Beiträge: 189
![]() |
Ja ich habe eine komplette Klasse vorgestellt, die sich mit diesem Thema beschäftigt hat. Sie war sogar sehr performant, erlaubte aber keine Gruppen und zudem kann man maximal 64 Rechte vergeben, da der Integer in PHP nur bis 2^64 Bit geht.
MfG, Andy
__________________
I'm so tired of slitting the throats of people calling me a violent psychopath. |
|
|
|
|
|
#10 (permalink) |
|
Moderator und Wett-König
|
Da wir uns im Softwaredesign-Forum befinden ist das genau der richtige Ort um Konzepte zu diskutieren. Hast du das von mir verlinkte UML mal angesehen? Geht das in deine Richtung?
__________________
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! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
|
|
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/software-design/50416-rechteverwaltung.html
|
||||
| Erstellt von | For | Type | Datum | |
| implementierung eines Rechtemanagements - XHTMLforum | This thread | Pingback | 18.06.2009 16:57 | |
| Literatur :: Adventure PHP Framework (APF) | This thread | Refback | 23.04.2009 18:59 | |
| Userrechtescript - Developer's Guide | This thread | Refback | 09.03.2009 00:53 | |
| Userrechtescript - Developer's Guide | This thread | Refback | 08.03.2009 10:12 | |
| Rechtesystem frage. - Forum: phpforum.de | This thread | Refback | 15.02.2009 19:54 | |