web-dev-qa-db-fra.com

Créer un administrateur en lecture seule

Existe-t-il un moyen simple de créer un utilisateur administrateur disposant d'autorisations en lecture seule? Autrement dit, ils peuvent se connecter et voir tout ce qu'un administrateur peut, mais ils ne peuvent rien changer du tout.

2
Raymond

Y a-t-il un moyen facile ...

Autant que je sache, non, pas du tout.

Si vous utilisez une installation sur un seul site, vous devez soigneusement désactiver (ne pas masquer, disable ) toutes les actions utilisateur pouvant modifier des éléments. Et cela doit être fait écran par écran (messages, pages, commentaires, apparence, plugins, etc.).

Par exemple, dans l'écran Tous les messages (/wp-admin/edit.php):

/**
 * Remove all row actions Edit|Quick Edit|Trash|View
 */
add_filter( 'post_row_actions', 'wpse_56560_remove_row_actions', 10, 2 );    
function wpse_56560_remove_row_actions( $actions, $post ) 
{
    global $current_user;
    if( 'pseudo-admin' == $current_user->user_login )
        return array();

    return $actions; 
}

/**
 * Remove the Trash link from All|Published|Trash
 */
add_filter( 'views_edit-post', 'wpse_74488_remove_trash_link' );   
function wpse_74488_remove_trash_link( $views ) 
{
    global $current_user;
    if( 'pseudo-admin' == $current_user->user_login )
        unset( $views['trash'] );

    return $views;
}

Dans l'écran Post Edit (/wp-admin/post.php?post=ID&action=edit):

/**
 * Remove the Publish meta box
 */
add_action( 'do_meta_boxes', 'wpse33063_remove_meta_box' );
function wpse33063_remove_meta_box()
{
    global $current_user;
    if( 'pseudo-admin' == $current_user->user_login )
        remove_meta_box( 'submitdiv', 'post', 'side' );
}

Dans les exemples précédents, tous les noms de fonctions contiennent l'ID de la question WPSE d'où ils ont été extraits.

Reportez-vous également à this Gist pour savoir comment rediriger les utilisateurs s’ils tentent d’accéder à une page à l’aide d’une URL directe.


Si vous utilisez une installation multisite, @BrianFegter Répondez à cette question: Comment puis-je ouvrir mon panneau d'administration à tout le monde? , a cette suggestion de Nice:

Je voudrais utiliser WP Multisite et permettre aux utilisateurs d’enregistrer un site de test. Woo Themes fait cela avec leur fonctionnalité de terrain de jeu .

1
brasofilo

Peut être adminimize plugin peut vous aider. http://wordpress.org/extend/plugins/adminimize/ il permet de définir/de contrôler les autorisations des utilisateurs.

0
Ronald