|
||||
Rechtedarstellung
Hi,
ich bin gerade dabei, Gruppen in mein CMS zu implementieren. Dabei soll man folgendes machen können: Angeben welcher Controller aufgerufen werden darf und welche der Actions davon angesehen und/oder verändert werden dürfen. Also im Endeffekt: Controller Action r/w Ich weiß nur nicht, wie ich das gescheit darstellen kann. Man muss ja auch mehrere Controller auswählen können und mehrere Actions, bei denen man dann immer noch entscheiden muss, ob Read/Write gesetzt wird. Ich hab jetzt mal eine Version erstellt. Gibt es vlt verbesserungsvorschläge?
__________________
Meine Spielwiese: http://blog.kanedo.net Ich bei Flickr? Da: Flickr: Fotostream von kanedo-projekt Für open Source Liebhaber: open Com Auch ich Zwitschere als @kanedo Geändert von kampfgnom (18.06.2009 um 11:25 Uhr) Grund: Bild in groß hinzugefügt |
Sponsored Links |
|
|||
Ja
Du wirst wissen, wozu du diese Controller einrichtest, vermutlich , aber weiß es auch der Nutzer? Das führt zu mehreren Fragen. Wie erfährt der (Gruppen-)Nutzer oder -admin, was er wie gestalten / einstellen/ beeinflussen kann? Sind die Handlungsmöglichkeiten und ihre Folgen eindeutig beschrieben, sprich transparent? Ist es wünschenswert, bzw. notwendig, dass bestimmten Nutzergruppen bestimmte Bereiche zu bestimmten Zeiten verborgen bzw. nicht zugänglich bleiben? Hierfür können Sicherheitsaspekte eine Rolle spielen oder schlicht Übersichtlichkeit. Für den Seitenbaum ( was ist das ) fiele mir ein, dass zeitlich gesteuerte Inhalte oder nur per PW zugängliche Inhalte nur bestimmten Nutzern sichtbar sein sollten - oder auch nicht. Sieht der Nutzer sofort, welche Einstellungen vorgenommen wurden und was sie bedeuten? Sieht er, welche ausgewählt, aber noch nicht aktiviert sind? (Beispiel: "Sie müssen Ihre Einstellungen speichern, damit sie wirksam werden" und ein deutlich sichtbares ICON neben der Einstellung und im Kopf der Page) Das ( User Interface Design) ist ein ziemlich komplexes Thema und mit der jetzigen Checkliste nur unbefriedigend gelöst. Mir als Betrachter dieser Checklistenpunkte ist noch überhaupt nicht klar, was da überhaupt passiert, wie ich was beeinflussen kann und welche Folgen das hat. Ich weiß ferner nicht ob es sinnvoll ist, alles auf Bildschirmhöhe abzubilden oder ob Links im Kopf der Seite ( oder daneben) nicht besser wären. Interessant wäre auch zu prüfen, ob ein ausgewählter Punkt (sichtbar markiert) nicht rechts die Optionen (und Erklärungen) einblenden könnte oder oder... Vielleicht ist es hilfreich, sich eine möglichst komplette Struktur der Möglichkeiten aufzuzeichnen (mit Verschachtelungen und Verzweigungen) und dann erst zu entscheiden, wie man das dem Nutzer nahebringt.
__________________
Grüsse Andreas- auch mal wieder da... Design isn't about the tools, it's about creating the best experience for the user. A design should be based on usability, accesibility, aesthetics, but never on floats, lists or background images. ( by Cameron Adams) Wiedergelesen: > hier und hier [Foren-Links] Dein Post? Klar, DAS vorher gelesen? Hilft. ## User-Landkarte |
Sponsored Links |
|
||||
Ich denke, im Grunde genommen sollte es so klar sein, wie es dargestellt ist. Es sollte aber dennoch eine Hilfe oder zumindest einen kleinen Hilfetext geben, wo nochmal genau steht, was durch welches Recht erlaubt bzw. verboten wird.
Ich stehe bei meinem CMS nun auch (endlich) kurz vor der Implementierung der Rechte. Bei mir werden Rechte aber pro Tabelle und/oder Datensatz vergeben, um flexibler zu sein. Ich denke Du könntest bei der derzeitigen Situation Probleme bekommen. Soll es z.B. bestimmte Seiten geben, die nur für bestimmte Benutzer/Gruppen zugänglich sind? Soll ein Autor für jede Kategorie Artikel erstellen dürfen, oder evtl. auch nur für bestimmte Kategorien? Sollen Rechte vererbbar sein? Ich habe mir hierzu z.B. insbesondere Defining Permissions: Cake's Database ACL :: Access Control Lists (Zugangskontrolldokumente) :: Kern Komponenten :: Das Handbuch :: 1.2 Collection :: Das Cookbook angesehen, was imho rechts flexibel ist. Damit könnte man z.B. einen Gruppenbaum erzeugen, der so aussieht: Code:
Users +- Admins +- Modul-Admins +- Seiten-Admins Ich denke hierdurch wird einiges einfacher zu handhaben und man ist recht flexibel, besonders, wenn man es so macht, dass ein Benutzer in mehreren Gruppen sein darf. Das Auslesen der Rechte ist zwar recht komplex, aber nicht unlösbar. Ich habe mir z.B. gedacht, dass man es so macht, dass eine "1" für ein erlaubtes Recht steht und eine "-1" für ein verbotenes Recht. Dieser Wert wird dann mit 2^Tiefe multipliziert und anschließend aufaddiert, ist der resultierende Wert positiv, so besitzt der Benutzer das Recht, ansonsten nicht. Beispiel: Code:
+--------------+--------------+-------------------+ | Gruppe | Seiten sehen | Module bearbeiten | +--------------+--------------+-------------------+ | Users | 1 | -1 | | Admins | 0 | 0 | | Modul-Admins | 0 | 1 | +--------------+--------------+-------------------+ 1 * 2^0 + 0*2^1 + 0*2^2 = 1 => Benutzer darf Seiten sehen 2. Benutzer ist in der Gruppe "Modul-Admins", das Recht "Module bearbeiten" wird geprüft: -1 * 2^0 + 0*2^1 + 1*2^2 = 3 => Benutzer darf Module bearbeiten 3. Benutzer ist in der Gruppe Admins, das Recht "Module bearbeiten" wird geprüft: -1 * 2^0 + 0*2^1 = -1 => Benutzer darf Module nicht bearbeiten. Da bei mir Rechte pro Datensatz vergeben werden würde die Rechte-Tabelle die Spalten: Mode, ARO, Datensatz, Sehen, Verlinken, Bearbeiten, Löschen besitzen, wobei Mode angibt, ob in der Spalte "ARO" eine Benutzer oder Gruppen-ID steht. Wenn ein Recht auf Benutzer-Ebene erlaubt oder verboten wird, dann hat dies immer Vorrang vor dem Gruppen-Recht. Ich stelle mir das momentan so vor, dass es für jeden Datensatz eine Rechte-Einstellung gibt, wo der Gruppenbaum angezeigt wird, mit den jeweiligen Rechten, also ungefähr so: Code:
Gruppe Sehen Verlinken Bearbeiten Löschen Users E V E V E V E V +- Admins E V E V E V E V +- Modul-Admins E V E V E V E V +- Seiten-Admins E V E V E V E V Das ist vielleicht erstmal etwas gewöhnungsbedürftig, aber ich erhoffe mir eine enorme Flexibilität in der Rechtevergabe. Vielleicht ist das ja für Dich auch eine Überlegung wert. |
|
||||
Also danke erstmal an andir, hubspe und mantiz.
@andir: Das mein Entwurf nicht so aussieht wie das sein soll, war klar. Deswegen frage ich hier. Aber vielen Dank an dich, du hast mir einen guten Fragenkatalog gegeben, an dem ich mich langhangeln kann. @hubspe Der Test mit den Ahnungslosen kommt, sobald man auch das Ergebniss betrachten kann (Ich hab das dummerweise schon mal mit meiner Freundin probiert, bevor es ging. Bringt nichts, denn ständig kommt die Frage: Und was hat das jetzt bewirkt, kann man das mal sehen.) @mantiz. Ui, das ist ein schwerer Brocken. Muss ich mir erstmal genauer ansehen. Problem bei einer so granularen Rechteverwaltung ist aber, dass es für den Benutzer vielleicht zu kompliziert ist? Oder hab ich da was falsch verstanden. Das mit der Vererbung ist ansich ne coole Sache. Ich les mir mal deinen verlinkten Beitrag durch. (Nutzt du CakePHP?)
__________________
Meine Spielwiese: http://blog.kanedo.net Ich bei Flickr? Da: Flickr: Fotostream von kanedo-projekt Für open Source Liebhaber: open Com Auch ich Zwitschere als @kanedo |
|
||||
Nee, ich nutze das Framework nicht, bin bei meinen Recherchen allerdings darauf gestossen und fand das einen sehr interessanten und brauchbaren Ansatz.
Dass es evtl. zu fein und u.U. verwirrend sein kann, stimmt natürlich, ich kann ja mal einen Status geben, wenn ich es implementiert habe bzw. ob ich es überhaupt so implementiere, wie ich es bisher gedacht habe. |
|
||||
Zitat:
Da das nichts mehr mit Design, Typografie etc zutun hat, mache ich mal einen Thread im anderen forum auf. Ich merk schon, dass es hier noch einiges zu überdenken gibt. Aber ich komm darauf zurück http://xhtmlforum.de/57402-implement...tml#post435781
__________________
Meine Spielwiese: http://blog.kanedo.net Ich bei Flickr? Da: Flickr: Fotostream von kanedo-projekt Für open Source Liebhaber: open Com Auch ich Zwitschere als @kanedo Geändert von kampfgnom (18.06.2009 um 11:47 Uhr) |
|
||||
Das meiste habe ich auch Learning-by-doing gelernt, was man mal wieder bei meiner komischen Idee zur Rechteverwaltung sieht (s. Deinen anderen Thread).
Ich habe heute an der Uni nochmal darüber gegrübelt und es haben sich da wohl doch noch einige Probleme aufgetan. Ich sortiere das mal für mich, dann geb' ich Dir Bescheid. |
Themen-Optionen | |
Ansicht | |
|
|