J3.x

Didacticiel : Liste de Contrôle d'Accès (ACL)

From Joomla! Documentation

This page is a translated version of the page J3.x:Access Control List Tutorial and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎eesti • ‎français • ‎Bahasa Indonesia • ‎italiano • ‎Nederlands • ‎Türkçe
Joomla! 
3.x
série

J3.x:Access Control List/fr

Des ACL séparées pour Voir et pour Faire

Le système ACL de Joomla! peut être appréhendé comme étant divisé en deux systèmes distincts. Un système de contrôle de ce que les utilisateurs peuvent "voir". Un autre système permettant le contrôle de ce que les utilisateurs peuvent "faire" (les actions qu'un utilisateur peut entreprendre). Les ACL pour chacun des systèmes sont configurées différemment.

Contrôler ce que les utilisateurs peuvent voir

Les réglages permettant de contrôler ce que les utilisateurs peuvent voir se font de la manière suivante :

  • Créer un ensemble de Niveaux d'accès selon les Catégories et/ou la combinaison de catégories que vous souhaitez rendre visibles aux utilisateurs connectés. Note : à ce stade, n'assignez aucun groupe d'utilisateurs à ces nouveaux Niveaux d'accès.
  • Créer un Groupe d'utilisateurs avec la qualité de 'Registered' en tant que parent, pour chaque Niveau d'accès. Utiliser les mêmes noms pour les Groupes d'utilisateurs et les Niveaux d'accès permettra d'éviter plus tard toute confusion.
  • Editer vos nouveaux niveaux d'accès et assigner le bon (nouveau) groupe d'utilisateur à chacun. Vous pouvez également souhaiter assigner le Groupe de Super User (et/ou d'autres groupes d'utilisateurs par défaut mais pas le groupe d'utilisateur 'Guest') à tous vos nouveaux niveaux d'accès.
  • Attribuer à chaque élément un niveau d'Accès. Les éléments comprennent les éléments de contenu (articles, contacts et ainsi de suite), les éléments de menu et les modules.

Chaque fois qu'un utilisateur est sur le point de voir un élément sur une page Joomla, le programme vérifie si l'utilisateur a accès à cet élément, comme suit:

  1. Il crée une liste de tous les niveaux d'accès auxquels l'utilisateur a accès, basé sur tous les groupes auxquels appartient l'utilisateur. De plus, si un groupe possède un groupe parent, les niveaux d'accès du groupe parent sont également inclus à la liste.
  2. Il vérifie si le niveau d'accès à l'élément (article, module, élément de menu et ainsi de suite) est sur cette liste. Si oui, l'élément est affiché à l'utilisateur. Si non, l'élément n'est pas affiché.

Notez que les niveaux d'accès sont définis séparément pour chaque groupe et ne sont pas hérités d'un groupe parent du groupe.

Contrôler ce que les utilisateurs peuvent faire

Le système pour déterminer ce que les utilisateurs d'un groupe d'utilisateurs peuvent faire - les actions qu'ils peuvent faire sur un élément donné -- se paramètre dans l'onglet des droits de l'écran de configuration et dans l'onglet des droits dans chaque composant. Des droits peuvent également être paramétré au niveau de la catégorie pour les composants natifs et au niveau article pour les articles.

  • Si vous souhaitez pour des catégories spécifiques que les utilisateurs se connectent pour créer, supprimer, modifier un statut ou modifier le leur, alors :
    • Créez un groupe d'utilisateurs avec comme parent un de vos groupes d'utilisateurs disposant d'un accès à la catégorie (ou aux catégories) à laquelle vous souhaitez que ce nouveau groupe d'utilisateurs puisse apporter des modifications.
    • Affectez à votre nouveau groupe d'utilisateurs le(s) niveau(x) d'accès approprié(s). Puis modifiez les autorisations requises pour votre nouveau groupe d'utilisateurs soit globalement, soit par catégorie/article.
      • Lors de la création d'un groupe d'utilisateurs, il est conseillé de sélectionner un groupe parent ayant moins de droits que ceux nécessaires au nouveau groupe. Il est en effet plus facile d'augmenter les droits par composant/catégorie/article plutôt que d'avoir plus de droits que nécessaire et de devoir supprimer des droits dans les autres composants/catégories/articles.
        • (exemple: vous avez 10 catégories, mais vous voulez créer des droits pour une seule. Si vous définissez les droits globaux sur 'Créer - Autoriser' pour ce groupe vous devrez alors retirer le droit Créer pour toutes ces catégories. Et vous devrez supprimer le droit Créer pour ce groupe pour toute nouvelle catégorie que vous ajouterez ultérieurement.)
    • Créer un groupe d'utilisateurs avec un des groupes d'utilisateurs par défaut en tant que parent uniquement si aucun d'eux n'a exactement les droits dont vous avez besoin ou que vous souhaitez pour toutes les catégories.

Notez que cette configuration est indépendante de la configuration pour l'affichage et un groupe d'utilisateurs doit être assigné à des niveaux d'accès appropriés pour que les utilisateurs de ce groupe puissent utiliser ces autorisations.

Lorsqu'un utilisateur veut lancer une action spécifique pour l'élément d'un composant (par exemple, éditer un article), le système (après avoir vérifié que l'utilisateur appartient à un groupe y ayant accès) vérifie l'autorisation pour cette combinaison d'utilisateur, d'objet et d'action. Si elle est autorisée, l'utilisateur peut agir. Sinon, l'action n'est pas autorisée.

La suite de ce didacticiel explique comment il est possible de contrôler ce que les utilisateurs peuvent faire -- de quelles autorisations ils disposent.

Actions, groupes et héritage

Un autre intérêt des ACL est l'octroi, aux utilisateurs, des autorisations d'effectuer des actions sur les objets.

Séries 3.x
Groupes et actions Les actions autorisées pour chaque groupe sont définies par l'administrateur du site.
Portée des droits Les droits peuvent être définis à plusieurs niveaux de la hiérarchie : site, composent, catégorie, objet.
Héritage des droits Les autorisations peuvent être héritées de groupes parents et de catégories mères.

Comment fonctionnent les droits

Il existe quatre droits possibles pour les actions, comme indiqué ci-dessous :

  • Non défini : "refuser" par défaut, mais à la différence de la permission "Refuser", cette autorisation peut être substituée dans la hiérarchie des autorisations par les paramètres "Autoriser" des groupes enfants ou d'un niveaux inférieurs. Cette autorisation s'applique uniquement à la configuration globale des autorisations.
  • Hériter : hérite de la valeur d'un groupe parent ou d'un niveau supérieur dans la hiérarchie des autorisations. Cette autorisation s'applique à tous les niveaux à l'exception de la configuration globale.
  • Refuser : refuse cette action pour ce niveau de groupe. IMPORTANT : cela refuse également cette action pour tous les groupes enfants et tous les niveaux inférieurs dans la hiérarchie des autorisations. Paramétrer un groupe enfant ou un niveau inférieur sur Autoriser n'aura aucun effet. L'action sera toujours refusée pour tous les membres du groupe enfant ou d'un niveau inférieur dans la hiérarchie des autorisations.
  • Autoriser : permet cette action pour ce niveau et ce groupe et pour les niveaux inférieurs et les groupes enfants. Cela n'a aucun effet si un groupe ou niveau supérieur est paramétré sur 'Refuser' ou 'Autoriser'. Si un groupe ou niveau supérieur est paramétré sur 'Refuser', alors cette permission sera toujours refusée. Si un groupe ou niveau supérieur est défini sur 'Autoriser', alors cette permission est déjà autorisée.

Niveaux hiérarchiques des permissions

Les permissions d'action dans la version 2.5 et supérieure, peuvent être définies jusqu'à quatre niveaux et comme suit :

  1. Configuration globale : détermine les autorisations par défaut pour chaque action et chaque groupe.
  2. Options de composants    Droits : vous permet de remplacer les autorisations par défaut pour ce composant (par exemple pour les articles, menus, utilisateurs, bannières, et ainsi de suite).
  3. Catégorie : permet de se substituer aux permissions par défaut pour des éléments d'une ou plusieurs catégories. S'applique à tous les composants utilisant des catégories y compris ceux pour les Articles, Bannières, Contacts, Fils d'actualité et de Liens web.
  4. Article : permet de remplacer les permissions pour un article spécifique. Ce niveau s'applique uniquement aux articles. Les autres composants autorisent uniquement les trois premiers niveaux.

Configuration

Allez dans Système → Configuration → Droits. Cet écran vous permet de régler le niveau supérieur des droits de chaque groupe et de chaque action, tel qu'indiqué sur la capture d'écran ci-dessous.

Screenshot global acl J3 tutorial-fr.png

Les options pour chaque valeur sont Hérité, Autorisé ou Refusé. La colonne de paramètre indique le réglage en vigueur. Autorisé (par défaut).

Vous pouvez travailler sur un groupe à la fois en ouvrant le panneau pour ce groupe. Vous modifiez les autorisations dans la liste déroulante Modifier un droit.

Notez que la colonne des paramètres appliqués ne sera mise à jour qu'après avoir cliqué sur le bouton Enregistrer de la barre d'outils. Pour vérifier que les paramètres sont ce que vous souhaitez, appuyez sur le bouton Enregistrer et vérifier dans la colonne.

Options de composant  Droits

Accessible pour chaque composant en cliquant sur l'icône Options de la barre d'outils. Cet écran est similaire à l'écran de Configuration ci-dessus. Par exemple, en cliquant sur l'icône des options dans le gestionnaire de menu, vous trouverez l'écran de configuration des menus comme ci-dessous. Screenshot menu acl J3 tutorial-fr.jpg

L'accès aux paramètres est seulement disponible aux membres des groupes qui ont les droits pour "Configurer les permissions et paramètres" de chaque composant. Sur l'exemple ci-dessus, le groupe "Administrator" est "Autorisé" pour cette option, ainsi les membres de ce groupe peuvent accéder à cet écran.

Catégorie

Les droits des catégories sont accessibles dans l'écran "Gestion des catégories : Modifier une catégorie articles", dans l'onglet en haut de l'écran. Cet écran propose cinq droits, comme présenté ci-dessous.

Screenshot category acl j3 tutorial-fr.png

Dans ces écrans, vous travaillez sur les droits d'un groupe d'utilisateurs à la fois. Dans l'exemple ci-dessus, vous éditez les droits du groupe Administrator.

Notez que les actions du composant de paramétrage des droits ne s'appliquent pas au niveau de la catégorie, donc ces actions ne sont pas affichées.

Notez aussi que les catégories peuvent être hiérarchisées. Dans ce cas, les droits des actions de la catégorie parente sont héritées directement par les catégories enfant. Par exemple, si vous avez une hiérarchie de catégories Animaux → Animaux de compagnie → Chiens, alors les droits hiérarchiques complets pour un article de la catégorie Chiens seront tels que ci-dessous :

  • Configuration
  • Gestion des articles → Paramètres → Droits
  • Catégorie Animaux
  • Catégorie Animaux de compagnie
  • Catégorie Chiens
  • Cet article spécifique

Article

Les droits attribués pour un article unique sont accessibles depuis le gestionnaire des articles. Modifiez l'écran des articles dans le panneau en bas de l'écran. Cet écran propose trois actions comme montré ci-dessous.

J3x acl tutorial article manager article permissions-fr.png

A nouveau, vous éditez chaque groupe en cliquant sur lui pour ouvrir l'état pour ce groupe. Vous pouvez alors changer les droits dans la colonne Modifier un droit. Pour voir l’effet d'un changement, cliquez sur le bouton Enregistrer ce qui met à jour la colonne Droits appliqués.

Notez que les actions Configurer les permissions et paramètres, Accès à l'administration, et Créer ne s'appliquent pas au niveau des articles, et ne sont donc pas incluses. Les droits de créer un article est placé à l'un des niveaux les plus hauts de la hiérarchie.

Niveaux d'accès

Les niveaux d'accès pour la série 3.x de Joomla! sont simples et flexibles. L'écran ci-dessous vous montre le niveau d'accès Special.

J3x acl tutorial viewing levels-fr.png

Cochez tout simplement la case pour chaque groupe que vous souhaitez inclure à ce niveau. Le niveau d'accès Spécial inclus les groupes Gestionnaire, Auteur et Super Utilisateur. Il inclut également les groupes enfants de ces groupes. Du coup, le groupe Administrateur est inclus car c'est un enfant du groupe Gestionnaire. Les groupes Rédacteur et Validateur sont également inclus car ce sont des enfants de Auteur. (A notez que nous pourrions cocher tous les groupes enfants si nous voulions et que cela ne poserez pas de problèmes).

Une fois les niveaux d'accès créés, ils sont utilisés de la même manière que dans la version 1.5. Chaque objet dans le site public est assigné à un niveau d'accès. Si le niveau est Public, alors tout le monde peut accéder à cet objet. Sinon, seuls les membres des groupes assignés à ce niveau peuvent accéder à cet objet. Les niveaux d'accès sont assignés aux éléments de menus et aux modules. Chacun d'eux ne peut être assigné qu'à un seul niveau d'accès.

Par exemple, l'écran ci-dessous montre l'écran Modifier un lien de menu avec la liste des niveaux d'accès disponibles.

J3x acl tutorial edit menu item level dropdown-fr.png

Paramétrage par défaut des ACL

Lorsque Joomla! est installé, ils sont paramétrés avec la liste par défaut. Nous parlerons de ces niveaux initiaux afin de comprendre comment les niveaux d'accès fonctionnent.

Groupes par défaut

Depuis la version 3.x, vous pouvez définir vos propres groupes. En installant une version 3.x, vous disposez des groupes par défaut ; Ci-dessous vous voyez la liste initiale de groupes d'utilisateurs. (Des niveaux supplémentaires sont installés avec les données d'exemples.)

