So haben z.B. die Gruppen Reviewers und Administrators die entsprechenden Manager- oder Reviewer-Rollen.
- Die globale Zuordnung von Nutzern und Gruppen zu einer Rolle können Sie in Plone Konfiguration → Benutzer und Gruppen vornehmen.
- Die lokale Zuweisung von Rollen erfolgt im Allgemeinen im Zugriff-Reiter eines Inhaltsobjekts. Dort suchen Sie zunächst nach einem Nutzer oder einer Gruppe, um in den Suchergebnissen anschließend Zuweisungen zu bestimmten Rechten vornehmen zu können. Die lokal verfügbaren Rollen sind beschränkt auf die explizit angegebenen (s.a. plone/app/workflow/localroles.py und plone/app/workflow/configure.zcml).
Plone selbst kommt mit sieben verschiedenen Rollen:
- Member
- ist die Standardrolle für einen angemeldeten Nutzer, der nur wenige Rechte zugewiesen sind.
- Manager
- ist die super-user-Rolle; sie ist der Administrators-Gruppe zugeordnet.
- Reviewer
- erlaubt Inhabern der Rolle, Artikel zu sehen und zu bestätigen, deren Inhalte zur Veröffentlichung vorgeschlagen wurden.
- Reader
- ist lediglich als lokale Rolle vorgesehen, wenn Member die Inhalte nicht sehen können.
- Editor
- ist das Pendant zu Reader, um Eigentümern die Möglichkeit zu geben, lokal Schreibrechte zu erteilen.
- Contributor
- ermöglicht einem Eigentümer, das Hinzufügen-Recht in einem Ordner an andere zu übertragen. Es erscheint im Zugriff-Reiter unter Kann hinzufügen.
- Site Administrator
hat Management-Rechte bis auf
- die Verwendung des Wartung-Kontrollfeldes
- den Zugang zum Zope Management Interface (ZMI)
- das Hinzufügen und Entfernen von Produkten
- die Änderung des Aussehens
- die Änderung der Cache-Konfiguration
Darüberhinaus definiert Zope noch drei automatisch zugewiesene Rollen:
- Owner
- wird normalerweise dem Nutzer zugeordnet, der das Inhaltsobjekt erstellte.
- Authenticated
- wird angemeldeten Nutzern zugewiesen. Diese Rolle ist niedrigschwelliger als Member und kann nicht explizit zugewiesen werden.
- Anonymous
- ist die Rolle für nicht-angemeldete Nutzer.
Rechte und Rollen programmatisch ändern
Die meisten niedrigschwelligen Sicherheitsmethoden werden in der AccessControl.Role.RoleManager-Klasse definiert. Diese ist in allen Inhaltsobjekten verfügbar einschließlich des Plone Site-Objekts selbst. Sie können sich diese Methoden im Doc-Reiter im Wurzelverzeichnis Ihrer Plone-Site anschauen:
Darüberhinaus empfiehlt sich auch ein Blick in den Doc-Reiter des PlonePAS Membership Tool.
Und hier noch einige der am häufigsten verwendeten programmatischen Änderungen von Rechten und Rollen:
- Rechte überprüfen:
from AccessControl import getSecurityManager from Products.CMFCore.permissions import ModifyPortalContent sm = getSecurityManager() if sm.checkPermission(ModifyPortalContent, context): # do something
- Rechte ändern:
context.manage_permission("Portlets: Manage portlets", roles=['Manager', 'Owner'], acquire=1)
- Überprüfen, ob ein Nutzer angemeldet ist oder nicht (d.i. anonymous):
from Products.CMFCore.utils import getToolByName mtool = getToolByName(context, 'portal_membership') if mtool.isAnonymousUser(): # do something
- Herausfinden des aktuellen Nutzers:
member = mtool.getAuthenticatedMember() user_id = member.getId()
- Finden von Mitgliedern anhand der ID:
admin_user = mtool.getMemberById('admin')