Les rôles et permissions des utilisateurs de WordPress vous permettent de contrôler ce que les autres utilisateurs peuvent ou ne peuvent pas faire sur votre site. Vous pouvez les utiliser pour gérer les actions des utilisateurs telles que la rédaction et la modification d’articles, la création de nouvelles pages, la modération des commentaires, l’installation d’extensions, l’ajout de nouveaux utilisateurs, et bien plus encore.

La compréhension des rôles et des permissions des utilisateurs est essentielle pour gérer tout site WordPress. Par exemple, si vous créez un site pour un client, vous ne voudriez pas qu’il modifie ou change le thème installé. De même, il est peu judicieux de laisser les auteurs d’un blog à plusieurs auteurs installer ou supprimer des extensions.

Apprendre à gérer intelligemment les rôles des utilisateurs de WordPress vous aidera à rationaliser votre flux de travail, à assurer la sécurité de votre site et à obtenir un contrôle ultime sur votre site.

Dans ce guide complet, vous apprendrez à connaître les rôles des utilisateurs de WordPress, les différentes fonctionnalités de WordPress, comment modifier les rôles des utilisateurs existants, comment gérer les utilisateurs sur un site multiple et créer de nouveaux rôles avec un nouvel ensemble de permissions.

Ça vous excite ? Plongeons dans le vif du sujet !

Quels sont les rôles et les permissions des utilisateurs de WordPress ?

Les rôles et les permissions sont le pain et le beurre de la gestion des accès des utilisateurs dans WordPress. Pour comprendre les rôles des utilisateurs dans WordPress, vous devez d’abord connaître les permissions.

WordPress définit toute action qu’un utilisateur peut entreprendre comme une permission. Voici quelques exemples de permissions disponibles dans WordPress et comment elles sont référencées dans son code :

La plupart des permissions s’expliquent d’elles-mêmes par leur nom. WordPress possède plus de 70 permissions codées en dur intégrées dans son noyau.

Un rôle est un ensemble de permissions que vous pouvez attribuer à un utilisateur. Un rôle doit être attribué à chaque utilisateur de WordPress. Un utilisateur ne peut effectuer que les actions que son rôle lui attribue.

Un « rôle » est un ensemble de « capacités ».
Un « rôle » est un ensemble de « capacités ».

Dans le graphique ci-dessus, tout utilisateur ayant le rôle 1 peut lire les publications, mais il ne peut pas les modifier. Les utilisateurs de rôle 2 peuvent à la fois lire et modifier les publications, mais ils ne peuvent pas publier de publications. Tout utilisateur de rôle 3 peut lire, éditer et publier des publications, mais il ne peut pas les supprimer, contrairement aux utilisateurs de rôle 4 qui peuvent le faire.

Le panneau « Ajouter un nouvel utilisateur » dans le tableau de bord de WordPress
Le panneau « Ajouter un nouvel utilisateur » dans le tableau de bord de WordPress

WordPress utilise un grand nombre de ses permissions natives pour définir ses rôles d’utilisateur par défaut. Par exemple, il accorde aux administrateurs et aux éditeurs la permission publish_pages, mais il ne les attribue pas aux abonnés et aux contributeurs.

Le panneau « Utilisateurs » dans le tableau de bord de WordPress
Le panneau « Utilisateurs » dans le tableau de bord de WordPress

Au strict minimum, chaque utilisateur de WordPress a un nom d’utilisateur, un mot de passe, une adresse e-mail et un rôle.

phpMyAdmin affichant où la base de données WP stocke les permissions
phpMyAdmin affichant où la base de données WP stocke les permissions

WordPress stocke toutes ses permissions basées sur les rôles dans sa base de données dans la table wp_options sous l’option sérialisée wp_user_roles. La classe du noyau WP_Roles est utilisée pour définir la manière de stocker les rôles et les permissions dans la base de données.

La classe WP_Rôles

WordPress met en œuvre des rôles et des permissions avec l’API des rôles utilisateur, dont la plupart sont basés sur la classe WP_Roles. Vous pouvez trouver ses sources dans le fichier wp-includes/class-wp-roles.php.

Si vous regardez dans la base de données, vous verrez que les rôles se trouvent dans un tableau avec leurs noms définis. La clé rolename stocke le name du rôle de l’utilisateur comme une valeur de la clé de nom et toutes les permissions dans un tableau séparé comme une valeur de la clé de capability.

array (
     'rolename' => array (
         'name' => 'rolename',
         'capabilities' => array()
     )
)

La classe WP_Roles définit un grand nombre de méthodes. Vous pouvez les appeler n’importe où dans votre code pour interagir avec l’API des rôles utilisateur.

Note : WordPress comprend une autre classe de base appelée WP_Role (notez le singulier « Role »). Elle est utilisée pour étendre l’API des rôles utilisateur.

Lorsque vous désérialisez la valeur de la clé de wp_user_roles, elle ressemble à ceci :

array (
  'administrator' => 
  array (
    'name' => 'Administrator',
    'capabilities' => 
    array (
      'switch_themes' => true,
      'edit_themes' => true,
      'activate_plugins' => true,
      // [...rest of the lines cut off for brevity...]
    ),
  ),
  'editor' => 
  array (
    'name' => 'Editor',
    'capabilities' => 
    array (
      'moderate_comments' => true,
      'manage_categories' => true,
      'manage_links' => true,
      // [...rest of the lines cut off for brevity...]
    ),
  ),
  'author' => 
  array (
    'name' => 'Author',
    'capabilities' => 
    array (
      'upload_files' => true,
      'edit_posts' => true,
      'edit_published_posts' => true,
      // [...rest of the lines cut off for brevity...]
    ),
  ),
  'contributor' => 
  array (
    'name' => 'Contributor',
    'capabilities' => 
    array (
      'edit_posts' => true,
      'read' => true,
      // [...rest of the lines cut off for brevity...]
    ),
  ),
  'subscriber' => 
  array (
    'name' => 'Subscriber',
    'capabilities' => 
    array (
      'read' => true,
      'level_0' => true,
    ),
  ),
)

Il s’agit d’un tableau multidimensionnel dans lequel chaque rôle se voit attribuer un nom de rôle et un ensemble de permissions. De même, WordPress stocke les permissions basées sur l’utilisateur dans le tableau wp_usermeta avec le nom de la méta-clé wp_capabilities.

Note : le préfixe wp_ peut être différent dans votre configuration. Il dépend de la valeur de la variable globale $table_prefix dans le fichier wp-config.php de votre site.

Tableau des rôles et des permissions

Le tableau « Rôles et permissions » dans le Codex WordPress
Le tableau « Rôles et permissions » dans le Codex WordPress

Le Codex WordPress comprend un simple tableau des permissions et des rôles, bien qu’il ne soit pas très intuitif. Il résume toutes les actions que les rôles des utilisateurs par défaut peuvent prendre dans les configurations WordPress monosite et multisite. Il y a une pause après un certain nombre de permissions pour vous permettre de distinguer facilement les permissions de haut niveau de celles de bas niveau.

Pour une meilleure représentation de tous les rôles et permissions de WordPress en un coup d’œil, vous pouvez consulter cet excellent tableau par Exygy.

Permissions liées aux blocs réutilisables de Gutenberg

L’éditeur de blocs Gutenberg de WordPress a introduit une fonctionnalité étonnante appelée « blocs réutilisables « . Elle vous permet d’enregistrer un bloc entier (ou plusieurs blocs) comme modèle et de l’utiliser n’importe où ailleurs sur votre site.

Ajout de « blocs réutilisables » dans le nouvel éditeur de blocs Gutenberg de WordPress
Ajout de « blocs réutilisables » dans le nouvel éditeur de blocs Gutenberg de WordPress

En conséquence, WordPress a également introduit les nouvelles permissions suivantes liées aux blocs réutilisables :

  • Créer des blocs réutilisables
  • Modifier les blocs réutilisables
  • Lire les blocs réutilisables
  • Supprimer les blocs réutilisables

Les permissions listées ci-dessus fonctionnent de la même manière que les permissions liées aux publications. Un administrateur ou un éditeur a accès à toutes les permissions liées aux blocs réutilisables, tandis qu’un auteur ne peut que modifier ou supprimer les blocs réutilisables qu’il a créés. Les contributeurs ne peuvent que lire les blocs réutilisables.

Permission spéciale : Téléversement non filtré

Le téléversement non filtré est une permission spéciale qui n’est attribuée à aucun rôle d’utilisateur par défaut, y compris Administrateur ou Super Admin. Elle permet à un utilisateur de téléverser des fichiers avec n’importe quelle extension (par exemple SVG ou PSD), et pas seulement celles qui figurent sur la liste autorisée par WordPress.

Note : Vous pouvez obtenir une liste des types de mime et des extensions de fichiers pris en charge par WordPress en utilisant la fonction wp_get_mime_types().

Pour activer cette permission, vous devez ajouter le code ci-dessous à votre fichier wp-config.php. Définissez la constante avant la ligne qui vous demande d’arrêter la modification.

define( 'ALLOW_UNFILTERED_UPLOADS', true );

Après avoir défini cette constante, vous pouvez donner à n’importe quel utilisateur un rôle sur un site unique WordPress et installer la fonction de téléversement non filtré. Cependant, sur une installation multisite, seul un Super Admin peut avoir cette permission.

Par exemple, si vous souhaitez attribuer la permission unfiltered_upload à un éditeur, vous pouvez ajouter le code suivant n’importe où dans votre code WordPress (idéalement, ne le lancez que lors de l’activation d’un thème ou d’une exgtension) :

<?php

  $role = get_role( 'editor' );
  $role->add_cap( 'unfiltered_upload' );

?>

Nous discuterons plus tard de la façon d’ajouter ou de personnaliser les permisdsions de tous les rôles d’utilisateur ou d’utilisateurs spécifiques.

Permissions primitives vs méta-permissions

Il existe principalement deux types de permissions dans WordPress :

  • Les permissions primitives : Ces permissions sont accordées à des rôles particuliers. Les utilisateurs ayant ces rôles héritent automatiquement des permissions primitives.
  • Les meta-permissions : Ces permissions ne sont accordées à aucun rôle par défaut. WordPress vérifie un certain objet dans son code et sa base de données, comme un article, une page, un utilisateur ou toute taxonomie, et si la logique est vérifiée, il « associe » une méta-permission à une ou plusieurs permissions primitives.

Par exemple, WordPress accorde aux auteurs la permission edit_posts pour modifier leurs propres publications. Cependant, cette permission ne leur permet pas de modifier les publications des autres utilisateurs. C’est là que les méta-permissions aident.

WordPress utilise la fonction map_meta_cap() pour renvoyer un tableau de permissions primitives liées à un objet spécifique. Il les compare ensuite avec l’objet utilisateur pour vérifier si l’utilisateur peut modifier la publication.

Quelques autres exemples de méta-permissions sont read_post, delete_post, remove_user et read_post. Nous les examinerons plus en détail dans la section sur les permissions personnalisées ci-dessous.

Les six rôles par défaut des utilisateurs de WordPress

WordPress comprend six rôles d’utilisateur prédéfinis. Le premier utilisateur d’une installation WordPress obtient le rôle d’administrateur par défaut (ou le rôle de super-administrateur avec les installations WordPress multisite).

Depuis que WordPress a commencé comme une plateforme de blogs avant de se développer en un véritable CMS, il définit la plupart de ses rôles d’utilisateur pour publier du contenu sur le web. Ses autres rôles d’utilisateur prédéfinis sont ceux d’éditeur, d’auteur, de contributeur et d’abonné.

Les rôles d'utilisateur WordPress par défaut empilés par ordre de permissions
Les rôles d’utilisateur WordPress par défaut empilés par ordre de permissions

