SetaPDF
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 26.07.2002, 22:46   #1
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein

Überlegungen zu einer Userrechte-Verwaltung...


Nabend

Wie ich schon vor einiger Zeit in einem (bis heute replylosen ) Beitrag erzählt hatte, bastel ich zur Zeit an meinem ganz persönlichen einfachen CMS/ 'Web Application Framework' (beeindruckender Ausdruck, was?).

Beliebig viele unterschiedliche Anwendungen wie GB/News/Forum blabla sollen sich eine gemeinsame Datenbank sowie möglichst viel Funktions- und Klassencode teilen...so weit, so gut - funktionieren tuts.

Nun brauch ich dafür einen Part, der die Benutzerrechte für jede Anwendung des Systems einzeln verwaltet.
Das Speichern aller Rechte in einer starren Tabellenstruktur ist keine Lösung, da das System ja modular ist und somit Komponenten weggelassen bzw. neue hinzugefügt werden können, für die ja jedem Benutzer neue Zugriffs- und Ausführungsrechte erteilt werden müssen.

Ausgedacht hab ich mir dafür folgendes, eigentlich ganz simples Konzept und würd von euch gern wissen, was ihr davon haltet :

- Die Benutzerdaten ausgenommen der Rechte werden in einer Tabelle abgelegt, d.h. für sämtliche Anwendungen wird nur ein Account benötigt

- Die Rechte werden separat in einer anderen Tabelle gespeichert, die aus drei Spalten besteht: User-ID, Modul-ID und Rechte.

User-ID enthält (wie unschwer zu erraten) die ID des Benutzers, für den die jeweilige Rechtevergabe des Datensatzes gelten soll.

Modul-ID speichert die ID der jeweiligen Anwendung (z.b. Forum oder Systemverwaltung), auf die die jeweiligen Rechteinformationen bezogen sind.

Rechte enthält schließlich die Rechtedaten, binär codiert als Integer und bei Notwendigkeit zusätzliche Angaben, falls für bestimmte Fälle nicht nur Ja/Nein, sondern Zahlen oder andere Datentypen erforderlich sind. Speichern könnte man das ganze einfach als CSV oder serialisiertes Array.

Damit h#tte man eine einfach erweiterbare Methode, zu speichern wer was in welcher Teilanwendung des Systems darf und was nicht....oder?

Falls jemand Verbesserungsvorschläge oder auch einen komplett anderen, brauchbareren Ansatz hat - nix wie her damt
seb ist offline   Mit Zitat antworten


Alt 26.07.2002, 22:52   #2
TP-Supporter
 
Benutzerbild von Sebi
 
Registriert seit: Feb 2002
Ort: Hamburg
Sebi ist auf einem guten Weg
hört sich eigentlich so an als ob du die normalformen einfach eingehalten hast soweit ich das nachvollziehen konnte hört es sich gut an
Sebi ist offline   Mit Zitat antworten
Alt 26.07.2002, 22:55   #3
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Was meinst du mit Normalformen?
seb ist offline   Mit Zitat antworten
Alt 26.07.2002, 23:35   #4
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
Zitat:
Was meinst du mit Normalformen?
der war gut...


im ernst, ich bastle gerad am ähnlichen und mein rechtesystem läuft bereits ganz schnuckelig.
rechte für view, create, edit, delete und admin.
auf modulebene werden dann pro gruppe die rechte entsprechend eingeteilt (nichts, eigene,alle)
tabelle schaut aus: gruppenid, modulid, view, create, edit, delete und admin.
werte sind integer.
die werden beim login in ein assoziatives array geladen (rechte) und in der session abgelegt.
in der app ist es dann ganz einfach abzuchecken ob jemand z.b. reinschauen darf -> if(rechte[view]) und auch noch gut lesbar.

vielleicht war da der eine oder ander punkt dabei, der dir hilft.

lf

p.s.
normalform ist die beschreibung der relationen der tabellen untereinander.
die gibts von der 1., 2. 3. (die gebräuchlichste) 4. und der boyd-scott normalform (hoffe richtig geschrieben)
hat also was mit db-design zu tun. gugstu
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 26.07.2002, 23:37   #5
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
nochwas:

Seb & Sebi... seid ihr verwandt?
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 27.07.2002, 00:07   #6
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Hm...hört sich in der Tat ähnlich an...ansich is mein Vorhaben ja auch nicht irgendwie ungewöhnlich - was für mich halt neu ist, is die Vergabe der Rechte für jedes Modul einzeln, sowas hab ich vorher noch nicht gemacht.

Zwei Fragen zu deinem:

erste)
Wieso legst du für jede Erlaubnis eine feste Spalte an, anstelle eine einzige zu verwenden...wäre doch flexibler, oder steckt ein bestimmter Grund dahinter?

