ACL Joomla! Configuration des ACL en back-end

ACL Joomla! Configuration des ACL en back-end

Ce dernier chapitre est une traduction de l'article Joomla ACL: Configuring back-end ACL écrit par Jen Kramer.

Dans ce chapitre, nous souhaitons donner le droit à un groupe d'utilisateurs, que nous appellerons “client”, d’accéder au backend du site.

Disons que vous souhaitez donner à ce groupe des accès très basiques au backend de Joomla! :

  • Possibilité de créer, éditer, publier/dé-publier les articles d'une ou plusieurs catégories (ou même de toutes).
  • Possibilité de créer, éditer, publier/dé-publier les éléments de menu.
  • Possibilité d'accéder à certains composants basiques comme le composant liens web.

Pour suivre ce tutoriel, je vous conseille d'utiliser 2 navigateurs différents, un avec lequel vous serez connecté en temps que Super Utilisateur, et un autre avec lequel vous serez connecté avec le compte client. En faisant cela, vous n'aurez pas besoin de vous déconnecter/reconnecter à chaque fois.

L'approche générale de configuration sera la suivante :

1. Créer un nouveau groupe d'utilisateurs, lui assigner les autorisations de base, et créer un compte utilisateur pour le client.

2. Assigner le(s) niveau(x) d'accès approprié(s).

3. Assigner les droits pour que le client puisse accéder au gestionnaire d'articles, gestionnaire de menu, et liens web.

Création d'un nouveau groupe d'utilisateurs, attribution des droits de base, création d'un utilisateur

 

Création d'un nouveau groupe d'utilisateurs

Pour créer un groupe d'utilisateurs, rendez-vous dans Utilisateurs > Groupes > Nouveau. Vous pouvez par exemple nommer ce groupe “Groupe d'Utilisateurs Client”. Faites en un parent du groupe Public.

nouveau groupe d'utilisateur 

Attribution des droits de base à un groupe

Pour attribuer des droits à votre nouveau groupe, rendez-vous dans Site > Configuration > Onglet Droits.
Dans l'onglet de votre nouveau groupe, réglez l'accès à l'administration sur “Autorisé”. Laissez les autres paramètres comme cela pour l'instant.

Attribution des droits de base au groupe 

Création d'un nouvel utilisateur

Pour créer un nouvel utilisateur, rendez-vous dans Utilisateurs > Gestion des utilisateurs > Nouveau.
Remplissez tous les champs nécessaires, et attribuez votre nouvel utilisateur au Groupe d'Utilisateurs Client que vous venez de créer.
A ce stade, si vous vous connectez à l'administration de votre site (à l'aide de votre deuxième navigateur) sur le compte que vous venez de créer, vous devriez avoir cet écran :

Ecran actuel

Cela est normal, mais pas très utile. Continuons.

 

Assignation des niveaux d'accès

Pour l'instant, avec votre compte client, vous pouvez vous connecter à l'administration, accéder au frontend du site et vous déconnecter.

Une chose que nous n'avons pas encore configuré, est un niveau d'accès pour le backend du site. Pour rappel, les niveaux d'accès contrôlent qui voit quoi, incluant modules, contenu, et ainsi de suite. Les menus sont des modules, également dans le backend de Joomla!. Ils sont des modules administrateurs, et ces modules administrateurs sont assignés au niveau d'accès Spécial. Votre utilisateur Client aura également besoin d'avoir le niveau d'accès Spécial assigné à son groupe d'utilisateurs, le Groupe d'Utilisateurs Client.

Retournez donc dans votre administration avec le navigateur Super Utilisateur :
Rendez-vous dans Utilisateurs > Niveaux d'accès > Accès Spécial, puis attribuez le Niveau d’accès Spécial au Groupe d'Utilisateurs Client. Ensuite enregistrez. 

Niveaux d'accès > Accès Spécial

 Sur votre navigateur Client, déconnectez-vous, puis reconnectez-vous. (Parce que le niveau d'accès change, vous devez vous déconnecter puis vous reconnecter afin de changer l’interface d'administration).
En temps que client, vous devriez désormais avoir quelque chose ressemblant à cela :

Ecran actuel - 2

 Désormais, avec votre compte client, vous pouvez :

  • Vous connecter à l'administration, accéder au frontend du site et vous déconnecter.
  • Éditer votre propre profil, modifier votre identifiant et votre mot de passe.
  • Voir les liens d'aide, tous ceux qui sont sur les pages accessibles au public.
  • Voir une liste des 5 articles les plus populaires, et les 5 derniers articles ajoutés via le module de droite.

