Frage

Ich schreibe derzeit ein CMS und erinnere mich jemand (es hier gewesen sein könnte) kritisieren die vorhandenen CMS für nicht robust genug, um Benutzerberechtigungen System. Ich habe eine Methode habe geplant, aber es ich fühle es in die übliche Falle feinkörnig etwas zu zu sein, die gefallen ist, macht das Verständnis und es ein Horror für die Endbenutzer zu implementieren.

Ich denke, mit einem Bereich von Standard-Benutzerrollen mit Berechtigungen wäre die Antwort auf diese Frage, so dass ich meine Frage annehmen, ist dies:

Was sind die Standardrollen möchten Sie in einem CMS sehen und was für Berechtigungen würde mit diesen in Verbindung gebracht werden?

Vielen Dank im Voraus!

War es hilfreich?

Lösung

Dies ist das „best practice“ Ich habe mit in den meisten Projekten gelandet und bin sehr zufrieden mit:

1. Rollen

Wenn es um Rollen kommt, ich große Flexibilität empfehlen, das heißt die Fähigkeit, frei von Benutzerkonten und Gruppen zu erstellen und definieren (Rollen wie „Beitrag“, „Manager“ etc. sind nicht hartcodiert, sondern setzten in eine Konfigurationsdatei, die pro Anwendung geändert werden kann) . Die Rollenkonfiguration ist unaccessible den Benutzer, aber der Motor selbst sollte aus hartcodierte Rollen frei sein.

2. Rechte

Rechte ist, wo die Dinge sein müssen leicht zu verstehen und zu implementieren .

Ich habe sehr gute Erfahrungen gemacht Arbeit mit und Kontrolle gegen, sehr feinkörnig Rechte auf dem Code / API-Ebene :

  • sehen
  • Ansicht
  • Bearbeiten
  • Name ändern
  • Umbenennungs
  • Löschen
  • Bewegung
  • Änderung Rechte
  • etc.

und der Benutzer sieht nie jenes . Für sie sind sie gruppiert in eine sehr kleine Anzahl von „richtigen Gruppen“:

  • Read Only
  • Bearbeiten
  • Administer = Verschieben, Umbenennen ....

Der Benutzer nie sieht die „move“ richtig, aber nur die „administrieren“ Rechtsgruppe.

Auf diese Weise Sie die volle Leistung des feinkörnig Rechte behalten in Ihrem Code für die Zukunft - Sie können zum Beispiel leicht für eine Regel aufnehmen wie „Praktikanten zu bearbeiten Seiten der Lage sein müssen , aber nicht ihre Titel ändern kann, noch sie“zu löschen, eine wertvolle Bereicherung für das CMS hinzufügen. Für den Endverbraucher bleibt diese Funktionalität unsichtbar, und das Rechtssystem einfach zu bedienen.

Andere Tipps

hat diese Frage ein wenig vor und bekam folgende Antwort.

admin           //Manage everything
manager         //Manage most aspects of the site
editor          //Scheduling and managing content
author          //Write important content
contributors    //Authors with limited rights
moderator       //Moderate user content
member          //Special user access
subscriber      //Paying Average Joe
user            //Average Joe

Haben Sie bestehende Lösungen wie RBAC ? Während ein solches System höchstwahrscheinlich vollständig übertrieben für die jeweilige Mutter sein würde, Sie versuchen, es zu knacken würde zumindest helfen zu stärken Vertrauen, dass Sie auf dem richtigen Weg sind.

Davon abgesehen, die allgemeinen Rollen, die ich erwarten würde nach dem Vorbild der wären:

Administator - Gesamtsteuerung des Systems, können Protokolle anzeigen (wie Sie sollten die Protokollierung sein alle Änderungen ) usw. plus ...

Verlag - Kann Inhalt Live setzen plus ...

Autor - Kann Inhalt erstellen

Doch wie diese Rollen über das System angewandt werden, wo es kompliziert, als ein bestimmte Benutzer vermutlich unterschiedliche Rechte auf verschiedene Inhaltsbereich / Module hat.

Für die meisten Anwendungen, so denke ich, es wird für CMSs wahr sein, wie gut, meine Kunden bevorzugen in der Regel einen rechtsorientierten Ansatz. Hier ist, wie es geht:

  1. Sie listen die wichtigsten Maßnahmen. In Ihrem CMS, das wäre: Erstellen und Bearbeiten von Inhalten; Löschen von Inhalten; Klassifizieren / Kategorisieren Inhalt; Validate Inhalt; Veröffentlichen von Inhalten; Benutzer verwalten; Etc.
  2. Sie legen fest, welche Aktionen zulässig sind oder für jeden Benutzer
  3. verweigert