Imaginez les rôles par défaut des utilisateurs de WordPress comme une collection de cylindres empilés représentant diverses permissions. Le plus grand cylindre a le plus de permissions, le deuxième plus grand cylindre a le deuxième plus grand nombre de permissions, et le plus petit cylindre a le moins de permissions.

Vous ne devez pas considérer un rôle comme supérieur à un autre. Considérez plutôt les rôles comme la définition des responsabilités d’un utilisateur au sein du site.

Un rôle d’utilisateur n’est jamais supérieur, ni inférieur, il définit précisément ce à quoi il est destiné.

Examinons maintenant en détail tous les rôles prédéfinis des utilisateurs de WordPress.

Administrateur

Le tableau de bord du rôle de l'administrateur dans WordPress
Le tableau de bord du rôle de l’administrateur dans WordPress

WordPress attribue au premier utilisateur de toute installation sur un seul site le rôle d’administrateur. Il se situe au sommet de tous les autres rôles d’utilisateur et a accès à toutes les permissions définies par WordPress. Les utilisateurs ayant le rôle d’administrateur peuvent effectuer des actions telles que

  • Créer et supprimer des utilisateurs
  • Installer et gérer des extensions et des thèmes
  • Modifier les extensions, les thèmes, les fichiers et le code
Seuls les administrateurs peuvent ajouter de nouveaux utilisateurs dans WordPress
Seuls les administrateurs peuvent ajouter de nouveaux utilisateurs dans WordPress

Le rôle d’administrateur étant le plus puissant, vous ne devez l’attribuer qu’à ceux en qui vous avez confiance. Idéalement, il ne devrait y avoir qu’un seul administrateur par site.

Le rôle de l’administrateur dans un réseau WordPress Multisite est défini un peu différemment, bien qu’il soit appelé de la même façon. Dans un réseau multisite, le rôle d’administrateur ne bénéficie pas de certaines fonctionnalités qu’il a dans un site unique WP, comme l’installation de thèmes et d’extensions. WordPress réserve ces permissions au rôle de super-administrateur.

Éditeur

Le tableau de bord du rôle d'éditeur dans WordPress
Le tableau de bord du rôle d’éditeur dans WordPress

Un éditeur se charge de la gestion du contenu d’un site WordPress. Il peut créer, modifier, publier ou supprimer des articles et des pages, même ceux qui sont créés par d’autres utilisateurs. Voici quelques-unes de leurs permissions :

  • Supprimer des articles et des pages publiés
  • Modérer les commentaires
  • Gérer les liens et les catégories
  • Modifier les articles et les pages d’autres utilisateurs

Les éditeurs ne peuvent pas prendre de mesures d’administration du site telles que l’installation d’extensions et de thèmes. Leur principale responsabilité est de superviser le travail des autres auteurs et contributeurs ou de constituer une équipe de contenu composée d’une seule personne.

Conseil : Si vous gérez vous-même un site WordPress, vous pouvez vous créer un utilisateur suppléant ayant le rôle d’un éditeur. De cette façon, vous pouvez séparer vos tâches d’administration et de publication. Votre compte administrateur est à l’abri des pirates, même si votre compte éditeur est compromis.

Auteur

Le tableau de bord du rôle d' « auteur » dans WordPress
Le tableau de bord du rôle d’ « auteur » dans WordPress

Comme son nom l’indique, tout utilisateur ayant un rôle d’auteur peut créer, modifier et publier des publications. Ils peuvent également téléverser des fichiers multimédia et supprimer leurs propres publications, mais ils ne peuvent pas créer de pages ni modifier les publications de quelqu’un d’autre.

Les auteurs peuvent ajouter des étiquettes à leurs publications et assigner leures publications à des catégories existantes, mais ils ne peuvent pas créer de nouvelles catégories. Comme pour les éditeurs, ils n’ont pas accès aux tâches administratives telles que les réglages, les extensions et les thèmes.

Note : Un auteur peut supprimer ses publications même après leur publication. Si vous attribuez à quelqu’un le rôle d’auteur, assurez-vous que vous êtes d’accord pour qu’il ait le contrôle total de ses publications, y compris leur suppression.

Contributeur

Le tableau de bord du rôle de « contributeur » dans WordPress
Le tableau de bord du rôle de « contributeur » dans WordPress

Le rôle de contributeur est une version allégée du rôle d’auteur. Un utilisateur ayant un rôle de contributeur peut créer ses propres publications, supprimer les brouillons de ses publications, mais il ne peut pas les publier.

Ils peuvent sauvegarder les brouillons de leurs publmications ou les envoyer à un rédacteur ou à un administrateur pour révision et publication. Et une fois qu’il a publié sa publication, un contributeur ne peut pas la supprimer. En revanche, les auteurs peuvent supprimer les publications qu’ils ont publiés.

Le rôle de contributeur est idéal pour les nouveaux auteurs et les contributeurs invités.

Abonné

Le tableau de bord du rôle d’ « abonné » dans WordPress
Le tableau de bord du rôle d’ « abonné » dans WordPress

Le rôle d’abonné se situe au dernier échelon du classement des permissions. Un utilisateur ayant un rôle d’abonné peut gérer son profil et a accès à toutes les publications du site. C’est à peu près tout !

Vous pouvez limiter le contenu aux seuls utilisateurs connectés, y compris les abonnés
Vous pouvez limiter le contenu aux seuls utilisateurs connectés, y compris les abonnés

En général, tout le monde a accès au contenu lu sur un site WordPress. Toutefois, sur les sites d’abonnement ou d’adhésion, seuls les utilisateurs connectés peuvent consulter le contenu. Un utilisateur ayant un rôle d’abonné peut lire les publications dans ces cas.

Super Admin

Le tableau de bord du rôle de « super admin » dans un réseau WordPress multisite
Le tableau de bord du rôle de « super admin » dans un réseau WordPress multisite

Le rôle de Super Admin n’est disponible que dans les installations WordPress multisite. Ce rôle remplace les administrateurs de site unique au sein du réseau multisite et donne accès à toutes les fonctionnalités d’administration de haut niveau.

Les super-administrateurs disposent de certaines permissions de multisites uniquement :

  • Créer, gérer et supprimer les sites du réseau
  • Gérer les utilisateurs du réseau, les extensions, les thèmes et les options
  • Mettre à jour tous les sites du réseau Multisite
  • Mettre en place un réseau multisite
  • Affecter les administrateurs aux différents sites du réseau
Le panneau « Sites » dans un réseau WordPress multisite
Le panneau « Sites » dans un réseau WordPress multisite
Le panneau « Thèmes » du tableau de bord du super admin
Le panneau « Thèmes » du tableau de bord du super admin

Dans un réseau multisite, seul le super admin peut installer des thèmes et les activer sur le réseau. Les administrateurs des différents sites du réseau ne peuvent que visualiser et activer les thèmes qui sont déjà installés par le super admin.

Par exemple, j’ai installé le thème gratuit Astra sur mon réseau, mais je ne l’ai pas activé pour le réseau. Ainsi, les administrateurs des différents sous-sites d’un réseau ne peuvent pas le voir figurer dans leur panneau de thèmes.

Les administrateurs des sous-sites du réseau ne peuvent pas installer de nouveaux thèmes
Les administrateurs des sous-sites du réseau ne peuvent pas installer de nouveaux thèmes

Dans la capture d’écran ci-dessus, vous pouvez également remarquer que le menu Extensions n’est pas accessible par les administrateurs du site dans un réseau. Contrairement aux thèmes, un super admin peut modifier les réglages du réseau pour permettre aux administrateurs d’installer et d’activer des extensions sur leurs sites.

Le super admin peut donner aux administrateurs la possibilité de gérer les extensions
Le super admin peut donner aux administrateurs la possibilité de gérer les extensions
Le super admin peut également « Activer les extensions sur le réseau »
Le super admin peut également « Activer les extensions sur le réseau »

Un super admin peut également activer des extension sur le réseau pour s’assurer qu’ils sont forcés sur tous les sites du réseau. Les administrateurs de sites ne peuvent pas désactiver les extensions activées par le réseau. Ce réglage est idéal pour forcer les extensions essentielles à travers le réseau.

L’écran d’administration du réseau

Le tableau de bord de l’administrateur réseau sert de centre de coordination au super admin pour gérer les permissions réseau de WordPress multisite. Il est accessible uniquement aux utilisateurs ayant le rôle de super admin après la création d’un réseau.

Le tableau de bord de l'administrateur du réseau comprend des options uniques pour gérer le réseau
Le tableau de bord de l’administrateur du réseau comprend des options uniques pour gérer le réseau
1. Tableau de bord

Le tableau de bord de l’administration du réseau est le point central pour obtenir des informations détaillées sur les sites de votre réseau. Il vous donne accès à tous les réglages de votre réseau.

2. Sites
Le panneau « Sites » dans un tableau de bord de l'administration du réseau
Le panneau « Sites » dans un tableau de bord de l’administration du réseau

Vous pouvez utiliser le panneau des sites pour gérer les différents sites qui font partie du réseau multisite. Les sites listyés ici seront soit un sous-répertoire, soit un sous-domaine, selon la façon dont vous avez configuré votre réseau WordPress multisite.

À partir de là, vous pouvez soit ajouter de nouveaux sites au réseau, soit retirer du réseau des sites existants.

Vous pouvez également accéder à des informations sur les sites, les utilisateurs, les thèmes et les réglages généraux du réseau à partir d’ici. Le premier site que vous créez est le site principal du réseau. Le réseau hérite de tous les réglages des options du premier site.

Ajouter des nouveaux sites au réseau WordPress multisite
Ajouter des nouveaux sites au réseau WordPress multisite

En cliquant sur le lien ou le bouton « Ajouter un nouveau site », vous accéderez à l’écran ci-dessus où vous pourrez ajouter un nouveau site à votre réseau multisite. Si vous n’avez personne d’autre en tête pour être l’administrateur du nouveau site, vous pouvez également vous désigner comme administrateur.

3. Utilisateurs
Le panneau « Utilisateurs » dans le tableau de bord de l'administration du réseau
Le panneau « Utilisateurs » dans le tableau de bord de l’administration du réseau

L’écran Utilisateurs du tableau de bord de l’administration du réseau vous permet de gérer les utilisateurs et d’ajouter de nouveaux utilisateurs à votre réseau multisite. Seul le super admin peut ajouter des utilisateurs au réseau, mais un super admin peut modifier les réglages du réseau pour permettre aux administrateurs de sites d’ajouter de nouveaux utilisateurs uniquement sur leurs propres sites.

4. Thèmes
Le panneau « Thèmes » du tableau de bord de l'administration du réseau
Le panneau « Thèmes » du tableau de bord de l’administration du réseau

L’écran Thèmes vous permet de gérer les thèmes accessibles par les administrateurs du site. Il ne vous permet pas d’activer ou de désactiver les thèmes qu’un site utilise, mais seulement de définir les thèmes qu’un site peut utiliser.

Si vous désactivez un thème qui est utilisé n’importe où sur le réseau, il restera actif sur ce site même après que vous l’ayez désactivé. Mais si les sites utilisent un autre thème, le thème désactivé n’apparaîtra pas dans le panneau « Thèmes » du site du réseau.

Vous pouvez vous référer à l’article de Kinsta sur WordPress multisite pour apprendre comment travailler avec les thèmes et les extensions sur votre réseau. Vous pouvez également utiliser l’éditeur de thèmes pour modifier les fichiers de vos thèmes dans le tableau de bord lui-même.

5. Extensions
Le panneau « Extensions » dans le tableau de bord de l'administration du réseau
Le panneau « Extensions » dans le tableau de bord de l’administration du réseau

