WordPress: Neue Benutzerrollen ohne Plugin erstellen

In WordPress können eigene Benutzerroller erstellt werden, falls die 5 von WordPress vorgegebenen Benutzerrollen nicht den Bedürfnissen entsprechen. Neue Benutzerrollen ermöglichen eine bessere Differenzierung der einzelnen Rollen und Benutzer und somit eine weit bessere Möglichkeit, individuell auf den jeweiligen Benutzer (und auf seine Rolle) eingehen zu können.

Man könnte auch die bereits vorhandenen Benutzerprofile anpassen, was jedoch nicht immer die beste Lösung ist, da sich hier leichter Fehler bei der Editierung der Rechtevergabe einschleichen können. Auch sind neue Benutzerrollen besser, wenn es sich um Benutzerrollen handelt, welche der eigentlichen Verwaltung des WordPress ziemlich fern sind. Hier im Beispiel sind das Autoverkäufer und Interessenten, welche in unserem Theme „MotorMarket“ erstellt werden. MotorMarket – eine Verkaufsplattform für Autoverkäufer & -händler auf Basis eines WordPress-Themes.

Neue Benutzerrollen: Verkäufer und Interessenten

Beide Benutzerrollen werden nicht nur der eigentlichen Verwaltung der Website aus Sicherheitsgründen möglichst fern gehalten und bedürfen daher eine komplett angepasste Rechtevergabe. Auch unterscheiden sich die beiden Rollen im Beispiel erheblich und müssen mit komplett anderen Rechten ausgestattet werden.

Aber keine Sorge: was hier kompliziert klingt, ist einfacher als wahrscheinlich gedacht und schnell getan.

Los gehts: functions.php

Eine neue Benutzerrolle wird zeitgleich mit seinen Berechtigungen erstellt. Die Rolle wird also benannt und sogleich definiert. Der PHP-Code, welcher dies tätigt, wird in die functions.php geschrieben (oder alternativ inkludiert). Nachdem die function.php entsprechend erweitert wurde, muss der Webserver die functions.php einmal neu laden und die neue Rolle ist verfügbar.

(Wie bitte? Die functions.php neu laden? Keine Sorge, das tut sie automatisch bei jedem Seitenaufruf deines WordPress, egal ob der Aufruf im Front- oder Backend stattfindet – also schon beim nächsten Aufruf, um beispielsweise einen neuen Benutzer in dieser Rolle zu erstellen.)

Folgender Code in der functions.php erstellt die Benutzerrolle „Seller“:

$newuser = add_role( 'seller', __('Seller'), array() );
Leicht verständlich: Die Variable ist austauschbar und beinhaltet den Befehl add_role (Rolle hinzufügen), welche den Slug seller bekommt. Als Name wird Seller gewählt, was sich hier im Beispiel dann aber auch leicht übersetzen lassen wird. Zum Schluss kommt ein Array, welches die Angaben zur Berechtigungsvergabe enthält. Obiges Beispiel würde zwar tatsächlich eine Benutzerrolle erstellen, welche so aber keine Funktionalität hat.

Daher: folgender Code erstellt die Benutzerrolle „Seller“ und gibt ihr im Array sogleich Berechtigungen und Restriktionen:

$newuser = add_role( 'seller', __('Seller'), array(
'read' => true, // true erlaubt das reguläre lesen
'edit_posts' => true, // Erlaubt eigene Beiträge (Posts) zu editieren
'edit_pages' => false, // Verbietet Seiten (Pages) zu editieren
'edit_others_posts' => false, // Verbietet Beiträge anderer Benutzer zu editieren
'create_posts' => true, // Erlaubt neue Beiträge (Posts) zu erstellen
'manage_categories' => false, // Verbietet Beitrags-Kategorien zu managen
'publish_posts' => true, // Erlaubt das Veröffentlichen eigener Beiträge (Andererseits würden sie als Entwurf gespeichert werden)
'edit_themes' => false, // Verbietet das Theme zu editieren
'install_plugins' => false, // Verbietet neue Plugins zu installieren
'update_plugin' => false, // Verbietet Plugins zu aktualisieren
'update_core' => false // Verbietet den WordPress-Core zu updaten
)
);

Die so erstellte Benutzerrolle hat nun sehr angepasste Berechtigungen. Um diese Rolle, und die Gruppe der Benutzer derer, aber auch weitestgehend von wichtigen Einstellungen fern zu halten, wie weiter oben im Beitrag als Ziel definiert, sollten noch weitere Zugangs- und Sicherheitsmechanismen eingebaut werden – was aber nicht Inhalt des Artikels ist. Benutzerrolle erstellt, funktioniert, alles fein.