Screenshot usergroupsl acl J3 tutorial-fr.png

Les flèches indiquent les relations enfant-parent. Comme indiqué plus haut, lorsque vous indiquez un droit pour un groupe parent, ce droit est automatiquement hérité par tous les groupes enfant. Les droits Hérité et Autorisé peuvent être surchargées pour un groupe enfant. Le droit Refusé ne peut pas être surchargé et rejettera toujours une action pour les groupes enfant.

Configuration globale

La version 2.5 de Joomla! s'installe avec les mêmes droits d'administration que la version 1.5. Cependant, à partir de la version 2.5, vous pouvez les modifier pour répondre aux besoins de votre site.

Comme discuté précédemment, les droits pour chaque action sont hérités des niveaux supérieurs dans la hiérarchie des droits et depuis le groupe d'un groupe parent. Voyons comment cela fonctionne. Le niveau supérieur pour cela est le site complet. Les paramètres sont configurés dans Site->Configuration->Droits, comme montré ci-dessous.

Screenshot global acl J3 tutorial-fr.png

La première chose à noter est la présence de dix actions : Connexion au site, Connexion à l'administration, Accès hors-ligne, Super Utilisateur, Accès à l'administration, Créer, Supprimer, Modifier, Modifier le statut, Modifier ses éléments. Se sont les actions que l'utilisateur peut effectuer sur un objet dans Joomla. La signification spécifique de chaque action dépend du contexte. Pour l'écran de configuration, elles sont définies ainsi :