L’écran Extensions permet aux utilisateurs d’ajouter ou de supprimer des extensions dans le réseau. Une fois ajoutées, vous pouvez activer les extensions à partir du tableau de bord d’un site. Vous pouvez également activer les extensions sur le réseau à partir de cet écran pour forcer l’utilisation de l’extension sur tous les sites du réseau.

Par défaut, un administrateur de site ne peut pas accéder au menu des extensions de son tableau de bord. Un super admin peut l’activer pour lui en modifiant les réglages du réseau.

Activation de l'administration des extensions pour tous les administrateurs de sous-site
Activation de l’administration des extensions pour tous les administrateurs de sous-site

Note : Toutes les extensions WordPress ne prennent pas en charge les réseaux multisites. Vous devez lire la documentation de l’extension pour confirmer qu’il fonctionne dans les configurations multisites.

6. Réglages
Le panneau « Réglages du réseau » dans le tableau de bord de l'administrateur réseau
Le panneau « Réglages du réseau » dans le tableau de bord de l’administrateur réseau

Vous pouvez définir et modifier les réglages pour l’ensemble du réseau dans l’écran des réglages du réseau. Les réglages par défaut du réseau sont basés sur le premier site que vous avez créé lors de la mise en place du réseau. Voici quelques réglages du réseau que vous pouvez modifier :

  • Réglages opérationnels
  • Réglages d’inscription
  • Réglages de nouveau site
  • Réglages de téléversement
  • Réglages de langue
  • Réglages de menu

Ici, vous pouvez également accéder aux informations sur la configuration du réseau que vous avez utilisées lors de sa création. Vous pouvez vous référer à l’écran des réglages de l’administrateur réseau dans le Codex WordPress pour obtenir un aperçu détaillé de toutes les options de réglage disponibles.

7. Mises à jour
Le panneau « Mises à jour » dans le tableau de bord de l'administration du réseau
Le panneau « Mises à jour » dans le tableau de bord de l’administration du réseau

Vous pouvez contrôler le processus de mise à jour pour le réseau et les sites individuels à partir de l’écran des mises à jour. L’écran Mises à jour vous indiquera toutes les mises à jour disponibles pour le noyau, les thèmes et les extensions de WordPress. Une fois que vous avez installé la dernière version de WordPress, vous pouvez l’appliquer à tous les sites du réseau via l’écran Mise à jour du réseau.

Le panneau « Mise à jour du réseau » dans le tableau de bord de l'administration du réseau
Le panneau « Mise à jour du réseau » dans le tableau de bord de l’administration du réseau

Note : Dans une installation WordPress à site unique, l’administrateur est essentiellement un super admin car il a accès à toutes les fonctionnalités d’administration.

Vous pouvez personnaliser les rôles des utilisateurs et également créer vos propres rôles personnalisés en utilisant les permissions prédéfinies de WordPress.

Avantages des rôles et des permissions des utilisateurs

Le système de rôles et de permissions est l’épine dorsale de la gestion des utilisateurs WordPress. Voici quelques-uns de ses nombreux avantages :

  • Les rôles des utilisateurs vous aident à gérer plus efficacement tous les utilisateurs de votre site. Même si vous avez des dizaines d’utilisateurs sur votre site qui travaillent dans différentes parties du monde, vous pouvez les superviser facilement en attribuant les bons rôles à chacun d’entre eux.
  • En limitant les utilisateurs à des permissions spécifiques, cela vous aide à garder votre site plus sûr. Par exemple, les auteurs ne peuvent pas supprimer les publications des autres, les éditeurs ne peuvent pas changer de thème ni installer d’extensions, et les abonnés ne peuvent accéder qu’à leur propre profil.
  • Les extensions WordPress peuvent vérifier si un utilisateur possède certaines permissions et, sur cette base, effectuer une certaine action. La fonction WordPress current_user_can() permet d’effectuer cette vérification. Par exemple, une extension de sécurité peut afficher son panneau d’options uniquement à l’administrateur, tout en affichant des avertissements de sécurité à tous les utilisateurs.
  • Vous pouvez modifier les rôles des utilisateurs pour déléguer certaines de vos responsabilités à d’autres utilisateurs afin de libérer votre temps. Disons que votre site attire beaucoup de commentaires. Dans ce cas, vous pouvez autoriser un auteur de confiance à prendre en charge la modération des commentaires. Vous conserverez le pouvoir ultime en tant qu’administrateur, mais vous pourrez partager certaines de vos responsabilités en fonction des besoins.
  • Vous pouvez utiliser les contrôles de permission pour afficher des publications et des pages privées que seuls certains rôles d’utilisateur peuvent voir. Cela constitue la base des sites d’adhésion.
  • Vous pouvez afficher ou masquer des éléments sur l’interface publique sur votre site (par exemple, des éléments de menu, des widgets) selon le rôle de l’utilisateur.
  • Vous pouvez créer des types de publication personnalisés avec des permissions personnalisées et accorder ou refuser ces permissions pour chaque rôle d’utilisateur. De même, vous pouvez également définir des permissions personnalisées pour permettre uniquement à certains rôles d’avoir accès à vos réglages d’extension ou de thème.

Comment gérer efficacement les rôles des utilisateurs de WordPress

Il est essentiel de connaître tous les rôles et permissions des utilisateurs, mais vous devez également comprendre comment les gérer efficacement sur vos sites. Bien qu’il n’y ait pas deux sites WordPress exactement identiques, il existe quelques règles de base que vous pouvez suivre pour utiliser au mieux les rôles et les permissions des utilisateurs de WordPress.

Donner un accès minimal à chaque utilisateur

N’attribuez à chaque utilisateur de votre site que le niveau d’accès dont il a besoin. Il est toujours préférable de donner moins de permissions que trop. Il est essentiel de sécuriser les rôles des utilisateurs de WordPress pour assurer la sécurité de votre site et de son contenu.

Attribuer soigneusement les rôles à chaque utilisateur
Attribuer soigneusement les rôles à chaque utilisateur

Limiter le nombre d’administrateurs et d’éditeurs

En règle générale, chaque site ne devrait avoir qu’un seul administrateur et celui-ci ne devrait apporter que les modifications essentielles au site. WordPress vous recommande d’adhérer au « principe des moindres privilèges », qui suggère que vous ne devriez donner à un utilisateur que les privilèges essentiels pour effectuer le travail souhaité.

Par exemple, il est préférable d’utiliser un utilisateur de niveau éditeur pour gérer le contenu du site, plutôt que d’utiliser un administrateur. Si vous avez plus d’un éditeur sur votre site, assurez-vous que vous pouvez leur faire confiance pour leurs permissions étendues.

Attribuez le rôle d’auteur à des créateurs de contenu auxquels vous pouvez faire confiance, car ils peuvent publier et supprimer leurs propres publications. Le rôle de contributeur convient mieux aux nouveaux créateurs de contenu et aux publications des invités.

Personnaliser les rôles des utilisateurs en fonction des besoins

Les rôles d’utilisateur par défaut de WordPress sont utiles, mais ils peuvent ne pas convenir à tous les cas d’utilisation. Par exemple, donner à vos auteurs la possibilité de modérer les commentaires.

Heureusement, WordPress nous donne la possibilité de personnaliser les rôles des utilisateurs ou de créer de nouveaux rôles en fonction de nos besoins spécifiques. Vous pouvez le faire manuellement par le biais de code ou à l’aide d’extensions de rôle d’utilisateur WordPress. Nous couvrirons les deux méthodes dans cet article.

Gestion des utilisateurs sur un réseau WordPress multisite

WordPress multisite comprend des réglages uniques pour la gestion des utilisateurs. Certains d’entre eux sont simples à comprendre, d’autres non.

Examinons-les tous en profondeur.

Réglages d’inscription du réseau multisite

Seul un super admin peut créer de nouveaux utilisateurs et sites sur le réseau. Toutefois, il peut permettre aux utilisateurs d’enregistrer des comptes sur le réseau en tant qu’abonnés aux sous-sites.

Pour l’activer, allez dans Administration du réseau > Réglages du réseau > Réglages d’inscription > Autoriser les nouvelles inscriptions, et activez l’option « Les comptes d’utilisateur peuvent s’inscrire ».

Autoriser les utilisateurs à s’inscrire sur votre réseau
Autoriser les utilisateurs à s’inscrire sur votre réseau

Ici, vous pouvez également permettre aux utilisateurs connectés de créer de nouveaux sites sur votre réseau. Vous pouvez cocher cette option si vous souhaitez limiter la possibilité de créer des sites uniquement pour les utilisateurs que vous avez créés.

La dernière option permet aux utilisateurs d’enregistrer un compte ainsi que de créer un site sur votre réseau. Les utilisateurs qui créent un site sur votre réseau se voient attribuer le rôle d’administrateur de leur sous-site.

Un seul compte utilisateur pour accéder à l’ensemble du réseau

Lorsque vous créez un compte d’utilisateur sur votre réseau, ou lorsqu’un utilisateur enregistre un compte sur l’un des sites de votre réseau, il peut naviguer vers n’importe quel site du réseau après s’être connecté. Imaginez un réseau social comme Facebook ou Reddit où vous pouvez créer un compte et accéder à tous les groupes ou sous-groupes avec le même profil d’utilisateur.

C’est l’un des principaux avantages de l’utilisation de WordPress multisite. Il permet à vos utilisateurs d’accéder à tous vos sites en n’inscrivant qu’un seul compte.

Accorder des privilèges supplémentaires aux administrateurs du site

Vous pouvez permettre aux administrateurs de sites d’ajouter des utilisateurs à leurs propres sites en cochant l’option Ajouter de nouveaux utilisateurs.

Autoriser les administrateurs de site d'ajouter de nouveaux utilisateurs à leur sous-site
Autoriser les administrateurs de site d’ajouter de nouveaux utilisateurs à leur sous-site

Comme mentionné précédemment, vous pouvez accorder aux administrateurs de sites l’accès à la gestion des extensions sur leurs sous-sites en allant dans Réglages réseau > Réglages de menu et en cochant l’option Activer les menus d’administration > Extensions.

Inscription des utilisateurs au niveau du sous-site

Les installations WordPress multisite ne permettent par défaut que l’inscription des utilisateurs pour l’ensemble du réseau. Il n’y a pas d’option permettant l’inscription des utilisateurs pour un seul sous-site. Vous pouvez changer ce comportement en utilisant l’extension Network Subsite User Registration.

Lextension « Network Subsite User Registration »
Lextension « Network Subsite User Registration »

Cette extension permet aux administrateurs de sites d’activer l’inscription des utilisateurs locaux avec un accès limité uniquement à leur site. Les nouveaux utilisateurs auront le rôle d’abonné par défaut, mais vous pouvez le changer en modifiant les réglages de l’extension.

Permettre à quiconque d'enregistrer un compte uniquement sur vos sous-sites
Permettre à quiconque d’enregistrer un compte uniquement sur vos sous-sites

Assigner un même utilisateur à plusieurs sous-sites

Vous pouvez affecter le même utilisateur à plusieurs sites de votre réseau avec des rôles uniques. Lorsque l’utilisateur se connecte au tableau de bord de ses sites, il peut accéder au tableau de bord de tous ses sites via l’écran Mes sites.

Vous pouvez assigner un utilisateur à plusieurs sites dans un réseau WordPress multisite
Vous pouvez assigner un utilisateur à plusieurs sites dans un réseau WordPress multisite

Accorder à d’autres utilisateurs des privilèges de super admin

Un super admin peut également partager ses privilèges avec d’autres utilisateurs. Vous devez activer cette option avec prudence et ne l’attribuer qu’à des utilisateurs en qui vous pouvez avoir confiance.

Accorder à d’autres utilisateurs les privilèges de super admin pour le réseau
Accorder à d’autres utilisateurs les privilèges de super admin pour le réseau