Im Grunde kann nun der Eintrag aus der functions.php wieder gelöscht werden, was auch in Bezug auf Dateigröße und Ladegeschwindigkeit Sinn macht. Ich empfehle jedoch, den Vorgang ordentlich zu protokollieren, um später einfach nachschauen zu können, welcher Benutzerrolle welche Rechte gegeben wurden.

Fragen, Anregungen oder konstruktive Kritik? Ich freue mich über den Dialog!

WordPress Meta-Tag “generator” ohne Plugin entfernen

Kurze Frage, kurze Antwort. Der meta-tag “generator” wird nicht vom verwendeten Theme generiert, sondern stammt aus dem Kern der WordPress-Installation. Wie immer: möchte man eine Kernfunktion von WordPress ändern, sollte man nicht direkt im Kern eingreifen und modifizieren, sondern die gewünschte Änderung in der function.php des verwendeten Themes vornehmen. Von hieraus harkt man sich dann im Kern ein und veranlasst die Änderung.

Warum man die function.php bearbeitet und nicht direkt im Kern

Da sind 2 wichtige Gründe. Erstens zerschießt es dir, sofern Du etwas falsch machst (was man ja aber auch wieder rückgängig machen kann), erstmal nur das Theme und nicht gleich die ganze Website. Zweitens: sobald die neue Version von WordPress erscheint und man updatet, gehen leicht alle Änderungen im Kern verloren. Daher immer in der functions.php Funktionen des Kern ändern.

Ja, und wie nun das meta-tag “generator” ändern?

Einfach folgenden Codeschnipsel in die functions.php des verwendeten Themes eintragen:

remove_action('wp_head', 'wp_generator');

So einfach ist das. Schon ist das meta-tag “generator” aus dem Header von WordPress verschwunden.

Mit KeePass Passwörter und Profile erstellen, speichern und verwalten

Heutzutage benötigt man oftmals viele Passwörter. Ein Kennwort für die Windows-Netzwerk-Anmeldung, die E-Mail-Konten, FTP-Passwörter, Online-Passwörter (z.B. Website-Mitgliedskonten, Foren) und so weiter. Und wie steht es mit der Sicherheit dieser Daten?

Ich warne vor Antworten wie: “ich muss nichts notieren”, “ich benutze immer das gleiche Passwort”, “die Passwörter sind sicher im Notizbuch” oder “die Passwörter habe ich in einer Tabelle gespeichert”. Hast Du Dir schon Gedanken gemacht wie Du Passwörter und somit sensiblen Firmen- und Kundendaten sicher vor Trojanern, Würmern und den Augen Dritter schützt?

Grundlegend gilt bei der Wahl von Passwörtern:

Nutze niemals die gleichen oder auch kurze Passwörter. Egal wo. Nutze wenn möglich Groß- und Kleinschreibung, Zahlen und Sonderzeichen in einer zufälligen Kombination. Eine Länge von 16 Zeichen sollte man mindestens verwenden. Denke daran: wenn leichte Passwörter verwendet werden oder gar immer das selbe und jemand dieses Passwort knackt, hast Du ein wirklich ernsthaftes Problem. Der Dieb hätte Zugriff auf E-Mail-Konto, Homepage, Webserver, und und und. Von finanziellem und eventuellen Image-Schäden einmal abgesehen.

Mit der Software KeePass möchte ich einen kostenlosen Passwortmanager vorstellen, mit dessen Hilfe man die Verwaltung und Handhabung von Kennwörtern, Zugangsdaten und Profilen sicher handhaben kann. KeePass ist Open Source, in über 40 Sprachen verfügbar und dutzende male von verschiedenen Institutionen mit Bestnoten ausgezeichnet worden. Das Anpassen an die eigenen Bedürfnisse ist zudem durch vielseitige Erweiterungen sichergestellt. Als sehr nützlich erweist sich auch die portable Version von KeePass, womit man Passwörter und Zugangsdaten immer ortsunabhängig bei sich tragen kann.

Das hört sich alles traumhaft an? Von selbst versteht sich aber, das man eine Sicherung der Daten zur Verfügung haben sollten.

Alle in KeePass abgespeicherten Passwörter befinden sich in einer Datenbank, welche nur mit einem Master-Passwort oder einer individuellen Schlüssel-Datei geöffnet werden kann. Beide Zugangssicherungen sind zudem kombinierbar. Die Datenbanken selbst sind mit den weltweit besten und sichersten Verschlüsselungsalgorithmen (AES und Twofish) verschlüsselt. Selbst Militär, Banken und staatliche Institutionen nutzen jene Verschlüsselungsechnologie.