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.
Les menus, en liste blanche
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 :
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 |