Comprendre tous les réglages de gestion des utilisateurs dans un WordPress multisite vous aidera à mieux gérer votre réseau. Pour trouver d’autres extensions utiles pour WordPress multisite, vous pouvez les explorer dans le répertoire WordPress ou dans l’article de Kinsta recommandé sur les extensions WordPress multisite.

Comment personnaliser les rôles des utilisateurs existants de WordPress

Vous pouvez ajouter des capacités à vos rôles utilisateur existants pour augmenter leur niveau d’accès. Par exemple, vous pouvez donner aux éditeurs le pouvoir de gérer les extensions. Ou peut-être souhaitez-vous que les contributeurs puissent modérer les commentaires sur leures propres publications. Voyons comment faire.

Note : si vous n’êtes pas doué pour le code, vous pouvez ignorer la méthode manuelle et passer directement à la section des extensions sur les rôles et les permissions des utilisateurs ci-dessous. Ou simplement engager un développeur WordPress.

Comment ajouter des permissions à un rôle utilisateur

Vous pouvez ajouter une permission à un rôle utilisateur ou à tout utilisateur spécifique en utilisant la fonction WordPress add_cap(). Je vais utiliser une extension personnalisée appelé Customize User Role pour montrer comment utiliser cette fonction afin de donner au rôle d’éditeur le pouvoir de gérer les extensions.

<?php

/*
Plugin Name:  Customize User Role
Version:  1.0
Description:  Demonstrating how to customize WordPress User Roles.
Author:  Salman Ravoof
Author URI:  https://www.salmanravoof.com/
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  customize-user-role
*/

WordPress recommande d’exécuter cette fonction lors de l’activation de l’extension ou du thème car les réglages qu’il ajoute sont stockés dans la base de données dans la table wp_options sous le champ wp_user_roles. Il est inefficace d’exécuter cette fonction à chaque fois que vous chargez une page car les tables de la base de données seront écrasées à chaque chargement de page.

Puisque j’utilise une extension, je vais utiliser la fonction register_activation_hook() pour me connecter à l’action qui est exécutée lorsque vous activez une extension. Il y a plusieurs façons de faire cela, mais j’utilise une implémentation robuste basée sur la classe pour m’assurer qu’il n’y a pas de conflits.

// this code runs only during plugin activation and never again
function sal_customize_user_role() {
    require_once plugin_dir_path( __FILE__ ).'includes/class-sal-customize-user-role.php';   
    Sal_Customize_User_Role::activate();
}
register_activation_hook( __FILE__, 'sal_customize_user_role' );

Le code ci-dessus ne s’exécute qu’une seule fois lors de l’activation de l’extension. La fonction hookée sal_customize_user_role fait référence à une classe personnalisée appelée Sal_Customize_User_Role.

J’ai défini cette classe dans un fichier séparé nommé class-sale-customize-user-role.php et je l’ai placée dans le dossier racine de mon extension à l’intérieur d’un sous-répertoire nommé includes, mais vous pouvez le nommer comme vous voulez.

<?php

class Sal_Customize_User_Role {
    public static function activate() {
        // get the Editor role's object from WP_Role class
        $editor = get_role( 'editor' );

        // a list of plugin-related capabilities to add to the Editor role
        $caps = array(
                  'install_plugins',
                  'activate_plugins',
                  'edit_plugins',
                  'delete_plugins' 
        ); 

        // add all the capabilities by looping through them
        foreach ( $caps as $cap ) {
            $editor->add_cap( $cap );
        }
    }
}

Voici une explication détaillée du code ci-dessus :

  • Commencez par définir la classe et sa fonction que vous avez référencée dans le fichier principal de l’extension.
  • La fonction get_role( ‘editor’ ) récupère l’objet Editor role de la classe WP_Role et l’assigne à la variable $editor.
  • La gestion des extensions nécessite quatre permissions : install_plugins, activate_plugins, edit_plugins et delete_plugins. Mais la fonction add_cap() n’accepte qu’un seul paramètre. Nous devons donc inclure toutes les permissions à l’intérieur d’un tableau. Définissez le tableau $caps pour contenir toutes ces permissions. Si vous n’ajoutez qu’une seule permissions, alors il n’est pas nécessaire de définir un tableau.
  • La fonction add_cap( $cap ) ajoute toutes les permissions définies dans le tableau $caps en les parcourant toutes à l’aide de la fonction PHP foreach ().

Enregistrez tous les fichiers de votre extension et activez-la depuis votre tableau de bord. Connectez-vous maintenant au tableau de bord de l’éditeur pour voir les changements.

Les éditeurs peuvent désormais gérer les extensions depuis leur tableau de bord
Les éditeurs peuvent désormais gérer les extensions depuis leur tableau de bord

Après avoir ajouté les permissions liées aux extensions à leur rôle d’utilisateur, les éditeurs peuvent voir le menu des extensions listé dans leur menu d’administration.

L'écran « Ajouter des extensions » dans le tableau de bord de l'éditeur
L’écran « Ajouter des extensions » dans le tableau de bord de l’éditeur

Vous pouvez vérifier les permissions attribuées à chaque rôle utilisateur en consultant la valeur de la clé wp_user_roles stockée dans la table wp_options de la base de données de votre site WordPress.

Voici les permissions que j’ai trouvées attribuées au rôle d’éditeur :

'editor' => 
  array (
    'name' => 'Editor',
    'capabilities' => 
    array (
      'moderate_comments' => true,
      'manage_categories' => true,
      // [...lines cut off for brevity...]
      'install_plugins' => true,
      'activate_plugins' => true,
      'edit_plugins' => true,
    ),
  ),

Remarquez les trois dernières lignes qui donnent aux éditeurs la possibilité de gérer les extensions.

Si vous souhaitez supprimer ces permissions, vous pouvez vous connecter à la fonction register_deactivation_hook() et utiliser la fonction remove_cap() pour supprimer les permissions lors de la désactivation de l’extension, tout comme nous avons ajouté ces permissions lors de l’activation de l’extension.

Maintenant que vous avez appris à ajouter des permissions à un rôle utilisateur, il est temps d’apprendre à retirer des permissions à un rôle utilisateur.

Remarque : vous pouvez également vous connecter à l’action after_switch_theme pour lancer ce code pendant l’activation du thème (et/ou du thème enfant). Ici, vous devez inclure le code dans le fichier functions.php de votre thème ou thème enfant (recommandé).

Comment retirer des permissions à un rôle utilisateur

Parfois, vous pouvez vouloir retirer une permission à un rôle utilisateur. Vous pouvez exécuter la fonction remove_cap() pour supprimer une permission à un rôle ou un utilisateur spécifique. Par exemple, c’est une excellente idée de supprimer la permission delete_published_posts au rôle utilisateur auteur.

Faisons le nécessaire !

Pour commencer, je vais créer une nouvelle extension personnalisée appelée Customize Author Role. Comme précédemment, je ne lancerai ce code qu’une seule fois en me connectant à la fonction register_activation_hook().

<?php

/*
Plugin Name:  Customize Author Role
Version:  1.0
Description:  Demonstrating how to customize WordPress Author Role.
Author:  Salman Ravoof
Author URI:  https://www.salmanravoof.com/
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  customize-author-role
*/

// this code runs only during plugin activation and never again
function sal_customize_author_role() {
    require_once plugin_dir_path( __FILE__ ).'includes/class-sal-customize-author-role.php';
    Sal_Customize_Author_Role::activate();
}
register_activation_hook( __FILE__, 'sal_customize_author_role' );

Ensuite, je vais définir la classe Sal_Customize_Author_Role dans le fichier class-sal-customize-author-role.php. J’ai référencé ces deux ressources dans le fichier principal de l’extension ci-dessus.

<?php
class Sal_Customize_Author_Role { 
    public static function activate() {
        // get the Editor role's object from WP_Role class
        $author = get_role( 'author' );
 
        // remove the capability to delete published posts from an Author role
        $author->remove_cap( 'delete_published_posts' );
    }
}

La fonction remove_cap( 'delete_published_posts' ) supprimera la permission de supprimer les publications publiées du rôle d’auteur.

Les auteurs sont autorisés par défaut à supprimer leurs publications publiées
Les auteurs sont autorisés par défaut à supprimer leurs publications publiées

Il est temps d’enregistrer tous les fichiers de l’extension et de l’activer. Maintenant, connectez-vous au tableau de bord de l’auteur et voyez les changements.

Les auteurs ne peuvent plus supprimer leurs publications publiées
Les auteurs ne peuvent plus supprimer leurs publications publiées

L’option Corbeille n’est plus disponible pour les publications publiées par les auteurs. Cependant, ils peuvent toujours supprimer les publications non publiées ayant l’état Brouillon ou En attente.

Les auteurs peuvent toujours supprimer leurs publications non publiées
Les auteurs peuvent toujours supprimer leurs publications non publiées

Si vous souhaitez désactiver cette permission, vous devez également supprimer la permission delete_posts du rôle auteur.

Ajouter ou supprimer des permissions pour des utilisateurs spécifiques

Si vous souhaitez ajouter des permissions à un utilisateur spécifique, par opposition à un rôle utilisateur tout entier, vous pouvez utiliser la fonction de classe WP_User::add_cap() pour ajouter la permission.

// get the user object by their ID
$user = new WP_User( $user_id ); 

// add the capability to the specific user
$user->add_cap( $cap );

Vous pouvez utiliser la fonction get_user_by() pour récupérer l’ID de n’importe quel utilisateur en utilisant son e-mail, son identifiant de connexion ou son slug.

De même, vous pouvez retirer des permissions à un utilisateur spécifique en utilisant la fonction de classe WP_User::remove_cap().

// get the user object by their ID
$user = new WP_User( $user_id );

// add the capability to the specific user
$user->add_cap( $cap );

Comme auparavant, n’exécutez ces fonctions que sur l’activation d’une extension ou d’un thème pour garder votre code optimisé.

Note : add_cap() et remove_cap() sont toutes deux des méthodes objet de la classe WP_Role. Vous ne pouvez pas les appeler directement dans votre code. Vous devez y accéder en utilisant soit la fonction get_role(), soit la variable globale $wp_roles.

Dupliquer un rôle utilisateur

Vous pouvez créer un nouveau rôle utilisateur en clonant toutes les permissions d’un rôle utilisateur existant. Voici comment vous pouvez le faire :

add_role( 'clone', 'Clone', get_role( 'administrator' )->capabilities );

Dans l’exemple ci-dessus, je crée un nouveau rôle appelé Clone avec les mêmes permissions qu’un administrateur. L’exécution de ce code sur un thème ou l’activation d’une extension garantira que le rôle cloné ne sera ajouté qu’une seule fois.

Comment créer des rôles utilisateurs personnalisés dans WordPress

La modification des permissions des rôles utilisateurs par défaut est un moyen rapide de les personnaliser. Mais si vous souhaitez modifier de nombreuses permission,s d’un rôle, il est judicieux de créer un nouveau rôle utilisateur personnalisé. De cette façon, vous pouvez définir les permissions exactes que vous souhaitez pour chaque rôle sur votre site.

Pour créer un rôle utilisateur personnalisé, vous devez utiliser la fonction add_role(). Elle accepte trois paramètres.

add_role(  $role, $display_name, $capabilities );

Les deux premiers paramètres doivent être des chaînes de caractères (et être nécessaires) pour que la fonction puisse fonctionner. Ils définissent respectivement le nom du nouveau rôle personnalisé et le nom d’affichage. Le dernier paramètre est facultatif et doit être un tableau. Vous pouvez l’utiliser pour attribuer toutes les permissions du nouveau rôle.

Créons un rôle d’utilisateur personnalisé appelé gestionnaire de communauté qui peut modérer les commentaires et modifier les publications sur le site. Voici comment vous pouvez le faire :

<?php