Connexion 
Se connecter au frontend du site ;
Connexion à l'administration 
Se connecter à l'interface d'administration du site ;
Accès hors-ligne 
Se connecter au site public lorsque le site est hors-ligne (lorsque le paramètre de configuration "Site hors-ligne" est oui) ;
Super Utilisateur 
Accorder à l'utilisateur le statut "super utilisateur". Les utilisateurs avec ces droits peuvent tout faire sur le site. Seuls les utilisateurs avec ces droits peuvent modifier la Configuration globale (cet écran). Ces droits ne peuvent pas être restreints. Il est important de comprendre cela, si un utilisateur est membre d'un groupe de super administration, toute autre droit qui lui sera attribué n'aura pas d'effet. L'utilisateur peut tout faire sur le site. Cependant, les niveaux d'accès peuvent toujours être assignés pour contrôler ce que les membres de ce groupe voient sur le site. (Évidemment, un Super Utilisateur peut changer les niveaux d'accès s'il le souhaite, donc les niveaux d'accès ne restreignent pas totalement ce qu'un super utilisateur peut voir.) ;
Accès à l'administration 
Permettre d'accéder aux écrans des composants de gestion (Gestion des utilisateurs, Gestion du menu, Gestion des articles, etc.) ;
Créer 
Créer de nouveaux objets (par exemple, des utilisateurs, des éléments de menu, des articles, des liens web, et ainsi de suite) ;
Supprimer 
Supprimer des objets existants ;
Modifier 
Modifier les éléments existants ;
Modifier le statut 
Changer l'état d'un objet (Publier, Dépublier, Archiver, et Mettre à la corbeille) ;
Modifier ses éléments 
Éditer les objets que vous avez créé ;