Ce n'est toujours pas très utile, mais au moins, ce n'est plus absolument rien ! Notre prochaine étape est de donner au client la permission de créer, éditer, et changer l'état des articles.

Joomla! 3 Le Livre Pour Tous

joomla 3 le livre pour tous

Écrit pour toutes les personnes qui débutent avec Joomla!, ou qui possèdent déjà quelques connaissances avec les versions précédentes, et qui souhaitent construire et entretenir un site web sans avoir à entrer dans le code.

version numérique

9€

Ajouter au panier

version papier

23€

Ajouter au panier

Assignation des droits : Articles

Le client doit être capable d’accéder au gestionnaire d'articles du backend de Joomla!. La première étape est de donner au client l'accès à ce gestionnaire d'article comme une option dans le menu. Une fois que cette option est visible, nous pouvons alors nous focaliser sur l'assignation de droits plus spécifiques.


Faire apparaître le Gestionnaire d'Articles dans le backend du client

Pour faire apparaître le Gestionnaire d'Articles comme une option dans le menu, rendez-vous dans Contenu > Gestionnaire d'Articles > Paramètres, choisissez l'onglet droits et réglez “Accéder à l'administration” sur Autorisé pour le Groupe d'Utilisateurs Client. Cliquez sur enregistrer.

Faire apparaître le Gestionnaire d'Articles dans le backend du client 

Vous pourriez être curieux à propos de l'option de configurer. C'est la permission qui vous autorise à accéder à la boite de dialogue des paramètres. En général, vous souhaiterez que seul le super utilisateur ait accès à ça.

Maintenant, allez sur le navigateur web du client, rafraichissez votre écran, et vous devriez voir le Gestionnaire d'Articles et le Gestionnaire de Catégories apparaître comme icône dans le panneau d'administration ainsi que comme élément de menu.

Malheureusement, il n'est PAS possible de séparer les permissions pour le Gestionnaire d'Articles et le Gestionnaire de Catégories pour le moment. C'est une faiblesse majeure dans les ACL de Joomla!.

Si vous regardez le Gestionnaire d'Articles en tant que client, vous devriez pouvoir voir la liste complète des articles (si vous avez installé les données d'exemples). Cependant, vous ne pouvez pas les éditer, et vous ne pouvez pas non plus modifier leurs états. Il n'y a pas de bouton pour créer un nouvel article (en haut à droite), il y a seulement l’icône d'aide.

Gestionnaire articles sans droits d'action 

Edition de tous les articles vs édition des catégories d'articles

La prochaine étape est de donner la permission au client d'éditer et de changer l'état des articles. Voulez-vous donner au client la possibilité de modifier tous les articles, ou souhaitez-vous seulement lui donner ce droit seulement pour certaines catégories, ou avez-vous besoin de donner cette permission article par article ?
La réponse est toujours ça dépend ! Quand vous configurez la structure de catégories de votre site, je recommande cela : 

  • Gardez les ACL à l'esprit quand vous paramétrez les catégories de contenu. Si vous devez interdire à votre client l'accès à certaines pages du site, vous devez classer ces pages dans la même catégorie, même si leur contenu est très différent. Cela rendra l'ACL plus simple à configurer.
  • Également, si le client a seulement besoin d'éditer certains articles, cela serait plus logique de les classer dans la même catégorie.
  • Changer les droits dans un système article-par-article devrait être utilisé que pour les cas les plus rares. Il est difficile d'expliquer au client qu'il doit configurer les droits lors de la création de nouveaux articles. Réglez les droits au niveau de la catégorie, et le client n'aura jamais besoin de les toucher lors de la création de nouveaux articles.

Pour chaque scénario, voici comment vous devez procéder :

 

Le client doit éditer tous les articles

Si le client doit éditer tous les articles, configurez les droits comme cela :

  • Dans Contenu > Gestionnaire d'Articles > Paramètres > Droits, pour le Groupe d'Utilisateurs Client, réglez Créer, Modifier, Modifier le Statut, et Modifier ses éléments sur Autorisé. En général, je ne donne pas la permission au client de supprimer le contenu, ce qui lui donnerait la possibilité de vider la corbeille. Il peut dé-publier ou mettre à la corbeille avec la permission Modifier le Statut.

Le client doit éditer tous les articles

 

Le client peut éditer les articles d'une ou plusieurs catégories