/*
Plugin Name:  Add Community Manager Role
Version:  1.0
Description:  Add a Custom User Role called 'Community Manager'
Author:  Salman Ravoof
Author URI:  https://www.salmanravoof.com/
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  add-community-manager-role
*/

// this code will run only once on plugin activation and never again
function add_community_manager_role() {
    add_role(
         'community_manager',
         __('Community Manager', 'add-community-manager-role'), 
         array( 
              'read' => true,
              'moderate_comments' => true,
              'edit_posts' => true,
              'edit_other_posts' => true,
              'edit_published_posts' => true
         )
    );
}
register_activation_hook( __FILE__, 'add_community_manager_role' );

Comme auparavant, la fonction add_role() ne s’exécute qu’une seule fois à l’activation de l’extension et plus jamais ensuite. Enregistrez le fichier et activez l’extension dans votre tableau de bord. Vous devriez maintenant être en mesure d’attribuer le rôle de gestionnaire de communauté aux nouveaux utilisateurs et aux utilisateurs existants.

Assigner le rôle utilisateur personnalisé aux nouveaux utilisateurs
Assigner le rôle utilisateur personnalisé aux nouveaux utilisateurs
Assigner le rôle utilisateur personnalisé aux utilisateurs existants
Assigner le rôle utilisateur personnalisé aux utilisateurs existants

Vous pouvez également vérifier les permissions attribuées à ce nouveau rôle en vérifiant la valeur du champ wp_user_roles sous la table wp_options à l’intérieur de votre base de données. Voici ce que j’ai trouvé dans la base de données de mon site :

array (
  'administrator' => 
    // [...]
  'editor' => 
    // [...]
  'author' => 
    // [...]
  'contributor' => 
    // [...]
  'subscriber' => 
    // [...]
  'community_manager' => 
  array (
    'name' => 'Community Manager',
    'capabilities' => 
    array (
      'read' => true,
      'moderate_comments' => true,
      'edit_posts' => true,
      'edit_other_posts' => true,
      'edit_published_posts' => true,
    ),
  ),
)  

Le nouveau rôle que nous venons d’ajouter, avec toutes ses permissions, figure à la toute fin. Vous pouvez modifier ce rôle en ajoutant ou en supprimant des permissions.

Tester un nouveau rôle utilisateur

Avant d’assigner le nouveau rôle utilisateur à un utilisateur réel, il est essentiel de tester si celui-ci fonctionne comme prévu. Voici une liste de contrôle que vous pouvez suivre pour le tester :

  1. Créez un compte d’utilisateur test et attribuez-lui le nouveau rôle utilisateur.
  2. Connectez-vous avec l’utilisateur de test et assurez-vous que toutes ses permissions fonctionnent comme prévu. Par exemple, si vous lui avez accordé la possibilité de modifier les publications publiées, alors allez sur n’importe quelle publication et vérifiez si vous pouvez la modifier. Plus vous avez attribué de permissions au rôle, plus vous passerez de temps à les tester toutes.
  3. Ensuite, essayez de visiter n’importe quel lien d’administrateur de niveau supérieur directement dans votre navigateur. J’ai testé cela en visitant l’écran des réglages de WordPress, et comme prévu, WordPress ne m’a pas laissé entrer.
    Le message « accès refusé » a été affiché par WordPress
  4. Supprimez l’utilisateur test après l’avoir testé.

C’est à peu près tout ! Vous pouvez maintenant attribuer ce nouveau rôle aux utilisateurs de votre site.

Vous pouvez utiliser les extensions User Switching ou View Admin As pour passer d’un compte utilisateur à l’autre sur votre site en un seul clic. Elles sont très pratiques pour tester les permissions de plusieurs utilisateurs. Je les ai présentées en détail plus loin dans cet article.

Créer des rôles d’utilisateur personnalisés dans WordPress multisite

WordPress multisite gère les rôles des utilisateurs un peu différemment des installations WordPress à site unique. Bien que vous puissiez utiliser la fonction add_role() pour créer un rôle utilisateur personnalisé comme nous l’avons fait auparavant, le nouveau rôle ne fonctionnera que sur le site principal du réseau (le premier site que vous avez créé). Il ne se propagera pas à tous les sous-sites du réseau.

Pour garantir que le code de votre fonction de rappel fonctionne sur chaque site de votre réseau, vous devez forcer son exécution en passant sur tous les sites de votre réseau, un par un. Pour cet exemple, je vais créer un nouveau rôle utilisateur appelé Gestionnaire d’extension qui aura toutes les permissions pour gérer les extensions.

<?php

/*
Plugin Name:  Add Plugin Manager Role
Version:  1.0
Description:  Add a custom user role named Plugin Manager in a WordPress Multisite Installation
Author:  Salman Ravoof
Author URI:  https://www.salmanravoof.com/
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  add-plugin-manager-role
*/

/* 
make the code run on every site in the network
when the plugin is Network Activated
*/
function add_plugin_manager_role( $network_wide ) {
 
     if ( is_multisite() && $network_wide ) { 
         // run the code for all sites in a Multisite network
         foreach ( get_sites(['fields'=>'ids']) as $blog_id ) {
             switch_to_blog( $blog_id );
                 add_role(
                      'plugin_manager',
                      __('Plugin Manager', 'add-plugin-manager-role'),
                      array( 
                           'install_plugins' => true,
                           'activate_plugins' => true,
                           'edit_plugins' => true,
                           'delete_plugins' => true
                      )
                 );
             }
             restore_current_blog();
     }
     else {
         add_role(
              'plugin_manager',
              __('Plugin Manager', 'add-plugin-manager-role'),
              array( 
                   'install_plugins' => true,
                   'activate_plugins' => true,
                   'edit_plugins' => true,
                   'delete_plugins' => true
              )
         );
     }
}
register_activation_hook( __FILE__, 'add_plugin_manager_role' );

Voyons en détail le code ci-dessus :

  • Tout d’abord, vous vous connecter à l’action d’activation de l’extension avec la fonction register_activation_hook() et passer votre fonction de rappel. Ici, la fonction de rappel est add_plugin_manager_role().
  • Ensuite, vous définissez votre fonction de rappel et vous lui passez un seul argument appelé $network_wide.
  • Le paramètre $network_wide est un bool qui renvoie true si vous avez activé l’extension pour l’ensemble du réseau. Il renvoie false si vous l’avez activé uniquement pour le site actuel. De plus, il n’est applicable que pour les installations multisite et sa valeur par défaut est false.
  • L’instruction conditionnelle is_multisite() && $network_wide vérifie si l’extension est « Activée sur le réseau » dans une installation multisite. Si c’est le cas, elle exécute le code inclus dans l’instruction If. Si elle est false, le code dans l’instruction else est exécuté.
  • La fonction get_sites(['fields'=>'ids']) renvoie une liste de tous les ID de sites du réseau. En utilisant la fonction PHP foreach(), elle les passe tous en boucle pour exécuter le code sur chaque site du réseau individuellement.
  • La fonction switch_to_blog( $blog_id ) dirige les quelques lignes de code suivantes à exécuter pour le sous-site avec l’ID $blog_id. Comme WordPress a commencé principalement comme une plateforme de blogs, vous pouvez remplacer le mot « blog » par « site » pour mieux comprendre son utilisation ici.
  • Ensuite, vous utilisez la fonction add_role() pour créer le rôle utilisateur personnalisé avec ses permissions. Ceci suit les mêmes conventions de code que celles expliquées plus haut dans cet article.
  • Avant de terminer la boucle, définissez la fonction restore_current_blog() pour vous assurer que vous restaurez l’état du site commuté à son état initial.
  • Le code figurant dans la déclaration else est une solution de repli pour assurer la compatibilité avec les installations à site unique.

Enregistrez le fichier de l’extension et allez sur l’écran Administration du réseau > Extensions pour « Activer sur le réseau » votre extension personnalisée. Ensuite, allez à l’onglet Utilisateurs sous l’un des écrans de Modification du site de votre site pour vérifier si le nouveau rôle de gestionnaire d’extension est disponible.

Changement du rôle des utilisateurs actuels du site en faveur du nouveau rôle utilisateur
Changement du rôle des utilisateurs actuels du site en faveur du nouveau rôle utilisateur
Assigner le rôle utilisateur personnalisé à de nouveaux utilisateurs pour un sous-site
Assigner le rôle utilisateur personnalisé à de nouveaux utilisateurs pour un sous-site

J’ai également confirmé que ce nouveau rôle utilisateur est disponible sur d’autres sites du réseau. Cela fonctionne parfaitement.

Assigner le nouveau rôle utilisateur aux utilisateurs existants sur les sous-sites
Assigner le nouveau rôle utilisateur aux utilisateurs existants sur les sous-sites

Vous pouvez également vérifier le nouveau rôle personnalisé et ses permissions en jetant un coup d’œil dans la base de données de votre site. Toutefois, contrairement aux installations à site unique, WordPress multisite crée une table wp_options distincte pour chaque sous-site.

Où sont stockés les rôles des utilisateurs dans une base de données WordPress Multisite
Où sont stockés les rôles des utilisateurs dans une base de données WordPress Multisite

Vous pouvez trouver les tables spécifiques aux sous-sites listées en wp_2_options, wp_3_options et wp_4_options. De même, les rôles et les permissions sont stockés dans leurs champs respectifs nommés wp_2_user_roles, wp_3_user_roles et wp_4_user_roles.

Vous avez défini comment créer un rôle utilisateur personnalisé sur tous les sites de votre réseau, mais qu’en est-il des sites qui seront créés à l’avenir ? Pour vous assurer que vous ajoutez ce rôle utilisateur personnalisé à chaque nouveau site créé dans le réseau, vous pouvez ajouter le code suivant à votre extension :

// run the code once again when a new site is created
function add_custom_user_role_new_site( $blog_id ) { 
    // check whether the plugin is active for the network
    if ( is_plugin_active_for_network( 'add-custom-user-role/add-custom-user-role.php' ) ) {
        switch_to_blog( $blog_id );
        add_role(
             'plugin_manager',
             __('Plugin Manager', 'add-plugin-manager-role'),
             array( 
                  'install_plugins' => true,
                  'activate_plugins' => true,
                  'edit_plugins' => true,
                  'delete_plugins' => true
             )
        );
        restore_current_blog();
    }
}
add_action( 'wpmu_new_blog', 'add_custom_user_role_new_site' );
  • L’action wpmu_new_blog se déclenche chaque fois qu’une personne crée un nouveau site dans un réseau multisite. Vous pouvez vous connecter à cette action avec votre fonction de rappel pour ajouter le rôle utilisateur personnalisé.
  • La fonction is_plugin_active_for_network() vérifie si l’extension est active pour l’ensemble du réseau et renvoie une valeur bool. Elle accepte le chemin du fichier due l’extension comme argument.
  • Le reste du code suit la même logique qu’auparavant. Vous passez au nouveau site en utilisant son paramètre $blog_id, vous créez votre rôle personnalisé en utilisant la fonction add_role(), puis vous revenez au site actuel en utilisant la fonction restore_current_blog().

Comment supprimer des rôles utilisateur de WordPress

Vous pouvez supprimer n’importe quel rôle utilisateur de WordPress en utilisant la fonction remove_role( ). Elle n’accepte qu’un seul argument, qui est le nom du rôle. Par exemple, vous pouvez supprimer le rôle de contributeur en exécutant le code suivant n’importe où dans votre site :

remove_role( 'contributor' );

Contrairement à la fonction add_role() qui continuera à mettre à jour la base de données si elle n’est pas exécutée lors de l’activation de l’extension ou du thème, la fonction remove_role() ne s’exécute que si le rôle existe. Comme tout rôle passé en argument est supprimé la première fois qu’il est exécuté, vous n’avez pas à vous soucier de l’endroit où vous exécutez cette fonction.