Chaque groupe pour le site a son propre onglet qui s'ouvre en cliquant sur le nom du groupe. Dans ce cas (avec les données exemples installées), nous avons les 7 groupes standards que nous avions en version 1.5 plus deux groupes additionnels appelés "Fournisseurs de magasins" et "Clients". Notez que nos groupes sont configurées avec les mêmes droits qu'en version 1.5. Gardez en mémoire que nous pouvons changer tous ces droits pour faire fonctionner la sécurité comme nous le souhaitons. Parcourons cela pour voir comment cela fonctionne.

  • Public tout est mis à "Non indiqué", comme montré ci-dessous.
    Screenshot global acl public J3 tutorial-fr.png
    • Ceci peut être un peu déstabilisant. Fondamentalement, "Non défini" est équivalent à "Hérité". Du fait que Public est le groupe de plus haut niveau, et du fait que la Configuration est le plus haut niveau de la hiérarchie, il n'y a rien à hériter ici. Du coup, "Non défini" est indiqué en lieu et place de "Hérité".
    • La valeur par défaut dans ce cas est Non autorisé. Ainsi, comme vous pourriez l'attendre, le groupe Public n'a pas de droits particuliers. Du coup, il est important de noter que, comme rien n'est mis à "Refusé", tous ces droits peuvent être surchargés par les groupes enfant ou par des niveaux inférieurs dans la hiérarchie de droits.
  • Invité est un groupe 'enfant' du groupe Public et a tout indiqué à 'Hérité'.
    Screenshot global acl guest J3 tutorial-fr.png
    • C'est le 'Groupe utilisateur invité' par défaut dans les paramètres de la gestion des utilisateurs et le groupe dont les visiteurs (non connectés) de votre site sont placés.
  • Gestionnaire est un groupe "enfant" du groupe Public. Il a les droits Autorisés pour tout sauf Accès à l'administration et Super utilisateur. Ainsi, un membre de ce groupe peut tout faire sur le site public ou le site d'administration à part changer les droits globaux et les paramètres des composants.
    Screenshot global acl manager J3 tutorial-fr.png
  • Administrateur les membres du groupe héritent des droits du groupe Gestionnaire avec en plus l'Accès à l'administration. Ainsi les membres de ce groupe peuvent accéder par défaut aux écrans de paramétrage de chaque composant.
    Screenshot global acl administrator J3 tutorial-fr.png
  • Enregistré est identique à Public à la différence que Connexion au site est Autorisé. Ceci signifie que les membres du groupe Enregistré peuvent se connecter au site. Étant donné que les droits par défaut sont hérités, cela signifie que, à moins qu'un groupe enfant ne surcharge ces droits, tous les enfants du groupe Enregistré vont pouvoir se connecter également.
    Screenshot global acl registered J3 tutorial-fr.png
  • Auteur est un enfant du groupe Enregistré et hérite de ses droits et ajoute les droits de Créer et Modifier ses éléments. Étant donné que Auteur, Rédacteur et Validateur n'ont pas de droits sur l'administration du site, nous en reparlerons plus bas lorsque nous traiterons les droits du site public.
    Screenshot global acl author J3 tutorial-fr.png
  • Rédacteur est un enfant du groupe Auteur en ajoutant le droit de Modifier.
    Screenshot global acl editor J3 tutorial-fr.png
  • Validateur est un enfant de Rédacteur et ajoute les droits de Modifier le statut.
    Screenshot global acl publisher J3 tutorial-fr.png
  • Fournisseurs est un exemple de groupe qui est présent si les données exemple ont été installées. C'est un groupe enfant de Auteur.
  • Clients est un exemple de groupe installé si les données exemple ont été installées. C'est un groupe enfant de Enregistré.
  • Super Utilisateur a les droits Autorisé pour l'action Super Utilisateur. De fait, les membres de ce groupe ont les droits de super utilisateur sur tout le site. Ce sont les seuls utilisateurs qui peuvent éditer les valeurs dans l'écran de Configuration. Les utilisateurs avec les droits sur l'action de Super Utilisateur ont des caractéristiques spéciales :
  • Si un utilisateur a les droits Super Utilisateur, tout autre droit fixé pour cet utilisateur n'a aucune importance. L'utilisateur peut réaliser n'importe quelle action sur le site.
  • Seuls les utilisateurs Super Utilisateur peuvent créer, modifier ou supprimer d'autres utilisateurs ou groupes Super Utilisateur.

Il y a deux points très importants à comprendre pour cet écran. Le premier est de voir comment les droits peuvent être hérités depuis le groupe parent. Le second est de voir comment contrôler les droits par défaut par groupe et par action.

Ceci fournit beaucoup de flexibilité. Par exemple, si vous vouliez que les membres du groupe Validateur puisse se connecter au site d'administration, vous pourriez simplement modifier la valeur de Connexion à l'administration à "Autorisé". Si vous vouliez que les membres du groupe Administrateur puissent supprimer des objets ou changer leur statut, vous pourriez changer leurs droits pour ces actions à Hérité (ou Refusé).