Si le client doit seulement éditer les articles d'une ou d'un petit nombre de catégories, configurez chaque catégorie comme cela :

  • Vous devez autoriser l'Accès à l'Interface d'Administration dans Contenu > Gestionnaire d'Articles > Paramètres > Permissions.
  • Dans Contenu > Gestionnaire de Catégories, cliquez sur le nom de la catégorie d'articles que le client doit pouvoir éditer. En bas du panneau de configuration, pour chaque catégorie, vous retrouvez les droits. Réglez ces droits pour autoriser Créer, Modifier et Modifier ses éléments.
  • Répétez ce procédé pour chaque catégorie d'articles dans laquelle le client doit avoir accès.

Le client peut éditer les articles d'une ou plusieurs catégories

 

Le client doit avoir accès à une base article-par-article

Vous pouvez également éditer les articles individuellement en tant que super utilisateur, scroller vers le bas de l'écran et régler les droits client ici. Cela doit être utilisé seulement dans de rares circonstances . Configurer les permissions au niveau des catégories est une meilleure approche en perspective de la maintenance.

J'ai autorisé mon client à créer, modifier, et modifier le statut de tous les articles du site. Le panneau de contrôle, pour le compte client, ressemble à cela :

panneau de contrôle  

Assistance Joomla!

Icone assistance

Vous créez ou générez un site web et vous avec besoin de conseils ou d'une intervention afin de mener à bien votre projet. Contactez nous, nous pourrons rapidement vous assister par mail ou par téléphone.

Assigner les droits : Gestionnaire de médias

En tant que client, si vous éditez un article, une des taches que vous aurez certainement besoin d’accomplir, est la possibilité d'ajouter une image à l'article.

Les droits sont actuellement affectés comme cela : le client peut voir les articles, les éditer en cliquant sur le titre, obtenir le formulaire d'édition de l'article, puis cliquer sur le bouton Image situé sous la fenêtre de texte de l'article. La fenêtre du Gestionnaire de Média : 

Gestionnaire de médias

 

Notez que le client peut naviguer et sélectionner n'importe quelle image déjà présente dans le Gestionnaire de Médias, mais il n'a pas l'interface permettant de charger une nouvelle image sur le site. Cela vient du fait que le Gestionnaire de Médias est un composant séparé du Gestionnaire d'Articles, et qu'il possède donc son propre réglage de droits. Le Gestionnaire de Médias n'apparait pas dans la structure du menu backend de Joomla! lorsque vous êtes connecté avec le compte client.

Pour changer cela, retournez sur votre navigateur super utilisateur, rendez-vous dans Contenu > Gestionnaire de Médias > Paramètres > Droits, réglez Accès à l'administration et Créer sur Autoriser.

 

Assigner les Droits : Menu

A partir de maintenant, vous devez avoir une idée de ce qui va suivre. Si le client a besoin de lier un article à un menu, il a besoin d'accéder au Gestionnaire de Menu dans le backend de Joomla!.

En tant que super utilisateur, allez dans Menus > Gestionnaire de Menu > Paramètres > Droits, et pour le Groupe d'Utilisateurs Client, réglez Accès à l'administration, Créer, Modifier et Modifier l'état sur Autorisé.

Malheureusement, vous n'êtes pas en mesure d'autoriser le client à ajouter des éléments de menu enfants à un certain menu parent, ou de l'autoriser à ne créer que certains types d'éléments de menu. Ce serait une bonne addition aux ACL de Joomla!.

 

Assigner les droits : Composant Liens Web

Voici à quoi ressemble le backend de mon client désormais :

Panneau de contôle

Désormais, je veux donner au client l'accès aux Liens Web mais pas aux autres composants de Joomla!. Heureusement, cela est facile à faire, et vous avez certainement compris comment faire.

En tant que super utilisateur, allez dans Composant > Liens Web > Paramètres > Droits, et pour le groupe d'Utilisateurs Client, réglez Accès à l'administration, Créer, Modifier, Modifier le Statut sur Autorisé.

Vous pouvez répéter ce procédé pour tous les composants Joomla! auxquels le client doit avoir accès.

Notes : certaines extensions tierces n'ont pas entièrement intégré le système ACL de Joomla!.
Si le système ACL est important pour votre site, assurez-vous de choisir des composants qui ont parfaitement intégré ce système.

Testez la nouvelle version avec Joomla! 4 Le livre

Joomla! 4 Le livre

Écrit pour toutes les personnes qui débutent avec Joomla!, ou qui possèdent déjà quelques connaissances avec les versions précédentes, et qui souhaitent construire et entretenir un site web sans avoir à entrer dans le code.