Toutefois, pour éviter de futurs conflits, il faut retirer le code après que le rôle a été retiré de la base de données.

Créer des permissions personnalisées dans WordPress

La modification des rôles utilisateurs existants et la création de nouveaux rôles personnalisés à l’aide des permissions intégrées de WordPress suffisent pour la plupart des cas d’utilisation, mais vous pouvez souhaiter définir de nouvelles permissions pour les fonctionnalités introduites par votre code personnalisé (à l’aide d’une extension ou d’un thème).

Vous pouvez ensuite utiliser ces permissions personnalisées pour définir de nouveaux rôles ou les ajouter à ceux qui existent déjà.

Par exemple, WooCommerce ajoute des permissions et des rôles supplémentaires en plus de ses nombreuses fonctionnalités de commerce électronique. Voici quelques-unes des permissions ajoutées :

  • Autoriser la gestion des réglages de WooCommerce
  • Créer et modifier des produits
  • Voir les rapports de WooCommerce

Grâce à ces permissions, il ajoute deux nouveaux rôles utilisateur : Client et Responsable de lboutique.

WooCommerce ajoute ses propres rôles utilisateur
WooCommerce ajoute ses propres rôles utilisateur

Le rôle de client est presque similaire à celui d’abonné, sauf que les utilisateurs ayant le rôle de client peuvent modifier les informations de leur compte et consulter les commandes en cours ou passées. Le rôle de responsable de boutique comprend toutes les capacités d’un éditeur, et il est également doté de toutes les permissions de WooCommerce.

D’autres extensions qui introduisent des permissions et/ou des rôles personnalisés comprennent le Events Calendar, Visual Portfolio, WPML, et WP ERP.

Si vous plongez dans la documentation de toutes ces extensions, vous constaterez qu’elles associent presque toutes leurs permissions personnalisées aux types de publication personnalisés qu’elles définissent. Dans le cas de WooCommerce, il s’agit des types de publication personnalisés Produits et Commandes, tandis que dans d’autres, il s’agit respectivement des types Événements, Portfolios, Traductions et Clients.

Apprenons à créer des permissions personnalisées liées à un type de publication personnalisé.

Tout d’abord, installez une extension et enregistrez le type de publication personnalisé que vous souhaitez. Dans mon exemple, j’enregistre un nouveau type de publication, personnalisé appelé Histoires.

<?php

/*
Plugin Name:    Custom Post Type and Capabilities
Version:        1.0
Description:    Register a custom post type and define custom capabilities tied into it.
Author:         Salman Ravoof
Author URI:     https://www.salmanravoof.com/
License:        GPLv2 or later
License URI:    https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:    custom-post-type-capabilities
*/

// register a custom post type, in this case it's called "story" //
function cpt_story_init() {
    $labels = array(
        'name'                  => _x( 'Stories', 'custom-post-type-capabilities' ),
        'singular_name'         => _x( 'Story', 'custom-post-type-capabilities' ),
        'menu_name'             => _x( 'Stories', 'Admin Menu text', 'custom-post-type-capabilities' ),
        'name_admin_bar'        => _x( 'Story', 'Add New on Toolbar', 'custom-post-type-capabilities' ),
        'add_new'               => __( 'Add New', 'custom-post-type-capabilities' ),
        'add_new_item'          => __( 'Add New Story', 'custom-post-type-capabilities' ),
        'new_item'              => __( 'New Story', 'custom-post-type-capabilities' ),
        'edit_item'             => __( 'Edit Story', 'custom-post-type-capabilities' ),
        'view_item'             => __( 'View Story', 'custom-post-type-capabilities' ),
        'all_items'             => __( 'All Stories', 'custom-post-type-capabilities' ),
        'search_items'          => __( 'Search Stories', 'custom-post-type-capabilities' ),
        'parent_item_colon'     => __( 'Parent Stories:', 'custom-post-type-capabilities' ),
        'not_found'             => __( 'No stories found.', 'custom-post-type-capabilities' ),
        'not_found_in_trash'    => __( 'No stories found in Trash.', 'custom-post-type-capabilities' ),
        'featured_image'        => _x( 'Story Cover Image', 'custom-post-type-capabilities' ),
        'set_featured_image'    => _x( 'Set cover image', 'custom-post-type-capabilities' ),
        'remove_featured_image' => _x( 'Remove cover image', 'custom-post-type-capabilities' ),
        'use_featured_image'    => _x( 'Use as cover image', 'custom-post-type-capabilities' ),
        'archives'              => _x( 'Story archives', 'custom-post-type-capabilities' ),
        'insert_into_item'      => _x( 'Insert into story', 'custom-post-type-capabilities' ),
        'uploaded_to_this_item' => _x( 'Uploaded to this story', 'custom-post-type-capabilities' ),
        'filter_items_list'     => _x( 'Filter stories list', 'custom-post-type-capabilities' ),
        'items_list_navigation' => _x( 'Stories list navigation', 'custom-post-type-capabilities' ),
        'items_list'            => _x( 'Stories list', 'custom-post-type-capabilities' ),
    );
 
    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'menu_icon'          => 'dashicons-book',   
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'story' ),
        'capability_type'    => array ( 'story', 'stories' ),
        'map_meta_cap'       => true,
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => 6,
        'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ),
        'show_in_rest'       => true,
    );
 
    register_post_type( 'story', $args );
}
 
add_action( 'init', 'cpt_story_init' );

Voici un aperçu du scénario ci-dessus :

  • Utilisez la fonction register_post_type() pour enregistrer votre type de publication personnalisé. Vous pouvez vous connecter à l’action init pour exécuter cette fonction.
  • La fonction register_post_type() accepte deux arguments. Le premier est le nom du type de publication personnalisé et le second est un tableau contenant tous les arguments pour enregistrer le type de publication.
  • La variable $args contient tous les arguments que vous passerez à la fonction register_post_type(). L’un de ses arguments (« labels ») est lui-même un tableau défini séparément comme la variable $label.
  • Notez l’argument ‘capability_type’ => ‘post’. C’est le type de permission par défaut utilisée par WordPress pour construire les permissions de lecture, de modification et de suppression pour le type de publication personnalisé.
  • Pour créer vos permissions personnalisées, vous devez remplacer la valeur de l’argument capability_type par votre nom préféré de permissions personnalisées. Il accepte soit une chaîne de caractères, soit un tableau comme argument. Le tableau est utile si le pluriel de votre permission personnalisée ne suit pas la syntaxe standard du suffixe s (par exemple, livre/livres par rapport à histoire/récits).
  • Vous pouvez également utiliser l’argument des capacités pour nommer les nouvelles capacités différemment de ce que WordPress fait automatiquement.
  • Vous devez faire correspondre vos permissions personnalisées aux permlissions primitives de WordPress. Mettez l’argument map_meta_cap sur true pour que WordPress sache qu’il doit relier les permissions personnalisées comme suggéré.

Ensuite, vous devez ajouter les permissions personnalisées aux rôles que auxquels vous voulez donner accès au type de publication personnalisé Histoires. Pour cet exemple, j’accorde la permission aux rôles d’administrateur et d’éditeur.

// add the custom capabilities to the desired user roles 
$roles = array( 'editor','administrator' );

foreach( $roles as $the_role ) {      
    
    $role = get_role($the_role);
            
            $role->add_cap( 'read' );
            $role->add_cap( 'read_story');
            $role->add_cap( 'read_private_stories' );
            $role->add_cap( 'edit_story' );
            $role->add_cap( 'edit_stories' );
            $role->add_cap( 'edit_others_stories' );
            $role->add_cap( 'edit_published_stories' );
            $role->add_cap( 'publish_stories' );
            $role->add_cap( 'delete_others_stories' );
            $role->add_cap( 'delete_private_stories' );
            $role->add_cap( 'delete_published_stories' );
}

Enregistrez le fichier et activez l’extension. Vous devriez maintenant voir le lien et le panneau Histoires dans votre tableau de bord d’administrateur ou d’éditeur.

Le panneau des types de publication personnalisés « Histoires »
Le panneau des types de publication personnalisés « Histoires »

Si vous vérifiez les permissions disponibles sur votre site, vous verrez également toutes les permissions liées aux histoires que nous avons ajoutées. Ici, j’utilise l’extension View Admin As pour vérifier les permissions.

Permissions personnalisées liées au type de publication personnalisé « Histoires »
Permissions personnalisées liées au type de publication personnalisé « Histoires »

Vous pouvez télécharger une version étendue de cette extension via ce Gist. Elle enregistre un type de publication personnalisé appelé Projects avec un ensemble de permissions personnalisées. Elle les attribue ensuite à deux rôles personnalisés appelés Students et Teachers pour vous aider à construire un site web éducatif.

Il existe un moyen de définir des permissions personnalisées qui permettent aux utilisateurs d’accéder aux réglages de votre extension en fonction de leur rôle. Discuter de la manière de faire cela dépasse le cadre de cet article, mais vous pouvez vous référer à ce fil d’information sur StackExchange pour plus d’informations.

Les meilleures extensions de rôles et de permissions pour les utilisateurs de WordPress

Savoir modifier les rôles et les permissions des utilisateurs à l’aide d’un code, c’est bien, mais ce n’est pas pour tout le monde. Il y a tellement de choses qui peuvent mal tourner si vous n’êtes pas sûr de ce que vous faites. Cependant, savoir comment les rôles et les permissions fonctionnent dans WordPress aide énormément, même si vous utilisez une extension.

Examinons quelques-unes des extensions WordPress les plus populaires pour personnaliser facilement les rôles et les permissions des utilisateurs de WordPress. Je vais également énumérer quelques extensions utiles pour tester rapidement les fonctionnalités des rôles et des permissions.

User Role Editor (par Vladimir Garagulia)

L’extension WordPress « User Role Editor »
L’extension WordPress « User Role Editor »

User Role Editor est l’extension de gestion des rôles et des permissions la plus populaire sur le dépôt WordPress. Elle est fournie avec une interface simple qui permet à chacun de modifier les rôles et les permissions des utilisateurs en un seul clic.

Après avoir installé et activé l’extensions, vous pouvez aller sur Utilisateurs > User Role Editor dans votre tableau de bord pour accéder à son interface principale.

Le tableau de bord de User Role Editor
Le tableau de bord de User Role Editor

Voici un aperçu détaillé des sections du tableau de bord indiquées ci-dessus :

  1. Sélectionnez le rôle que vous souhaitez personnaliser dans le menu déroulant. Vous obtiendrez la liste non seulement des rôles par défaut, mais aussi de tous les rôles présents dans votre base de données. Vous pouvez également choisir d’afficher les permissions sous une forme lisible par l’homme plutôt que leurs constantes. Une autre option vous permet de voir les permissions obsolètes qui ne sont plus prises en charge dans la dernière version de WordPress.
  2. User Role Editpor regroupe toutes les permissions dans des catégories distinctes sur la gauche. La catégorie Core comprend toutes les permissions intégrées. Depuis que j’ai installé WooCommerce sur ce site, vous pouvez également trouver des permissions pour ses types de publication personnalisés. Même l’extension User Role Editor ajoute son propre ensemble de permissions personnalisées.
  3. Sur la droite, vous trouverez toutes les permissions listées. Comme j’ai sélectionné le groupe Tous, je peux voir toutes les permissions. Cependant, vous pouvez filtrer en cliquant sur un groupe à gauche. Vous pouvez également cocher l’option « Autorisé uniquement » en haut pour masquer toutes les permissions qui ne sont pas utilisées par un rôle utilisateur.
  4. Vous pouvez également ajouter un rôle, renommer un rôle, ajouter une permission et supprimer un rôle à partir d’ici. Tout en bas, vous trouverez une option supplémentaire permettant de masquer la barre d’administration pour le rôle utilisateur.