Il est également important de comprendre que la possibilité d'utiliser des groupes enfant et complément facultative. Ceci vous permet de gagner du temps lors de la création de nouveaux groupes. Cependant, si vous le souhaitez, vous pouvez paramétrer tous les groupes pour avoir Public comme parent direct et n'hériter d'aucuns droits d'un groupe parent.

Options des composants & droits

Maintenant, voyons comment les droits par défaut de la version 2.5 reproduisent ceux de la version 1.5. Le groupe Super Utilisateur en 2.5 est équivalent au groupe Super Administrateur en 1.5.

Dans l'écran de Configuration ci-dessus, vous verrez que le groupe Administrateur a les mêmes droits que le groupe Gestionnaire. Cependant, dans la version 1.5 les administrateurs peuvent tout faire à l'exception de la Configuration, alors que les Gestionnaires ne peuvent pas ajouter d'utilisateurs, ou configurer les éléments de menus. Ceci est également vrai avec la configuration par défaut de la version 2.5. Voyons comment cela est réalisé.

Si vous allez dans Utilisateurs->Utilisateurs et cliquez sur le bouton Paramètres dans la barre d'outils vous voyez l'écran ci-dessous :

Screenshot acl tutorial 20110111-09-fr.png
Screenshot acl tutorial 20110111-10-fr.png

Cet écran est le même que l'écran des droits de Configuration, à l'exception que ces valeurs n'affectent les Utilisateurs. Regardons comment cela fonctionne.

Tout d'abord, notez que le groupe administrateur est Autorisé pour l'action Configurer les permissions et paramètres. Rappelez-vous que que l'action Accès à l'administration dans l'écran de Configuration donne les droits au groupe "Super Utilisateur". Dans cet écran, l'Accès à l'administration permet de modifier les valeurs des paramètres. Donc le groupe Administrateur peut faire cela alors que le groupe Gestionnaire ne le peut pas.

Ensuite, notez que les Administrateurs héritent de l'action Accès à l'administration alors que le groupe Gestionnaire est Non autorisé. Dans cette écran, l'action Accès à l'administration donne accès pour le groupe à la gestion des utilisateurs. Comme l'Administrateur est Autorisé pour cette action par défaut, le droit hérité ici signifie qu'ils héritent de ce droit pour l'Accès à l'administration. Puisque le groupe Gestionnaire est Non autorisé, les membres du groupe ne peuvent pas accéder à la gestion des utilisateurs et, du coup, ne peuvent réaliser aucune autre action concernant les utilisateurs.

Si vous regardez les paramètres de Menus->Gérer, vous allez voir les mêmes paramètres que le gestionnaire des utilisateurs. A nouveau, le groupe Administrateur peut gérer et attribuer les droits par défaut pour les objets du gestionnaire de menu alors que le groupe Gestionnaire ne peut pas.

En résumé, nous pouvons voir que les différents droits pour les groupes Administrateur et Gestionnaire sont paramétrés en utilisant les formulaires Paramètres->Droits des écrans de la Gestion des Utilisateurs et de la Gestion du Menu.

Il est également important de comprendre que ce même formulaire Paramètres->Droits, pour configurer les droits par défaut, est disponible pour tous les objets Joomla!, incluant le gestionnaire de médias, les bannières, les fiches de contact, les fils d'actualité, les redirections, les recherches statistiques, les liens, les extensions, les modules, les plug-ins, les templates et les langues. Donc, vous aurez dorénavant la possibilité de créer des groupes d'utilisateurs avec des droits avec un niveau de paramétrage fin pour le site d'administration.

Droits pour le frontend

Les droits par défaut dans le site public sont également configurés en utilisant le formulaire de paramétrage. Regardons Contenu->Articles->Paramètres->Droits. Tout d'abord, regardons les droits pour le Gestionnaire, montrés ci-dessous.

Screenshot acl tutorial 20110111-11a-fr.png

Le Gestionnaire a tous les droits à l'exception de Configurer les permissions et paramètres. Donc les membres de ce groupe peuvent tout faire sur les articles à l'exception d'ouvrir l'écran Paramètres.

Maintenant, voyons les droits Administrateur, comme ci-dessous.

Screenshot acl tutorial 20110111-12a-fr.png

Les Administrateurs peuvent Configurer les permissions et paramètres, donc ils peuvent éditer cet écran de Paramètres.

Les deux groupes peuvent Créer, Supprimer, Modifier et Modifier le statut des articles.

Maintenant, regardons les groupes Validateur, Rédacteur et Auteur et regardons comment leurs droits sont configurés.

Les Auteurs peuvent seulement Créer et Modifier ses éléments comme montré ci-dessous.

Screenshot acl tutorial 20110112-07-fr.png

Cela signifie que les Auteurs peuvent créer des articles et modifier leurs propres articles. Ils ne peuvent pas supprimer des articles, changer l'état de publication des articles, ou éditer des articles créés par d'autres.

Les Rédacteurs ont les mêmes droits que les Auteurs avec en plus le droit pour l'action de Modifier, comme montré ci-dessous.

Screenshot acl tutorial 20110112-08-fr.png

Ainsi les Rédacteurs peuvent modifier les articles écrits par tout le monde.

Les Validateurs peuvent réaliser tout ce que les Rédacteurs peuvent faire et de plus ils ont les droits sur l'action de Modifier le statut, comme affiché ci-dessous.

Screenshot acl tutorial 20110112-09-fr.png

Ainsi les Validateurs peuvent changer l'état de publication d'un article. Les états disponibles sont Publié, Non publié, Archivé et Dans la corbeille.