Um die Dinge ein wenig besser zu machen, können Sie mehrere Rollen (Editor, Administrator) erstellen. In den typischen Benutzer Schaffung zu erleichtern (durch Pre-Ausfüllen des Formulars, wenn eine Rolle gewählt wird)

Ich habe ein CMS Brauch auf dem Zend Framework gebaut, die sich einige grundlegende Funktionen von Zend ACL verwendet (so Sie Ressourcen, die speziell für zusätzliche Benutzer leugnen oder anderen erlauben den Zugriff auf Ressourcen konnten sie normalerweise nicht). Meine grundlegende Rollen gehen von CMS-Benutzer der ganzen Weg hinunter zur Website „Mitglieder“ wie folgt (ich nur eine Benutzer-Tabelle verwenden, um all meine Authentifizierung speichern).

Entwickler

Bearbeiten jeden Inhalt, bearbeiten Layouts, Einstellungen, Konfiguration. Verwenden Sie spezielle Tools, die Shell-Skripten und Kraft Cron-Jobs aufrufen können.

Admin

Bearbeiten jeden Inhalt, bearbeiten Layouts, Einstellungen.

Autor

Inhalt bearbeiten.

Mitglied

Kann den Login-Bildschirm sehen, Passwort vergessen und Bug-Reports.

Nun hat Zend eine schöne ACL-Implementierung so können Sie einfach Ihre Basis ACL-Klasse erweitert und neue Rollen hinzufügen, die von den grundlegenden Rollen erstrecken. So könnte ich eine „Admin“ machen, die einen Autor muss nur in der Lage sein, Blogs Zugang zu einem der Entwickler-Tool (z Spül- oder Cache-Management) oder sperren zu verwalten (und nicht zB Nachrichten).

Ich würde nicht unbedingt entlassen, die feinkörnig Kontrollsystem Sie jetzt haben. Wenn Sie eine haben, die anpassungsfähig Fokus auf die Komplexität versteckt weg durch eine vereinfachte Schnittstelle zur Verfügung stellt (zB verwenden, um die Fassadenmuster oder die Adapter-Muster). Die Vorteile sind, dass Sie Benutzer mit der vereinfachten Version (einfache Berechtigungen wie ‚admin‘ kann ‚löschen‘ a ‚post‘) liefern, während immer noch die feinkörnig Merkmale erhalten, sollten Sie sie später benötigen (zB mehr komplizierte Erlaubnis Handhabung löschen lassen Beiträge, wenn der Beitrag ist Ihr eigener Beitrag in der Kategorie X). Dann können Sie für diesen Bedarf an einigen Stellen eine Alternative zu der vereinfachten Version liefern.

Admin : Der mit allen Rechten

Autor : Derjenige, der alle Rechte an einem bestimmten Inhalt hat (wie ein Blog-Autor, die den Blog besitzt), auch die Berechtigungen zum Hinzufügen / laden Benutzer zu collaborate / Blick den Inhalt

Collaborator : Derjenige, der kann edit / add Inhalte, auf die der Autor Rechte gegeben hat, kann nicht auf den Inhalt löschen oder laden / weitere Mitarbeiter hinzufügen

-Viewer : Derjenige, der den Inhalt anzeigen kann, wenn der Autor Ansicht eingeladen hat,

Herausgeber : Derjenige, genehmigen / bearbeiten alle Arten von Inhalten

ein feinkörniges Kontrolle zu haben, ist keine schlechte Idee, wenn Sie fortgeschrittene Benutzer / Entwickler erwarten, dass das CMS verwenden. Aber für Anfänger CMS-Manager machen die grundlegenden Rollen das System viel mehr verwendbar.

Administrator - können Anwender + alle unter

Editor - bearbeiten können Beiträge anderer + alle unter

Autor - können Beiträge schreiben, bearbeiten eigene Beiträge

Schöpfer -. Verantwortlich für die Erstellung und Bearbeitung von Inhalten

Editor - verantwortlich für die Abstimmung der Inhalt Nachricht und die Art der Lieferung, einschließlich Übersetzung und Lokalisierung.

Verlag - verantwortlich für die Freigabe der Inhalte für Verwendung.

Administrator - verantwortlich für den Zugang der Verwaltung Berechtigungen für Ordner und Dateien, in der Regel erreicht durch die Vergabe von Zugriffsrechten zu Benutzergruppen oder Rollen.

Consumer, Zuschauer oder Gast - die Person, die liest oder ansonsten nimmt inhaltlich nach der Veröffentlichung oder geteilt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top