Afficher les permissions sous une forme lisible par l'homme
Afficher les permissions sous une forme lisible par l’homme

Pour personnaliser un rôle utilisateur, il suffit de cocher ou de décocher les permissions que vous souhaitez et de cliquer sur le bouton Mettre à jour pour enregistrer vos modifications. C’est aussi simple que cela.

Ajout d'un nouveau rôle dans l'éditeur de rôle utilisateur
Ajout d’un nouveau rôle dans l’éditeur de rôle utilisateur

Cliquez sur le bouton Ajouter un rôle pour créer un nouveau rôle. Vous pouvez créer un rôle à partir de zéro ou dupliquer un rôle existant en utilisant l’option Faire une copie du menu déroulant.

Renommer facilement le « nom"d’affichage du rôle »
Renommer facilement le « nom »d’affichage du rôle »

Vous pouvez également renommer le nom d’affichage du rôle en cliquant sur le bouton Renommer le rôle. Cependant, vous ne pouvez pas modifier son ID de Rôle (Nom du rôle). Une solution consiste à dupliquer le rôle dont vous souhaitez modifier l’ID, puis à supprimer le rôle d’origine.

Ajout d'une nouvelle permission dans User Role Editor
Ajout d’une nouvelle permission dans User Role Editor

Vous pouvez ajouter de nouvelles permissions en cliquant sur le bouton Ajouter une permission.

Supprimez facilement les rôles utilisateur non attribués
Supprimez facilement les rôles utilisateur non attribués

En cliquant sur le bouton Supprimer les rôles, vous pouvez supprimer les rôles personnalisés que vous n’avez pas attribués à un utilisateur.

Note : User Role Editor ne vous permet pas de supprimer les rôles ou les permissions intégrées de WordPress. Il ne vous permet pas non plus de supprimer un rôle personnalisé s’il est attribué à un utilisateur, ou une permission personnalisée si elle est attribuée à un rôle non administrateur.

Le bouton « Supprimer la permission » dans User Role Editor
Le bouton « Supprimer la permission » dans User Role Editor

Vous devez noter que le bouton Supprimer la permission n’apparaît que si une permission n’est pas assignée aux non-administrateurs. Sinon, elle est masquée.

Vous pouvez également assigner plusieurs rôles à un même utilisateur ou ne lui donner aucun rôle.

Ne donner aucun rôle à un utilisateur
Ne donner aucun rôle à un utilisateur

Pour attribuer plusieurs rôles à un utilisateur, vous devez vous rendre dans le panneau Utilisateurs de votre tableau de bord, puis cliquer sur le lien Permissions que vous verrez ci-dessous après avoir survolé l’identifiant.

Assigner plusieurs rôles au même utilisateur
Assigner plusieurs rôles au même utilisateur

Si vous allez sur Réglages > User Role Editor dans votre tableau de bord, vous trouverez également des options supplémentaires pour l’extension User Role Editor.

L'onglet « Général » des options de User Role Editor
L’onglet « Général » des options de User Role Editor

Ici, vous pouvez modifier les réglages par défaut de l’extension, installer des modules supplémentaires, modifier le rôle par défaut attribué aux nouveaux utilisateurs, et même réinitialiser les rôles et les permissions des utilisateurs à leur état par défaut.

Des modules supplémentaires vous aident à étendre les fonctionnalités de User Role Editor
Des modules supplémentaires vous aident à étendre les fonctionnalités de User Role Editor
Définir le rôle par défaut pour les nouveaux utilisateurs
Définir le rôle par défaut pour les nouveaux utilisateurs
Rétablir tous les rôles et permissions des utilisateurs à leur état par défaut
Rétablir tous les rôles et permissions des utilisateurs à leur état par défaut

Si la version gratuite de User Role Editor est plus que suffisante pour la plupart des cas d’utilisation, sa version premium comprend encore plus de fonctionnalités, notamment la prise en charge de la gestion des rôles et des permissions dans les configurations WordPress multisite.

Members par MemberPress

L’extension WordPress « Members » par MemberPress
L’extension WordPress « Members » par MemberPress

Members est un extension pour WordPress, axée sur les rôles et les permissions des utilisateurs d’un site d’adhésion. Lancée à l’origine comme une simple extension de gestion des rôles et des permissions de l’utilisateur, elle a depuis pivotée vers les fonctionnalités d’adhésion.

Le tableau « Rôles » dans Members
Le tableau « Rôles » dans Members

Après avoir installé et activé l’extension, vous pouvez consulter tous les rôles disponibles sur votre site en allant sur Membres > Rôles dans votre tableau de bord.

Members vous permet de supprimer tous les rôles, y compris les rôles WordPress intégrés, à l’exception du rôle d’administrateur et du rôle par défaut. Vous pouvez également modifier et cloner les rôles, ainsi que dresser la liste de tous les utilisateurs affectés à un rôle spécifique.

Le panneau « Modifier le rôle » dans les Members
Le panneau « Modifier le rôle » dans les Members

Dans le panneau Modifier le rôle, vous pouvez accorder ou refuser explicitement des permissions à un rôle particulier en cochant ou décochant les cases correspondantes. Vous pouvez également ajouter une permission personnalisée au rôle à partir d’ici.

Le panneau « Ajouter un nouveau rôle » dans Members
Le panneau « Ajouter un nouveau rôle » dans Members

En cliquant sur le lien Ajouter un nouveau rôle, vous accéderez à un écran similaire où vous pourrez créer un nouveau rôle en lui donnant un nom d’affichage, un id et son ensemble de permissions.

Le panneau « Réglages généraux » dans Members
Le panneau « Réglages généraux » dans Members

Tout comme avec User Role Editor, vous pouvez utiliser Members pour assigner aux utilisateurs plusieurs rôles. Vous pouvez également définir des autorisations de contenu pour restreindre le contenu aux utilisateurs n’ayant qu’un certain rôle.

Vous pouvez également activer le mode « Site privé » dans Members
Vous pouvez également activer le mode « Site privé » dans Members

Vous pouvez faire en sorte que votre site et son flux soient privés. De plus, vous pouvez restreindre l’accès à l’API REST de WordPress aux personnes extérieures en imposant une authentification.

Diverses extensions pour Members
Diverses extensions pour Members

Members se distingue des autres extensions de rôles et de permissions grâce à ses modules étonnants. Ils vous aident à ajouter des tonnes de fonctionnalités supplémentaires à votre site, telles que la gestion de la confidentialité des utilisateurs et des données personnelles (RGPD), à ajouter des permissions liées aux étiquettes et aux catégories, à établir une hiérarchie des rôles, et bien plus encore.

Members s'intègrent aux extensions WordPress
Members s’intègrent aux extensions WordPress

Vous pouvez intégrer de façon transparente Members avec de nombreuses extensions WordPress populaires. Par exemple, vous pouvez l’utiliser pour créer et gérer des permissions personnalisées pour l’extension ACF (Advanced Custom Fields). Parmi les autres extensions avec lesquelles elle s’intègre, on peut citer Easy Digital Downloads, GiveWP, Meta Box et WooCommerce.

Les modules complémentaires de Members (paiements, abonnements, marketing par e-mail et protection avancée du contenu) ne sont disponibles que dans la version Premium.

WPFront User Role Editor

L’extension « WPFront User Role Editor »
L’extension « WPFront User Role Editor »

WPFront User Role Editor vous aide à créer, modifier ou supprimer des rôles d’utilisateur et des permissions dans votre site WordPress. Ses fonctionnalités sont les mêmes que celles des extensions dont il a été question précédemment, mais elle présente deux particularités.

Faire migrer tous les utilisateurs d'un rôle à un autre
Faire migrer tous les utilisateurs d’un rôle à un autre

Après avoir installé et activé WPFront User Role Editor, vous pouvez aller à l’écran Utilisateurs > Assigner / Migrer dans votre tableau de bord et migrer tous les utilisateurs appartenant à un rôle utilisateur particulier vers un autre. Vous pouvez même assigner des rôles secondaires à vos utilisateurs.

Si vous devez faire migrer un grand nombre d’utilisateurs de votre site d’un rôle à un autre, cette fonction vous sera très utile.

L'écran de réglage de « Login Redirect » dans WPFront User Role Editor
L’écran de réglage de « Login Redirect » dans WPFront User Role Editor

Une autre fonction utile de WPFront User Role Editor est la redirection de connexion basée sur les rôles. Par exemple, vous pouvez rediriger les utilisateurs ayant le rôle d’éditeur vers la page des publications après qu’ils se soient connectés. Vous avez également la possibilité de les empêcher d’accéder à la page /wp-admin et de voir la barre d’outils sur l’interface publique.

Advanced Access Manager

L’extension « Advanced Access Manager »
L’extension « Advanced Access Manager »

Advanced Access Manager (AAM) est un puissante extension WordPress qui vous permet de contrôler presque tous les aspects de votre site web. Elle comprend plus de 200 fonctionnalités distinctes et est conçu pour les utilisateurs avancés de WordPress qui savent comment fonctionnent les rôles et les permissions.

Par rapport aux extensions listées ci-dessus, AAM possède beaucoup plus de fonctionnalités. Mais comme il s’agit d’une extension axé sur les développeurs, elle n’est pas aussi facile à utiliser pour les débutants ou les utilisateurs intermédiaires.

Le tableau de bord principal dans Advanced Access Manager
Le tableau de bord principal dans Advanced Access Manager

Vous pouvez diviser le tableau de bord principal d’AAM en quatre régions distinctes. Je les ai numérotées dans l’image ci-dessus avec une vue d’ensemble ci-dessous.

  1. La zone la plus haute mentionne le « sujet » actuel à l’étude. Ici, il s’agit de Rôle : Administrateur, mais il peut s’agir d’un utilisateur spécifique, d’un visiteur anonyme ou d’un réglage par défaut pour tout le monde.
  2. La zone située sous le sujet est le panneau principal où vous avez tous les r églages pour gérer l’accès à diverses choses sur votre site pour le sujet.
  3. La troisième zone est celle des utilisateurs/gestionnaires de rôles. À l’aide de ses onglets, vous pouvez sélectionner ce que vous voulez gérer. S’agit-il d’un rôle d’utilisateur, d’un utilisateur spécifique, d’un visiteur anonyme ou d’un comportement d’accès par défaut pour tout le monde ?
  4. La quatrième zone vous permet de gérer les réglages d’AAM, d’installer ses modules complémentaires premium et de contacter le support.
Le panneau « Réglages » dans Advanced Access Manager
Le panneau « Réglages » dans Advanced Access Manager

AAM organise ses réglages en 5 groupes en fonction de leur comportement et de leur utilisation.

  • Les réglages des services listent tous les modules d’AAM que vous pouvez activer ou désactiver. En chargeant les modules de manière sélective, vous pouvez garder votre site optimisé.
  • La zone des Réglages du noyau vous permet d’activer ou de désactiver certaines des fonctions de base d’AAM et de WordPress.
  • Les Réglages de contenu concernent le contenu du site (par exemple, les articles, les pages, les types de publication personnalisés).
  • La section Réglages de sécurité comprend les réglages de la fonction de connexion sécurisée de l’AAM. Pour l’instant, seuls deux réglages sont disponibles : Verrouillage de force brute et Une session par utilisateur.
  • ConfigPress est une fonctionnalité intéressante qui permet de modifier la configuration de l’extension AAM avec du code basé sur INI.
Le panneau « Modules » dans Advanced Access Manager
Le panneau « Modules » dans Advanced Access Manager

AAM est une extension orientée développeur qui va au-delà des rôles et des permissions des utilisateurs. Elle vous donne un contrôle granulaire sur ce que chaque rôle peut ou ne peut pas faire sur votre site web.

Installez une « politique d'accès » pour votre site web afin d'en assurer la sécurité
Installez une « politique d’accès » pour votre site web afin d’en assurer la sécurité