und zweite)
Was genau hat es mit den Gruppen auf sich? Mir is bekannt, dass jede vernünftige Rechteverwaltung Gruppen unterstützt, allerdings hab ich kein Plan, wie das praktisch aussieht bzw. welchen Sinn es hat. Dienen die dazu, 'Standard'-Benutzer zusammenzufassen, um ihre einheitlichen Rechte bequem für alle geltend ändern zu können?
Wär nett wenn Du mir das Konzept mal näher erklären würdest

Zitat:
p.s.
normalform ist die beschreibung der relationen der tabellen untereinander.
die gibts von der 1., 2. 3. (die gebräuchlichste) 4. und der boyd-scott normalform (hoffe richtig geschrieben)
hat also was mit db-design zu tun. gugstu
Wieder was gelernt

Man sieht - von SQL, Datenbankdesign und allem was in die Richtung geht, hab ich nicht grad viel Ahnung, mehr als einfachste SELECT-Abfragen und n paar Extras wie ORDER oder COUNT hab ich da nicht drauf...sollt ich vielleicht mal ändern

Ansonsten natürlich danke für die bestätigenden Antworten - da es offensichtlich nix auszusetzen gibt, werd ichs wohl so machen.

Zitat:
Seb & Sebi... seid ihr verwandt?
Sind wir nicht alle verwandt? ...frag Darwin
seb ist offline   Mit Zitat antworten
Alt 27.07.2002, 01:38   #7
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
Zitat:
Wieso legst du für jede Erlaubnis eine feste Spalte an, anstelle eine einzige zu verwenden...wäre doch flexibler, oder steckt ein bestimmter Grund dahinter?
si. is simpler.
a) ich brauch mir keine extra funktionen zu bauen um die daten zu lesen / speichern
b) es die 3. normalform ist

@gruppen:
ich bau ein 2b2/shop wasweissich was.
da hab ich dann gäste, kunden, reseller, admins und einen su <-/me
rechte auf userebene hab ich nicht, da ich die in diesem fall nicht benötige.
module gibts dann eben solche wie artikel anlegen, bestellungen ansehen, angebote ansehen,...
und als su kann man dann die ganze seiten konfig über die entsprechenden rechte machen.

durch den mechanismus: keine/eigene/alle kann ich ziemlich fein steuern welche gruppe was will.

soll der reseller z.b. alle artikelgruppen sehen, aber nur eigene erstellen/editieren/löschen können so geb ich ihm auf view -> alles, edit->eigene, create->eigene, löschen->eigene,....

die artikel darf der reseller nur seine eigenen sehen = view->eigene,.....

der kunde darf dann alle artikel sehen, editieren keine neuen erstellen und löschen:
view->alle, create->keins, edit->alle, delete->keins.

rechtesteuerung ansich erfolgt eigentlich nur durch das anzeigen von links/buttons oder halt nicht - je nach dem.

mörder war die einführung des su, der alles darf, kann und soll.
im endeffekt hat der aufwand dazu geführt, ein rechteflag auch für admin zu setzen, der simpel 0/1 hat. somit gehen so dinge wie zeige zusätzliche felder an: if($rechte[admin])....

die delux version wäre die, sowohl für gruppen als auch für user die rechte zu vergeben.
- bei der anlage erbt user automatisch die rechte von der gruppe
- user darf nur gleich oder weniger rechte als user haben
- änderung der gruppenrechte ->änderung der user,....

könnte man bis zum exzess treiben...

lf

Zitat:
Sind wir nicht alle verwandt? ...frag Darwin
jööööö noch ein bruder....
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 27.07.2002, 16:03   #8
TP-Supporter
 
Benutzerbild von Sebi
 
Registriert seit: Feb 2002
Ort: Hamburg
Sebi ist auf einem guten Weg
@seb: falls es dich interessiert. hier ist ein guter Link zu Datenbanken allgemeiner, SQL, MySQL und PHP

http://ffm.junetz.de/members/reeg/DSP/main.html
Sebi ist offline   Mit Zitat antworten
Alt 27.07.2002, 16:18   #9
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Danke, auch wenn mir Longfang den schon in seinem ersten Beitrag gezeigt hat
seb ist offline   Mit Zitat antworten
Alt 28.07.2002, 20:11   #10
TP-Supporter
 
Benutzerbild von Sebi
 
Registriert seit: Feb 2002
Ort: Hamburg
Sebi ist auf einem guten Weg
Talking

ups
Sebi ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Überlegungen zu einer Userrechte-Verwaltung... Überlegungen zu einer Userrechte-Verwaltung...
« noch ein prob | einträge in db schon vorhanden? »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:33 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67