J'ai vu des questions similaires mais celle que j'ai trouvée posant une question proche de celle-ci n'a jamais été répondue.
Je tente de créer un rôle pour notre équipe de support sur notre installation MultiSite, où ils peuvent accéder à tous les sites comme un super-administrateur, ainsi que gérer/créer/modifier/supprimer des utilisateurs et des sites sur le réseau.
Selon les codes sur les capacités , le manage_sites
et le manage_network_users
devraient autoriser ces options, ou est-ce que je ne lis pas correctement? Le code de mon plugin à ce jour est ici:
function sqms_add_custom_roles() {
add_role(
'sqms_support_team',
__( 'Support Team' ),
array(
'delete_others_pages' => true,
'delete_others_posts' => true,
'delete_pages' => true,
'delete_posts' => true,
'delete_private_pages' => true,
'delete_private_posts' => true,
'delete_published_pages' => true,
'delete_published_posts' => true,
'edit_dashboard' => true,
'edit_files' => true,
'edit_others_pages' => true,
'edit_others_posts' => true,
'edit_pages' => true,
'edit_posts' => true,
'edit_private_pages' => true,
'edit_private_posts' => true,
'edit_published_pages' => true,
'edit_published_posts' => true,
'edit_theme_options' => true,
'export' => true,
'import' => true,
'list_users' => true,
'manage_categories' => true,
'manage_links' => true,
'manage_options' => true,
'moderate_comments' => true,
'promote_users' => true,
'publish_pages' => true,
'publish_posts' => true,
'read_private_pages' => true,
'read_private_posts' => true,
'read' => true,
'remove_users' => true,
'switch_themes' => true,
'upload_files' => true,
'edit_users' => true,
'create_users' => true,
'delete_users' => true,
'unfiltered_html' => true,
'manage_sites' => true,
'manage_network_users' => true,
)
);
}
function sqms_remove_custom_roles() {
remove_role( 'sqms_support_team' );
}
register_activation_hook( __FILE__, 'sqms_add_custom_roles' );
register_deactivation_hook( __FILE__, 'sqms_remove_custom_roles' );
L'option "réseau" n'apparaît pas dans le menu "mes sites" et, lors de la navigation vers /site-new.php, il suffit de donner une erreur "no permissions".
Aucun conseil? Je vous remercie.
Selon les codes sur les capacités, manage_sites et manage_network_users devraient accorder ces options, ou est-ce que je ne lis pas correctement?
Apparemment, les capacités ici ne suffisent pas. Découvrez wp-admin/network.php . Vous verrez qu'il meurt si l'utilisateur actuel échoue à la vérification is_super_admin . Cette vérification obtient le $super_admins
global de get_super_admins et renvoie false si l'utilisateur actuel ne se trouve pas dans ce tableau. Il semble qu'un utilisateur DOIT être ajouté en tant que super administrateur via cette option, et pas uniquement via les fonctionnalités appropriées. Cette option peut être définie en modifiant manuellement un utilisateur (sa case à cocher est activée dans l'écran d'édition de l'utilisateur) ou en utilisant la fonction grant_super_admin .
En ce qui concerne la barre d'administration indiquant ce que vous voulez, consultez wp-includes/admin-bar.php . Vous verrez qu'il exécute également la vérification is_super_admin pour déterminer la sortie du menu Administrateur réseau.