Wie würdet ihr am ehesten ein Usermanagment gestalten bei dem der User für jegliche Aktion Rechte bekommen soll ? Vorallem wie löse ich das am besten, wenn ich Modularität haben möchte ? Sprich das jemand weitere Funktionalität in mein Script adden kann, in dem er sein Script in z.b. /module/dasplugin/ einfügt ? Ich hab mir mal angeschaut wie Postnuke das macht aber Postnuke ist irgendwie...Schrott Ich hab auch diverse eigene Ideen, wäre aber dankbar für weitere Anregungen und Tips da ich es gleich "richtig" machen möchte. Danke !
Konzept Usermanagment und Modularität
Einklappen
X
-
1) benutze eine rechteverwaltung, wo du jeden user mit einträgen in einer 2. Tabelle verknüpfst, wo du einträgst, was er darf, und was er nicht...
Beispiel:
UserTabelle:
userid: md5(username)
...
RechteTabelle:
rightsid
userid
key
value
jetzt trägst du folgendes ein
rightsid, 'userid (=>md5!)', 'wasweißich', 1
jetzt kannst du abfragen, welches recht der user x auf die aktion "wasweißich" hat (1=> er darf/ 0=> er darf nicht)
du kannst deine tabelle aber auch jedesmal erweitern, wenn neue möglichkeiten hinzukommen, wobei ich das nicth so pralle finde..
gruss
-
... jetzt kriege ich wieder haue ...
als anreiz: die phpshop - entwickler haben mit einem (noch unvollendeten) usermanagement angefangen - kernidee war die erweiterbarkeit ...
auf phpshop.org findest du links zum sourceforge-projekt - einfach mal als gedankenstütze(-:
Bookmarks:·Bilder·Jobs·Recht·
kostenloser Webkataloge-Assistent
Kommentar
-
erwähnt sei, dass sich dieses usermanagement "phpshop core" nennt und nix mit dem phpshop 06 oder mit einem Shop-System zu tun hat - es soll später einfach ein "commerce"-Modul als Shop aufgesetzt werden - brauchst de ja nicht machen(-:
Bookmarks:·Bilder·Jobs·Recht·
kostenloser Webkataloge-Assistent
Kommentar
-
Also, mit den Rechten hat MoRtAlAn ja schon erklärt, allerdings erweiter ich seine Idee mal:
Die User in Gruppen einteilen, und in der Rechte Tabelle die Rechte für die einzelne Gruppe festlegen.
Tabelle Rechte:
recht_id
recht_groupid
recht_titel
recht_value
Wie du das einliest ist deine Sache, ich hoffe die Spaltennamen sagen alles...
Jetzt zu den Modulen:
Wie du das machst ist eigentlich deine Sache, du könntest die Module in einem Ordner namens "module" (mit viel fantasie ausgedacht ) stecken.
Dort sind dann die Module in Kathegorien eingeteilt (news, forum usw.) und du kannst per require() die ganzen Module aufrufen....
Ich persöhnlich arbeite (wahrscheinlich ist die Methode vollkommener Schwachsinn) auch mit einem Ordner "module", wo die Module nach Kathegorie geordnet sind.
Jedes Modul hat dann verschiedene Dateien (news_zeigen, news_allezeigen, usw.), und diese Dateien liefern dann mit "return" das zurück was man in seiner Datei benutzen will.
Die anderen Variablen kann man ja alle mit unset() neu initialisieren (oder war das was anderes?)
Das ganze rufst du dann mit $str = require("module/news/showall.php"); aufgerufen, wie gesagt kann das aber auch eine totale Schrott lösung sein (wenn man z.B. fertig Software in sein Projekt einbinden will)...
MfG Floriam
Kommentar
-
so ähnlich ist das bei mir auch geregelt, allerdings nervt mich, dass ich jedes recht auch explizit prüfen muss.
ich muss also jedem recht einen bezeichner geben, möglichst offensichtlich: beispiele: news_post, news_edit.
dann muss ich an der stelle wo ich das recht prüfen will mit:
accesscheckfuntion('news_post', $userid) prüfen ob er das recht hat.
kommen die fragen auf:
-kann man das ganze nicht mittels ohnehin übergebener variablen ($_GET vars welche seite/modul/funktion aufgerufen wird) prüfen, so dass man nicht jedesmal alle rechte explizit bennenen muss?
-wie gibt man globale rechte, sprich für etwas das alle dürfen bekommen alle das recht, ohne bei jedem user einen eintrag erstellen zu müssen? (eine usergruppe: "registrierte user" wo alle drinstehen?)
am besten ohne datenmüll ..
Kommentar
-
wie gibt man globale rechte, sprich für etwas das alle dürfen bekommen alle das recht, ohne bei jedem user einen eintrag erstellen zu müssen? (eine usergruppe: "registrierte user" wo alle drinstehen?)
am besten ohne datenmüll ..
Ich hab ja schon geschrieben, das man ne Tabelle macht, wo die Einstellungen der Usergruppe sind.
Kommentar
-
Sorry, war wohl ein bisschen zu schnell beim klicken, bitte löschen
Kommentar
-
Original geschrieben von Floriam
Sorry, war wohl ein bisschen zu schnell beim klicken, bitte löschenINFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |
Kommentar
-
Original geschrieben von Abraxax
nö ...
Kommentar
-
OffTopic: Original geschrieben von Floriam
Und sowas nennt man Moderator...INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |
Kommentar
-
Original geschrieben von rythms
das wäre datenmüllINFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |
Kommentar
-
Original geschrieben von Abraxax
nein. das wäre sogar sehr sinnvoll...OffTopic:
Da muss ich ihm ausnamsweise recht geben!
Kommentar
Kommentar