Dennis Wronka
Soulcollector
Im Zuge des Umzugs von EasyLFS dachte ich mir ein Project Management System dafuer zu schreiben.
Da ich ja nun irgendwie nicht mehr einfach nur was fuer ein Projekt schreiben kann sondern eben immer im Hinterkopf behalte dass man sowas auch noch fuer ein anderes Projekt nutzen oder gar veroeffentlichen koennte hab ich dann auch gleich angefangen alles fein flexibel zu halten.
Jetzt stehe ich vor dem Problem dass ich Berechtigungen brauche.
Erstmal zur Erlaeuterung:
Es gibt User, Gruppen und Projekte.
Ein User kann natuerlich in mehreren Gruppen sein. Eine Gruppe ist entweder einem Projekt zugeordnet oder nicht (letzteres waere dann fuer die Site-Admins vorbehalten).
Die Rechte werden nicht dem User, sondern der Gruppe zugewiesen. Dadurch hat der User in jedem Projekt (da er dort jeweils in einer anderen Gruppe ist) andere Rechte.
Abbilden wollte ich die Rechte binaer, ueber einen AND-Vergleich will ich also feststellen ob die Berechtigung gesetzt ist oder nicht.
Die Theorie ist soweit klar, und auch mit der Umsetzung duerfte ich wohl keine Probleme haben.
Die Probleme hab ich jedoch bei der Erstellung der Rechte an sich.
Ich moechte von Anfang an die Rechte moeglichst vollstaendig definieren um nicht spaeter noch Aenderungen vornehmen zu muessen.
Daher wollte ich Euch um Hilfe bitten was Ihr denn so meint was an Rechten sinnvoll waere.
Dazu noch mehr zum Projekt:
Fast jeglicher Content wird schlichtweg als Document bezeichnet. Wie so ein Document aussieht wird ueber den Document-Type bestimmt, anhand dessen ein bestimmtes Template genutzt wird. Ein Document kann in den RSS-Feed einfliessen oder aber auch nicht. Zudem kann ein Document einem Projekt zugewiesen sein oder eben auch nicht.
Zusaetzlich zu den Documents gibt es auch Packages, welche das Projekt enthaelt. Bei EasyLFS waere dies z.B. die Software-Liste.
Ich hatte mir dazu folgendes ueberlegt:
Vom Site-Admin koennen User, Gruppen und Projekte verwaltet werden.
Innerhalb der Projekte soll es dann die Moeglichkeit geben Gruppen fuer bestimmte Bereiche einzurichten. So koennte z.B. eine Gruppe dafuer zustaendig sein die Paketliste zu pflegen, eine andere fuer die Dokumente.
Mal so als Beispiel halt.
Um Leserechte brauchen wir uns hierbei keine Gedanken zu machen da diese automatisch durch die Zugehoerigkeit zu einer dem Projekt zugewiesenen Gruppe kommen. Also: Wer zum Projekt gehoert darf dort alles lesen, aber nicht unbedingt alles bearbeiten.
Uebrigens, noch 2 Kleinigkeiten die zwar jetzt weniger von Belang sind, aber der Vollstaendigkeit halber nicht fehlen sollen:
Da das Ganze eventuell am Ende darauf herauslaeuft mehr oder weniger darauf zugeschnitten zu sein Distributionen zu verwalten koennte aus dem Project Management System auch ein Distro Management System werden. Das steht aber noch nicht fest.
Das Projekt wird in PHP geschrieben, was aber am Problem nichts aendert da die Implementation letztlich recht einfach ist.
Wie gesagt, es geht mir um die Erstellung eines sinnvollen Satzes an Rechten.
Denn das Problem ist eben dass ich ohne mehr oder weniger fertiges Rechte-System nicht mit dem eigentlichen Code anfangen kann, da alles eben darauf aufbauen wird.
Es waere nett ein paar Ideen zu lesen. Ich weiss dass mein Getippsel recht konfus ist, aber das wollen wir doch einfach mal der fortgeschrittenen Urzeit zuschreiben.
Da ich ja nun irgendwie nicht mehr einfach nur was fuer ein Projekt schreiben kann sondern eben immer im Hinterkopf behalte dass man sowas auch noch fuer ein anderes Projekt nutzen oder gar veroeffentlichen koennte hab ich dann auch gleich angefangen alles fein flexibel zu halten.
Jetzt stehe ich vor dem Problem dass ich Berechtigungen brauche.
Erstmal zur Erlaeuterung:
Es gibt User, Gruppen und Projekte.
Ein User kann natuerlich in mehreren Gruppen sein. Eine Gruppe ist entweder einem Projekt zugeordnet oder nicht (letzteres waere dann fuer die Site-Admins vorbehalten).
Die Rechte werden nicht dem User, sondern der Gruppe zugewiesen. Dadurch hat der User in jedem Projekt (da er dort jeweils in einer anderen Gruppe ist) andere Rechte.
Abbilden wollte ich die Rechte binaer, ueber einen AND-Vergleich will ich also feststellen ob die Berechtigung gesetzt ist oder nicht.
Die Theorie ist soweit klar, und auch mit der Umsetzung duerfte ich wohl keine Probleme haben.
Die Probleme hab ich jedoch bei der Erstellung der Rechte an sich.
Ich moechte von Anfang an die Rechte moeglichst vollstaendig definieren um nicht spaeter noch Aenderungen vornehmen zu muessen.
Daher wollte ich Euch um Hilfe bitten was Ihr denn so meint was an Rechten sinnvoll waere.
Dazu noch mehr zum Projekt:
Fast jeglicher Content wird schlichtweg als Document bezeichnet. Wie so ein Document aussieht wird ueber den Document-Type bestimmt, anhand dessen ein bestimmtes Template genutzt wird. Ein Document kann in den RSS-Feed einfliessen oder aber auch nicht. Zudem kann ein Document einem Projekt zugewiesen sein oder eben auch nicht.
Zusaetzlich zu den Documents gibt es auch Packages, welche das Projekt enthaelt. Bei EasyLFS waere dies z.B. die Software-Liste.
Ich hatte mir dazu folgendes ueberlegt:
Vom Site-Admin koennen User, Gruppen und Projekte verwaltet werden.
Innerhalb der Projekte soll es dann die Moeglichkeit geben Gruppen fuer bestimmte Bereiche einzurichten. So koennte z.B. eine Gruppe dafuer zustaendig sein die Paketliste zu pflegen, eine andere fuer die Dokumente.
Mal so als Beispiel halt.
Um Leserechte brauchen wir uns hierbei keine Gedanken zu machen da diese automatisch durch die Zugehoerigkeit zu einer dem Projekt zugewiesenen Gruppe kommen. Also: Wer zum Projekt gehoert darf dort alles lesen, aber nicht unbedingt alles bearbeiten.
Uebrigens, noch 2 Kleinigkeiten die zwar jetzt weniger von Belang sind, aber der Vollstaendigkeit halber nicht fehlen sollen:
Da das Ganze eventuell am Ende darauf herauslaeuft mehr oder weniger darauf zugeschnitten zu sein Distributionen zu verwalten koennte aus dem Project Management System auch ein Distro Management System werden. Das steht aber noch nicht fest.
Das Projekt wird in PHP geschrieben, was aber am Problem nichts aendert da die Implementation letztlich recht einfach ist.
Wie gesagt, es geht mir um die Erstellung eines sinnvollen Satzes an Rechten.
Denn das Problem ist eben dass ich ohne mehr oder weniger fertiges Rechte-System nicht mit dem eigentlichen Code anfangen kann, da alles eben darauf aufbauen wird.
Es waere nett ein paar Ideen zu lesen. Ich weiss dass mein Getippsel recht konfus ist, aber das wollen wir doch einfach mal der fortgeschrittenen Urzeit zuschreiben.