Changer le rôle minimum pour utiliser SecuPress

Pour utiliser SecuPress il faut être Administrateur du site (rôle utilisateur administrator).

En multi-site il y a deux situations :

  • Il faut être Administrateur du réseau pour avoir accès à toute l’interface de SecuPress : la page des scanners, des modules, des réglages, ou des journaux.
  • Parfois SecuPress doit s’adresser aux Administrateurs de chaque site, en leur affichant une notice et/ou leur donnant accès à une page dédiée. Dans ce cas c’est la même chose que pour un mono-site, il faut avoir le rôle utilisateuradministrator.

Le cas « Administrateur du réseau » ne peut pas être modifié.
En revanche le rôle utilisateur  administrator peut l’être, pour donner aux Éditeurs l’accès à l’interface de SecuPress par exemple, ou à un rôle personnalisé créé dans ce but.

Pour cela nous allons créer une extension « Must Use ».

  1. Voir le tutoriel Comment créer un MU Plugin et créer un fichier secupress-custom-role.php puis nommer ce MU plugin « SecuPress custom role » par exemple.
  2. En ajoutant le code nécessaire, il ressemblera à ceci :
    <?php
    /**
     * Plugin Name: SecuPress custom role
     * Version: 1.0
     */
    
    defined( 'ABSPATH' ) or die( 'Cheatin\' uh?' );
    
    add_filter( 'secupress.user_capability', 'my_custom_role' );
    /**
     * Filter the user capability/role that gives access to SecuPress features.
     *
     * @since 1.0
     */
    function my_custom_role() {
    	return 'edit_others_posts';
    }
    	
  3. edit_others_posts correspond aux rôles Éditeur et Administrateur. Vous pouvez trouver les correspondances capacité <=> rôle dans Roles and Capabilities [en]. Vous pouvez remplacer ce edit_others_posts par un rôle personnalisé, mais attention, cela ne ciblera QUE ce rôle.
  4. Placer le tout dans le dossier /wp-content/mu-plugins/