Vous pouvez utiliser AAM pour définir une politique d’accès et de sécurité pour votre site web. Elle définit quel rôle, et sous quelles conditions, peut accéder aux différentes ressources de votre site web. Si vous souhaitez commencer immédiatement, vous pouvez installer une politique d’accès prête à l’emploi à partir d’AAM Access Policy Hub.

Widget « AAM Secure Login » pour ajouter un formulaire de connexion
Widget « AAM Secure Login » pour ajouter un formulaire de connexion

AAM vous permet de créer des comptes et des rôles d’utilisateurs temporaires. C’est un moyen sûr de partager un compte avec des ressources externes. Les comptes d’utilisateur temporaires expirent après la date et l’heure que vous avez fixées. Avec les rôles temporaires, l’utilisateur sera dépouillé de ce rôle après la période spécifiée.

Couvrir l’ensemble des caractéristiques d’AAM est hors de portée de cet article. Vous pouvez vous référer à la documentation d’Advanced Access Manager pour en savoir plus sur toutes ses nombreuses fonctionnalités.

Conseil : User Access Manager est une bonne alternative à Advanced Access Manager, bien qu’il comporte moins de fonctionnalités et ne soit pas mis à jour fréquemment.

User Switching

L’extension WordPress « User Switching »
L’extension WordPress « User Switching »

Use Switching vous permet de passer d’un compte utilisateur WordPress à un autre en un seul clic. Si vous testez beaucoup de rôles et de permissions d’utilisateur, l’utilisation de cette extension vous aidera à gagner beaucoup de temps. User Switching utilise le système d’authentification par cookie intégré de WordPress pour se souvenir du ou des comptes que vous avez quitté, afin que vous puissiez y revenir immédiatement.

Après avoir installé et activé l’extension, rendez-vous dans le menu Utilisateurs de votre tableau de bord. Vous y verrez un lien Basculer vers pour chaque utilisateur. En cliquant sur ce lien, vous basculerez vers l’utilisateur que vous souhaitez.

Cliquez sur le lien « Basucler vers » pour passer à l'utilisateur souhaité
Cliquez sur le lien « Basucler vers » pour passer à l’utilisateur souhaité

Vous pouvez revenir à votre compte d’origine en cliquant sur le lien Revenir vers votre compte dans le tableau de bord ou dans l’écran de votre profil d’utilisateur.

Vous pouvez revenir facilement à votre compte d'origine
Vous pouvez revenir facilement à votre compte d’origine

Vous pouvez également désactiver temporairement votre compte administrateur pour voir comment votre interface apparaît aux visiteurs.

Activez et désactivez votre compte en un seul clic
Activez et désactivez votre compte en un seul clic

Par mesure de sécurité, seuls les utilisateurs ayant la possibilité de modifier les utilisateurs peuvent changer de compte. Par défaut, seuls les administrateurs ont cette permission dans une installation WordPress sur un seul site, tandis que sur un réseau multisite, seuls les super-administrateurs ont cette permission.

Pour simplifier davantage le changement d’utilisateur, vous pouvez installer l’extension Admin Bar User Switching pour faire apparaître le lien Basculer vers dans votre barre d’administration.

Ajout du lien « Basculer vers l’utilisateur »
Ajout du lien « Basculer vers l’utilisateur » » dans votre barre d’administration

View Admin As

L’extension WordPress « View Admin As »
L’extension WordPress « View Admin As »

View Admin As est une extension avancée de changement d’utilisateur qui comprend également un gestionnaire de rôles et de permissions. Contrairement à l’extension User Switching, vous n’avez pas besoin d’installer une extension pour ajouter le menu de changement d’utilisateur à votre barre d’administration. View Admin As ajoute par défaut tous les éléments de son menu principal à la barre d’administration.

Le menu « View As » dans la barre d'administration
Le menu « View As » dans la barre d’administration

Vous pouvez passer d’un utilisateur ou d’un rôle existant (en récupérant leurs permissions) à un autre, même si aucun utilisateur n’existe avec ces rôles. En cliquant sur le lien Visiteur du site, vous accéderez à l’interface du site où vous pourrez tester les fonctionnalités du site en tant qu’utilisateur normal sans quitter l’onglet de votre navigateur.

View Admin As vous permet de modifier temporairement vos propres permissions. Comme cela est fait de manière non destructive, vous ne perdez pas l’accès à vos permissions principales.

Personnalisez temporairement les permissions pour votre utilisateur actuel
Personnalisez temporairement les permissions pour votre utilisateur actuel

Après être passé à un compte d’utilisateur, vous pouvez modifier les préférences et les réglages de son écran directement à partir du menu. Vous pouvez également changer de langue sur l’interface publique et l’administration séparément.

Vous n’êtes pas limité à un seul type de vue car vous pouvez combiner les différentes options et les appliquer toutes en même temps.

View Admin As est livré avec deux modules optionnels que vous pouvez activer si nécessaire.

Réglages et modules optionnels de View Admin As
Réglages et modules optionnels de View Admin As

Le premier module ajoute la fonction Rôle par défaut qui permet de définir les réglages d’écran par défaut pour tous les rôles. Vous pouvez appliquer ces réglages par défaut à un rôle, à un utilisateur unique ou à de futurs nouveaux utilisateurs.

Le deuxième module permet la fonctionnalité de gestionnaire de rôle. Toute modification que vous apportez aux rôles et aux permissions avec ce module est permanente. Contrairement aux autres extensions de modification de rôle, ce module vous permet de supprimer le rôle attribué à un utilisateur en le faisant migrer automatiquement vers un autre rôle.

Vous pouvez vous référer à la documentation de View Admin As pour en savoir plus sur ses nombreuses fonctionnalités.

MyKinsta User Roles

La fonction multi-utilisateurs de MyKinsta vous permet de créer et de gérer plusieurs utilisateurs sous le même compte en leur donnant accès à des aspects uniques de votre compte Kinsta ou à des sites web spécifiques hébergés par Kinsta.

Vous pouvez choisir parmi plusieurs rôles pour personnaliser l’accès des utilisateurs en fonction de vos besoins.

L'écran « Gestion des utilisateurs » dans le tableau de bord de MyKinsta
L’écran « Gestion des utilisateurs » dans le tableau de bord de MyKinsta

Le premier utilisateur obtient par défaut le rôle de propriétaire de la société. C’est le rôle le plus puissant et il comprend également toutes les permissions d’un administrateur de société.

Il ne peut y avoir qu’un seul propriétaire de société à la fois, mais vous pouvez transférer le rôle, si nécessaire, à un autre administrateur de société. Ce faisant, vous transférerez également la propriété de votre compte Kinsta au nouveau propriétaire de la société.

Seul le propriétaire de la société peut demander à Kinsta de supprimer le compte.

Vous pouvez diviser les autres rôles d’utilisateur en deux catégories principales :

  • Au niveau de l’entreprise
  • Au niveau du site

Les rôles au niveau de l’entreprise donnent aux utilisateurs l’accès aux détails du compte Kinsta au niveau de l’entreprise, tandis que les rôles au niveau du site donnent aux utilisateurs l’accès uniquement aux sites spécifiques qui leur sont attribués. Lorsque vous invitez un nouvel utilisateur ou modifiez un r utilisateur existant, le premier choix que vous devez faire est de lui donner un accès à l’entreprise ou au site.

Choix du type de rôle lors de l’invitation d’un utilisateur sur MyKinsta
Choix du type de rôle lors de l’invitation d’un utilisateur sur MyKinsta

Rôles au niveau de l’entreprise

Administrateur d’entreprise

Le tableau de bord « Administrateur d’entreprise » dans MyKinsta
Le tableau de bord « Administrateur d’entreprise » dans MyKinsta

Le rôle d’administrateur de l’entreprise permet d’obtenir le plus haut niveau d’accès à MyKinsta. Il donne à l’utilisateur un contrôle total sur le compte Kinsta et tous ses sites. Vous ne devez donner ce rôle qu’aux utilisateurs en qui vous avez confiance.

Développeur d’entreprise

Le tableau de bord « Développeur d’entreprise » dans MyKinsta
Le tableau de bord « Développeur d’entreprise » dans MyKinsta

Le rôle de développeur d’entreprise donne accès à la gestion de tous les sites, y compris leur suppression. Comme les rôles des utilisateurs de MyKinsta sont hiérarchisés, un développeur d’entreprise peut également gérer les utilisateurs au niveau du site. Toutefois, un développeur ne peut pas accéder aux réglages de l’entreprise ni aux détails de facturation.

Facturation d’entreprise

Le tableau de bord « Facturation d’entreprises » dans MyKinsta
Le tableau de bord « Facturation d’entreprises » dans MyKinsta

Le rôle facturation d‘entreprise donne accès uniquement à la visualisation des détails de facturation et des réglages de l’entreprise. Ils n’ont accès à aucun site. Les utilisateurs du rôle de facturation d’entreprise peuvent vérifier les factures, activer l’envoi automatique de factures par e-ùmail et modifier les données de l’entreprise, telles que l’adresse et les coordonnées.

Rôles au niveau du site

Administrateur du site

Le tableau de bord « Administrateur du site » dans MyKinsta
Le tableau de bord « Administrateur du site » dans MyKinsta

Le rôle d’administrateur de site donne un accès complet à un site spécifique, y compris le contrôle de tous les environnements liés à ce site. Toutefois, il ne peut pas supprimer un site du compte de l’entreprise. Vous pouvez affecter le même utilisateur comme administrateur de site pour plusieurs sites.

Développeur du site

Le tableau de bord « Développeur du site » dans MyKinsta
Le tableau de bord « Développeur du site » dans MyKinsta

Le rôle de développeur de site n‘a accès qu’à l’environnement de staging du site qui lui a été attribué. Il peut tout faire dans l’environnement de staging, mais il ne peut pas supprimer l’environnement de staging ou mettre en ligne ses modifications. Comme pour les administrateurs de site, vous pouvez attribuer le même utilisateur qu’un développeur de site pour plusieurs sites.

Les développeurs de sites peuvent accéder à l’environnement de staging pour le site attribué
Les développeurs de sites peuvent accéder à l’environnement de staging pour le site attribué

Vous pouvez également constater que les développeurs du site n’ont pas accès aux fonctions d’analyse, de gestion des utilisateurs et de journal d’activité du tableau de bord MyKinsta.

Les rôles d’utilisateur de MyKinsta par rapport aux rôles d’utilisateur de WordPress

Il n’y a pas de chevauchement entre les rôles d’utilisateur de MyKinsta et de WordPress. Vous pouvez les utiliser tous les deux indépendamment l’un de l’autre.

En tant que propriétaire d’un compte Kinsta, la fonction de rôles multi-utilisateurs de MyKinsta vous aide à gérer facilement une équipe de gestionnaires, de développeurs et de comptables. Elle permet aux agences de développement web de gérer très facilement tous les sites de leurs clients à partir d’un tableau de bord unique et puissant.

Résumé

Les rôles et les permissions de WordPress sont les concepts fondamentaux de la gestion de l’accès des utilisateurs. Ils vous aident à contrôler les actions que tous les utilisateurs de votre site peuvent effectuer. Ils sont également utilisés par de nombreuses extensions et thèmes pour ajouter des fonctionnalités très utiles au cœur de WordPress.

WordPress est livré avec son propre ensemble de rôles et de permissions, mais si vous avez besoin de plus de flexibilité, vous pouvez les personnaliser ou créer vos propres rôles et permissions. Vous pouvez le faire avec votre propre code ou en utilisant une extension tierce.

Comprendre quels sont les rôles et les permissions, et apprendre à les gérer, est une étape cruciale vers la maîtrise de WordPress. Commencez dès aujourd’hui !

Carlo Daniele Kinsta

Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.