Le site

Le rôle Client

C'est la moitié de la promesse du thème. Un système de champs restrictif ne sert à rien si le client peut par ailleurs changer de thème, supprimer une page ou casser un permalien.

Deux couches, à ne jamais confondre

Fichier Couche Ce qu'il fait
inc/client/role.php Sécurité Définit le rôle et ses droits
inc/client/restrictions.php Sécurité Fige ce qui ne doit pas changer, côté serveur
inc/client/admin-ui.php Confort Masque menus, boîtes et options d'écran

Ce que le client peut faire

  • Modifier le contenu des pages existantes, y compris celles créées par un autre compte.
  • Téléverser des médias et remplacer des images.
  • Modifier les Réglages du site.
  • Modifier le titre d'une page.

Ce qu'il ne peut pas faire

  • Créer ou supprimer une page.
  • Changer le statut, le permalien, la page parente ou le gabarit.
  • Toucher aux thèmes, extensions, utilisateurs, réglages de WordPress.
  • Voir ou modifier les articles et les commentaires.

Créer un compte client

Comptes → Ajouter, puis choisissez le rôle Client dans la liste. Le rôle est créé automatiquement à l'activation du thème.

Pour vérifier le résultat, connectez-vous avec ce compte dans une fenêtre de navigation privée. Vous devriez voir cinq entrées de menu et rien d'autre : Tableau de bord, Pages, Réglages du site, Médias, et son profil.

Un détail contre-intuitif

Le rôle Client possède le droit de publier des pages. Cela semble contredire tout le reste, mais sans lui WordPress rétrograde une page publiée en « en attente de relecture » à chaque enregistrement du client : son site disparaîtrait au premier changement de texte.

Le droit de créer est retiré autrement. WordPress utilise par défaut la même capacité pour créer et pour modifier une page ; Ironframe bascule la capacité de création vers iron_create_pages, accordée aux administrateurs et aux éditeurs seulement. WordPress masque alors tout seul le bouton Ajouter, l'entrée de menu, et refuse l'accès direct à l'écran de création.

Le client ne voit que les entrées explicitement autorisées. C'est une liste blanche et non une liste noire, parce que votre client installera des extensions que vous ne connaissez pas, et que chacune ajoutera ses propres entrées : une liste noire serait périmée dès la première extension.

Pour ouvrir un accès supplémentaire, par exemple à une extension de formulaires :

votre-projet/functions.php
add_filter('iron_client_allowed_menus', function ($menus) {
    $menus[] = 'wpcf7';
    return $menus;
});

Les autres points d'adaptation

Filtre Ce qu'il permet
iron_client_capabilities Ajuster les droits du rôle, projet par projet
iron_client_allowed_menus Ouvrir des entrées de menu supplémentaires
iron_client_removed_meta_boxes Choisir les boîtes retirées de l'écran d'édition