Tous ces groupes ont des droits hérités pour Configurer les permissions et paramètres et Accès à l'administration. Souvenez vous que Auteur est un enfant du groupe Enregistré, et Enregistré n'a pas de droits par défaut à part celui de Connexion. Comme Enregistré n'a pas de droit pour Configurer les permissions et paramètres et Accès à l'administration, alors, puisque Auteur hérite de ces droits pour ces actions, Auteur n'a pas de droits non plus. Ces mêmes droits passent de Auteur à Rédacteur puis de Rédacteur à Validateur. Par conséquent, par défaut, aucun de ces groupes n'est autorisé à travailler sur les articles dans le site d'administration.

Il est important de se rappeler que ces droits sont uniquement des paramètres par défaut pour les catégories et les articles et pour tous les groupes enfants qui sont créés. Donc ils peuvent être surchargés pour les groupes enfants, pour les catégories, ou pour des articles spécifiques.

Notez également qu'il n'y a pas de droits Refusé pour aucune action dans les paramétrages par défaut. Ceci vous permet d'ajouter des droits Autorisé à n'importe quel niveau. Rappelez-vous que, lorsque vous avez une action à Refusé, cette action sera refusée à tous les niveaux inférieurs de la hiérarchie. Par exemple, si vous mettez l'Accès à l'administration pour les Enregistré à Refusé (au lieu de Hérité), vous ne pourrez pas accorder les droits pour cette action aux Validateurs.

Gestion des articles & Diagramme des actions

Le schéma ci-dessous montre comment chaque action dans le formulaire des droits se réfère aux différents paramètres de l'écran de gestion des articles.

Screenshot acl tutorial 20110111-16-fr.png
  • Configurer les permissions et paramètres vous permet de voir et de modifier les paramètres du composant.
  • Accès à l'administration vous permet de naviguer dans la gestion des articles. Sans cette permission, aucune autre action n'est possible.
  • Créer vous permet d'ajouter de nouveaux articles.
  • Supprimer vous permet de supprimer les articles de la corbeille. Notez que le bouton Supprimer est seulement présent dans la barre d'outil lorsque vous avez mis le filtre "Sélectionner le statut" à "Dans la corbeille".
  • Modifier vous permet de modifier les articles existant.
  • Modifier le statut vous permet de mettre les articles à Publié, Non publié, Archivé, ou Dans la corbeille.
  • Modifier ses éléments est identique à Modifier uniquement pour les articles que vous avez écrit vous-même.

Autoriser l'accès Invité pour les éléments de menu et les modules

