Hallo Forum Member,
ich versuche mich etwas an PHP Programmierung und stehe vor einen Problem wo ich nicht recht weis wie ich es loesen soll.
Vielleicht hat jemand einen Tip (bitte keine fertige Solution, nur einen Anhaltspunkt) damit ich weiter komme. Habe diesbezueglich einfach eine Blockade.
1. Ich habe in einer Datenbank Zugriffs Rollen vergeben ... realtiv easy, mit den Feldern (id) , Username, Guest, Registered, Advanced, Moderator, Admin
Die Gruppen sind hier einfach nur mit 0 und 1 belegt. ID ist auto_increment. Mir schwebt es auch vor dies wie folgt zu aendern.
(id), Username, Role ... wobei die Gruppe je nachdem 0 = Guest, 2 = Registered, 4 = Advanced, 8 = Moderator und 16 = Admin enthaellt.
Das Prinzip ist aber aehnlich ist aber glaub ich einfacher zu handeln. Was ist hier eleganter ?
2. Weiteres vorauszuschicken ... es gibt verschiedene Status eines Blog Eintrages ... New, Review, Submitted, Sticked, Hiden und Deleted
3. und zuletzt gibt es noch durchzufuehrende Funktionen die auf die in Punkt 2 erwaehnten Status Bezug nehmen ...
Nun kommt der "Plan" ... oder eben kein Plan den ich derzeit habe
Jeder User darf anhand der vergebenen Role zum Zeitpunkt eines bestimmten Block Status nur eine bestimmte Funktion durchfuehren.
Ein paar Beipiele:
Guest darf nur lesen.
Registered User darf einen Block Eintrag speichern, damit bekommt er Status New.
Registered darf im Status New nur zu Status Review aendern
Advanced darf vom Status Review in Submitted aendern
Moderator darf das auch, darf aber zusaetzlich noch verstecken.
Ist der Block Eintrag Submitted darf er vom Moderator auch wueder zurueck in den Status Review geschickt werden.
Nur der Admin darf Deleten.
Es sollen nur die Funktionen angezeigt werden die von einer bestimmten Role in einen bestimmten Block Status auch durchgefuehrt werden duerfen.
Ich habs mal mit endlosen verschachtelten IF Schleifen realisiert, sieht sehr unuebersichtlich und fehlertraechtig aus.
Deshalb die Frage an die Wissenden der PHP programmier Technik.
Wie wuerded Ihr es loesen ? Wo ist mein gedanklicher Fehltritt ?
Ich bendanke mich bereits im Voraus fuer jede konstruktive Anregung.
Gruss, Sandroino