it-swarm.com.de

Gibt es eine einfache Möglichkeit, die Funktionen pro Benutzer zu verwalten?

Ich habe eine WordPress-Site, auf der einige Leute (Nicht-Experten-Kunden) Benutzer anlegen/verwalten müssen. Die Site verwendet mehrere benutzerdefinierte Beitragstypen und jedem Benutzer werden Berechtigungen für einen oder mehrere dieser Cpt zugewiesen. Im Moment sehe ich zwei Möglichkeiten, damit umzugehen, und ich bin mit keiner von ihnen sehr zufrieden.

(1) Benutzerrollen : Wenn ich vier benutzerdefinierte Beitragstypen (A, B, C, D) hätte, dann würde ich eine Menge Benutzerrollen benötigen decken alle Kombinationen von Fähigkeiten ab. (Rolle A, Rolle AB, Rolle ABD ...). Das ist für den Kunden nicht sehr bequem zu handhaben.

(2) Capability Management Plugin : Wenn ich die Benutzer verwalten würde, würde ich ein Plugin wie "User Role Editor" verwenden. Aber das ist für meine nicht fachkundigen Kunden ziemlich kompliziert und das Risiko, das System zu verfälschen, ist hoch.

Ich denke nur an einfache Kontrollkästchen (zumindest beim Erstellen eines neuen Benutzers), in denen der Client die benutzerdefinierten Beitragstypen auswählen kann, auf die der neue Benutzer zugreifen kann. Wie: Dieser Benutzer kann alles mit Cpt A und B und D machen.

Gibt es eine Möglichkeit, dies zu tun, und sollten Sie dies auch mit WordPress tun?


AKTUALISIEREN

@RyanLoremIpsum hat mich in die richtige Richtung gelenkt, sodass ich ein kleines Plugin schreiben konnte, das so einfach ist, wie ich es brauche. Sieht ungefähr so ​​aus:

choose the cpt's a user should be able to access

3
Christoph

Sie müssen nicht unbedingt Rollen zuweisen, um die Funktionen des Benutzers zu verwalten.

Registrieren Sie zunächst Ihre benutzerdefinierten Beitragstypen mit ihren jeweiligen Funktionen. Siehe Funktionen unter Funktionsreferenz/Registerposttyp - Parameter

Benutzerfunktionen verwalten

Sie können add_cap oder remove_cap verwenden, um Benutzerfunktionen für a hinzuzufügen oder zu entfernen bestimmter Benutzer.

// Add capability to a specific user  
$user = new WP_User( $user_id );  
$user->add_cap( 'can_edit_posts');  

// Remove a capability from a specific user.
$user = new WP_User( $user_id );
$user->remove_cap( 'read_private_posts' );

Dies ist praktisch, da Sie einem Benutzer Funktionen gewähren können, die nicht zur zugewiesenen Rolle des Benutzers gehören.

Sie können beispielsweise für jeden Beitragstyp ein Formular mit Kontrollkästchen erstellen, wie Sie es sagten. Für jedes aktivierte Kontrollkästchen werden einer bestimmten Benutzer-ID die Funktionen zugewiesen, die Sie beim Registrieren dieses Beitragstyps erstellt haben. Ebenso kann das Deaktivieren eines Kontrollkästchens die Funktionen entfernen.

0
iyrin