Avec la version 1.6 est arrivée la possibilité de créer un niveau d'accès de vue réservée aux invités sur le site (c'est-à-dire un utilisateur qui n'est pas connecté). L'exemple ci-dessous montre comment vous pouvez configurer cette nouvelle fonctionnalité. (N.B. Les étapes 1 à 3 ne sont pas nécessaires avec Joomla! 3.x car elles sont configurées lors de l'installation par défaut)

  1. Créez un nouveau groupe appelé Invité. Faites en un enfant du groupe Public comme montré ci-dessous.
    Screenshot acl tutorial 20110112-01-fr.png
  2. Créez un nouveau niveau d'accès appelé Invité et accorder les droits à ce niveau uniquement au groupe Invité, comme visualisé ci-dessous.
    Screenshot acl tutorial 20110112-02-fr.png
  3. Naviguez dans la gestion des utilisateurs→Paramètres→Paramètres d'utilisateur et modifiez le Groupe des visiteurs de la valeur par défaut "Public" à "Invité", comme présenté ci-dessous.
Screenshot acl tutorial 20110112-04-fr.png

Maintenant, si vous assignez un élément de menu, module, ou autre objet au niveau d'accès Invité, seuls les utilisateurs non connectés y auront accès. Par exemple, si vous créez un nouvel élément de menu avec le niveau Invité, comme montré ci-dessous,

Screenshot acl tutorial 20110112-05-fr.png

cet élément de menu sera uniquement visible aux visiteurs de votre site non connectés.

Si nécessaire, les droits d'accès au niveau Invité peuvent être accordés d'autres groupes d'utilisateur tels que Auteur, ce qui permettra aux Auteurs de voir les articles dans le site public pour les modifier.

N.B. Connexion/Déconnexion du site public (pour modifier les données de la session) pour voir les modifications.

Utiliser les droits et les niveaux de groupe ensemble

Comme décrit précédemment, il est possible de définir des groupes sous forme de hiérarchie où chaque groupe enfant hérite des droits sur les actions (par exemple, le droit de créer) du groupe parent. Les droits sur les actions sont aussi héritées des droits du niveau supérieur. Par exemple, un droit dans le gestionnaire des articles est hérité du même droit dans la Configuration globale, et un droit dans une Catégorie enfant est hérité du droit de la Catégorie parent.

L'héritage double peut porter à confusion, mais il peut être utile. Considérons l'exemple qui suit. Nous avons une école avec une hiérarchie de groupe Professeurs → Professeurs d'histoire → Assistant professeurs d'histoire. Nous avons aussi une hiérarchie de catégories de Attributions → Attributions histoire. Nous voulons que les professeurs d'histoire et les assistants professeurs d'histoire aient les droits suivant :

  • les deux groupes peuvent créer des nouveaux articles uniquement dans la catégorie des attributions histoire.
  • seuls les professeurs d'histoire (par les assistants) peuvent publier ou sinon avoir le droit de modifier le statut.

Le schéma des droits est simple à implémenter. Le schéma ci-dessous montre comment cela serait configuré pour l'action Créer.

Acl example diagram1 20091018-fr.png

Sur ce schéma, la hiérarchie des droits est présenté sur le côté gauche et la hiérarchie des groupes en haut. Les droits sont hérités du haut vers le bas et de gauche vers la droite, en suivant les fléches. Pour implémenter les droits désirés, nous laissons la Configuration globale non renseignée (Non défini) pour les trois groupes. De manière similaire, dans le gestionnaire d'articles et l'assignation des catégories, nous laissons les droits de Créer à Hérité pour tous les groupes. Comme montré sur le schéma, cela signifie que ces groupes n'ont pas le droit de Créer des articles en règle générale et pour les articles dans les groupes d'attributions.

Pour résumer jusqu'ici, nous n'avons placé aucun droit pour arriver à ce point. Maintenant, dans l'écran des droits de la catégorie des attributions histoire, nous configurons le droit Créer à Autorisé pour le groupe des professeurs d'histoire. Ce paramétrage surcharge le droit calculé (implicite) Refusé que nous avions par défaut et donne aux membres de ce groupe le droit de créer des contenus (articles et catégories enfant) pour cette catégorie. Ce paramètre Autorisé est également hérité par le groupe des Assistants professeurs d'histoire.

Ensuite, nous avons besoin d'accorder aux professeurs d'histoire le droit de Modifier le statut tout en le refusant pour les assistants professeurs d'histoire. Ceci est réalisé conformément au schéma ci-dessous.

Acl example diagram2 20091018-fr.png

Cette configuration est la même que celle ci-dessus à l'exception que, cette fois, nous plaçons Modifier le statut pour la catégorie Attributions histoire à "Refusé" pour le groupe des assistants professeurs d'histoire. Ceci signifie que les assistants professeurs d'histoire ne seront pas en mesure de mettre à Publié ou Non publié des articles de cette catégorie.

Notez que ceci est accompli en en configurant uniquement deux droits dans la catégorie des attributions histoire ː Autorisé pour le groupe des professeurs d'histoire et Refusé pour le groupe des assistants professeurs d'histoire.

Exemples d'attribution des droits sur les actions

Voici quelques exemples sur comment vous pouvez paramétrer les droits pour quelques situations spécifiques.

Administration des articles dans le site d'administration

Problème :

Nous vouons créer un groupe appelé "Administrateur articles" avec des droits sur le site d'administration uniquement pour les articles et pas pour les autres éléments de menus. Les membres de ce groupe doivent être en mesure d'utiliser toutes les fonctionnalités du gestionnaire des articles, y compris la configuration des droits sur les articles.

Solution :

  1. Créez un nouveau groupe appelé Administrateur articles en tant qu'enfant du groupe Public, comme présenté ci-dessous.
    Screenshot acl tutorial 20110112-10-fr.png
    Du fait que le parent de ce groupe est Public, il ne dispose d'aucun droits par défaut.
  2. Dans Utilisateurs → Niveaux d'accès, modifier le niveau Accès spécial pour ajouter le nouveau groupe. Ainsi, ils pourront accéder aux éléments de menu du site d'administration et aux modules (ceci suppose que le niveau Accès spécial soit assigné aux modules pour le menu d'administration et aux icônes de raccourcis, ce qui est le cas par défaut.)
    Screenshot acl tutorial 20110112-11-fr.png
    Par défaut, les éléments du menu d'administration et les modules sont configurés avec l'Accès spécial, et donc, si vous oubliez d'ajouter le nouveau groupe au niveau Accès spécial, vous ne verrez aucun modules ou éléments de menu lorsque vous vous connecterez en tant qu'utilisateur du nouveau groupe.
  3. Dans Site → Configuration → Droits, cliquez sur le groupe Administrateur articles et modifiez les droits à Autorisé pour les actions suivantes : Connexion à l'administration, Créer, Supprimer, Modifier, Modifier le statut, et Modifier ses éléments. L'écran ci-dessous montre ce qui sera affiché avant d'appuyer sur Enregistrer.
    Screenshot acl tutorial 20110112-12-fr.png
    Après l'enregistrement, les droits sont calculés comme présenté ci-dessous.
    Screenshot acl tutorial 20110112-13-fr.png
    Notez que les droits pour l'Accès à l'administration est Hérité, ce qui est traduit en Non autorisé. Ceci est important. Ceci signifie que ce groupe sera seulement en mesure d'accéder aux composants si nous donnons au groupe le droit "Autorisé" pour Accès à l'administration. Donc nous n'avons qu'à modifier le composant spécifique auquel nous voulons qu'ils accèdent et n'avons pas à changer les paramètres d'autres composants auxquels nous ne voulons pas qu'ils accèdent. Si nous avons le cas où nous voulions donner un accès de groupe à tout sauf à un composant, nous pourrions mettre par défaut à Autorisé et mettre le composant seul à Refusé. Notez que nous n'avons pas donné au groupe les droits de Connexion au site, donc les utilisateurs de ce groupe ne pourront pas se connecter au site public. (Si nous voulions autorisé cela, nous pourrions juste modifier le droit à Autorisé pour la Connexion au site.)
  4. Dans Contenu → Articles → Paramètres → Droits, modifiez les droits à Autorisé pour ce groupe pour l'action Accès à l'administration, comme montré ci-dessous.
    Screenshot acl tutorial 20110112-14-fr.png
    Tous les autres droits sont hérités.

C'est tout ce que vous avez à faire. Les membres de ce groupe peuvent se connecter au site d'administration et ont tous les droits dans le gestionnaire d'articles mais ne peuvent pas faire autre chose dans l'administration du site. Par exemple, l'écran ci-dessous montre ce qu'un utilisateur dans le gestionnaire d'articles verra lorsqu'il est connecté au site d'administration.

Screenshot acl tutorial 20110112-15-fr.png

Exemples de vues en fonction des niveaux d'accès

Un concept de base d'utilisation des niveaux d'accès est que tous les éléments avec un même niveau d'accès seront visibles par le même groupe d'utilisateurs. En d'autres termes, si deux éléments ont le même niveau d'accès, vous ne pouvez pas en avoir un visible par un utilisateur et non visible par un autre utilisateur du même groupe. D'un autre côté, il est facile d'avoir un groupe pouvant voir n'importe quelle nombre d'éléments avec des niveaux d'accès différents.

De manière similaire, chaque groupe a exactement la même combinaison de niveaux d'accès, mais chaque utilisateur peut être membre de un ou plusieurs groupes. En fonction de la situation, vous pouvez souhaiter avoir des utilisateurs seulement dans un groupe ou vous pouvez avoir besoin qu'un utilisateur appartienne à plusieurs groupes.

Cela signifie que nous pouvons avoir besoin de grouper nos éléments de telle manières que tous les éléments d'un groupe aient le même niveau de sensibilité. Voici quelques exemples.

Exemple hiérarchique

Dans cet exemple, les niveaux d'accès sont hiérarchiques, par exemple, comme les codes de sécurité d'autorisation gouvernementaux. Disons par exemple que nous avons les ensembles suivants de documents classifiés : Classifiés, Secret, et Top Secret. Les utilisateurs ont des codes d'autorisation correspondant. Les utilisateurs avec l'autorisation Classifié peuvent uniquement voir les documents Classifiés et ne peuvent accéder aux documents Secret ou Top Secret. Les utilisateurs avec l'autorisation Secret peuvent voir les documents Classifiés et Secret mais pas les Top Secret. Les utilisateurs avec l'autorisation Top Secret peuvent voir tous les documents.

Dans ce cas, vous allez créer trois niveaux d'accès : Classifié, Secret, et Top Secret et les trois groupes identiques. Les utilisateurs ne seront membres que d'un seul groupe, comme ci-dessous :

Utilisateur Groupe Niveaux d'accès
C1, C2, C3 Classé Classé
S1, S2, S3 Secret Classé, Secret
TS1, TS2, TS3 Top Secret Classifié, Secret, Top Secret

Dans ce cas de figure, tous les utilisateurs sont exactement dans un groupe, mais des groupes ont accès à des éléments de plusieurs niveaux d'accès. En d'autres termes, nous avons une relation un-à-un entre les utilisateurs et les groupes, mais un-à-plusieurs entre les groupes et les niveaux d'accès.

Exemple pour une équipe de sécurité

Un autre cas d'utilisation est un ensemble d'équipes sans liens hiérarchiques. Supposons que nous ayons trois équipes T1, T2 et T3. Certains utilisateurs sont seulement dans une équipe, d'autres peuvent être dans deux équipes ou plus. Dans ce cas, nous allons configurer nos niveaux d'accès et groupes par équipe. Les documents de chaque équipe ont le niveau d'accès de l'équipe, et le groupe pour l'équipe a uniquement ce niveau d'accès. Quand un utilisateur est présent dans plusieurs équipes, il est ajouté au groupe de chaque équipe, comme suit ː

Utilisateur Description Groupe Niveaux d'accès
U1 Membre de l'équipe 1 T1 T1
U2 Membre de l'équipe 2 T2 T2
U3 Membre de l'équipe 3 T3 T3
U1-2 Membre des équipes 1 et 2 T1, T2 T1, T2
U1-3 Membre des équipes 1 et 3 T1, T3 T1, T3
U1-2-3 Membre des équipes 1, 2 et 3 T1,T2, T3 T1, T2, T3


Exemple hybride

Dans une situation du monde réel, vous pouvez avoir une combinaison de ces deux cas. Disons, par exemple, que nous avant des responsables et des employés. Un employé ne peut voir que les documents des employés et les responsables peuvent voir les documents des employés et des responsables. Ces deux types d'utilisateurs peuvent être assignés à des équipes également, et dans ce cas ils peuvent voir tous les documents de leur équipe. De plus, supposons que les responsables peuvent voir certains mais pas tous les documents d'équipe. Les employés ne peuvent accéder qu'aux documents de leur équipe.

Dans cet exemple, nous pourrions configurer les niveaux d'accès suivant ː

Niveaux d'accès Description Groupes
Responsable Documents pour les responsables hors équipes Responsable
Employé Documents pour les employés hors équipes Responsable, Employé
Equipe1 Documents sensibles pour l'équipe1 (pas d'accès en dehors de l'équipe) Equipe1
Responsable équipe1 Documents de l'équipe1 qui peuvent être accédés par tous les responsables Equipe1, Responsable
Equipe2 Documents sensibles pour l'équipe2 (pas d'accès en dehors de l'équipe) Equipe2
Responsable équipe2 Documents de l'équipe2 qui peuvent être accédés par tous les responsables Equipe2, Responsable

Ainsi, les utilisateurs peuvent être assignés à des groupes comme suit :

Type d'utilisateur Groupe
Dirigeant dans aucune des équipes Dirigeant
Staff on no teams Staff
Dirigeant de l'équipe 1 Dirigeant, Équipe 1
Équipier de l'équipe 1 Équipier, Équipe 1
Dirigeant des équipes 1 et 2 Dirigeant, Équipe 1, Équipe 2
Équipier des équipes 1 et 2 Équipier, Équipe 1, Équipe 2