Blog

Benutzerrechte in WordPress 2.0 Überblick

Im WordPress 2.0 ist eine neue Rechtestruktur implementiert worden. Diese beruht nicht mehr auf auf einer zehnstufigen Skala, sondern besteht jetzt aus Gruppen und den Gruppen zugeordneten Rechten.

Die Entwickler haben dies teilweise bereits dokumentiert. Doch wenn es ans Eingemachte geht, hört es plötzlich auf. Mit "Eingemachten" meine ich Fragen wie:

Wie erstelle ich neue Rechte/Gruppen und wie lösche ich diese?
Wie verwalte ich Rechte/Gruppen oder wie sehe ich wer welche Rechte hat?

Dies Antworten auf diese essentiellen Fragen hatte ich dann irgendwann nach 4 Stunden zusammen. Eine erste Einführung in Englisch ist hier zu finden

Es gibt 5 Gruppen Administrator/Author/Editor/Subscriber und 30 Rechte. Zu den Rechten zählen z.B. einen Artikel erstellen oder bestimmte Admin Bereiche sehen zu können. Um die Kompatibilität zum WordPress 1.5 bzw. Plugins zu erhalten, wurden die alten Rechte als Level_1 bis Level_10 – Rechte-Gruppen übernommen. So gibt es eigentlich nur 20 Rechte verteilt auf die 5 Gruppen.

 

Die Rechte-Zuordnungs-Tabelle aus dem WordPress Wiki:

Rechte administrator editor author contributor subscriber
switch_themes x        
edit_themes x        
activate_plugins x        
edit_plugins x        
edit_users x        
edit_files x        
manage_options x        
moderate_comments x x      
manage_categories x x      
manage_links x x      
upload_files x x x    
import x        
unfiltered_html x x      
edit_posts x x x x  
edit_others_posts x x      
edit_published_posts x x      
publish_posts x x x    
edit_pages x x      
read x x x x x
level_10 x        
level_9 x        
level_8 x        
level_7 x x      
level_6 x x      
level_5 x x      
level_4 x x      
level_3 x x      
level_2 x x x    
level_1 x x x x  
level_0 x x x x x

Das ist ja alles schön und gut, doch wie kann ich den z.B. der Contributor-Gruppe das Recht manage_links->Links verwalten geben?  Die einfache Antwort ist: Erstmal gar nicht!
Ähm wie bitte, gut es geht schon aber nur direkt in der Datenbank in einem sehr lästigem Array oder mit ein paar Zeilen php-Code den man ausführen muss (siehe dazu weiter unten die API-Datei). Ob man es glaubt oder nicht. WordPress 2 wird mit einem Rechtesystem ohne direkte Verwaltungsoberfläche ausgeliefert. Nun mag man sagen, das 1.5.x hat ja auch keine Verwaltung der Rechte. Das ist auch nicht nötig da diese eher statischen Charakter haben.

Im WP 2.0 ist die Verwaltung aber essentiell, weil die Gruppen absolut unabhängig voneinader stehen und jede Gruppe jedes Recht einzeln zugeteilt wird. Es gibt keine Vererbung oder Hirachie. Jeder Benutzer muss einer Gruppe zugeordnet sein und kann auch direkt ein Recht erhalten. Ein Benutzer kann aber nur einer Gruppe zugeordnet werden!

Doch zurück zur Verwaltung. Die gute Nachricht: Es gibt mittlerweile einen Plugin von Owen Winkler der die vergebene Rechte und die Gruppen anzeigt, sowie diverse Editier-Möglichkeiten bietet und damit meine Fragen vom Anfang beantwortet.

Der Plugin benutzt die Schnittstellendatei(API) -> capabilities.php , in welcher entsprechende Funktionen bereitgestellt werden. Diese Funktionen sind essentiel für Pluginentwickler, deswegen sollte jeder Pluginauthor zumindest die Grundlagen kennen und nutzen.

Doch wie kommen die Rechte und die Gruppen zum Einsatz?

Wie oben schon erwähnt, ein Benutzer muss einer Gruppe zugeordnet werden. Das passiert automatisch beim Anlegen oder von Hand im Admin Bereich. Mit der Gruppe erhält der Nutzer dann die Rechte.
Plugin Authoren sollten in Ihren Funktionen Abfragen nach dem Benutzerrecht oder der Rolle hinzufügen. Dazu benutzt man entweder vorhandene oder kreiert Neue. Wie man das in einem Plugin macht werde ich ein einem weiteren Artikel beschreiben.

1 Comment to Benutzerrechte in WordPress 2.0 Überblick

  1. 26.06.2009 at 9:01

    sehr sehr hilfreich post.
    Habe mir einen Wolf gesucht wer eigentlich was darf.
    Nun ist einiges klarer :)

    Grüße

  1. By on 08.09.2008 at 16:09
  2. By on 27.03.2008 at 15:39
  3. By on 14.06.2006 at 15:54