Ce tutoriel concerne Joomla! version compat 25

Aperçu du système de contrôle d'accès de la version compat 25

Cette section donne un aperçu sur les principales modifications du système de contrôle d'accès (ACL = Access Control List) entre les versions 1.5 et 2.5 (incluant 1.6 et 1.7). Le tableau ci-dessous résume les principales modifications par rapport à la version 1.5.

 Version 1.5Version 2.5
Groupes 7 groupes fixes (Public, Enregistré, Auteur, Editeur, Rédacteur, Gestionnaire, Administrateur et Super Administrateur). Nombre illimité de groupes d'utilisateurs.
Utilisateurs et Groupes Un utilisateur ne peut être assigné qu'à un seul groupe. Un utilisateur peut être assigné à plusieurs groupes.
Niveaux d'accès 3 niveaux d'accès fixes (Public, Enregistré, Spécial). Nombre illimité de niveaux d'accès.
Niveaux d'accès et groupes Les relations entre les groupes et les niveaux d'accès sont fixes. Les groupes sont assignés aux niveaux d'accès. N'importe quelle combinaison de groupe peut être assignée à n'importe quel niveau d'accès.

Vous voyez que dans tous les cas, l'ACL a été rendu beaucoup plus flexible, avec un nombre illimité de groupes et de niveaux d'accès, et la possibilité d'assigner un utilisateur à plusieurs groupes et n'importe quels groupes à n'importe quels niveaux d'accès.

Des ACL distincts pour voir et pour faire

L'ACL de Joomla! peut être vu comme étant divisé en deux systèmes complètement distincts. Un système contrôle ce que les utilisateurs peuvent voir sur le site. L'autre contrôle ce que les utilisateurs peuvent faire (les actions qu'ils peuvent effectuer). L'ACL est configuré différemment pour chacun.

Contrôler ce que les utilisateurs peuvent voir

La configuration de ce que les utilisateurs peuvent voir est faite de la façon suivante :

  1. Créer les différents groupes d'utilisateurs nécessaires pour le site. Chaque groupe peut être pensé comme un rôle q'un utilisateur aura pour le site. Souvenez-vous qu'un utilisateur peut être membre d'un ou plusieurs groupes. Si besoin, les groupes peuvent avoir des groupes parents. Dans ce cas, ils héritent automatiquement des niveaux d'accès de leur groupe parent.
  2. Créer les niveaux d'accès nécessaires pour le site. Cela peut être une petit nombre ou un grand nombre en fonction du nombre de groupes différents et de combien de catégories d'éléments il y a. Assigner chacun des niveaux d'accès à un ou plusieurs des groupes d'utilisateurs créés à l'étape 1.
  3. Assigner chaque élément à voir à un des niveaux d'accès. Les éléments sont les éléments de contenu (articles, contacts, etc.), les éléments de menu et les modules.

A chaque fois q'un utilisateur doit voir un élément sur une page de Joomla!, le programme vérifie si l'utilisateur a accès à l'élément, comme suit :

  1. Il crée une liste des tous les niveaux d'accès auxquels l'utilisateurs a accès, en se basant sur tous les groupes auxquels l'utilisateur appartient. Aussi, si un groupe a un groupe parent, les niveaux d'accès du groupe parent sont inclus dans la liste.
  2. Il vérifie si le niveau d'accès pour l'élément (article, module, élément de menu, etc.) est bien dans cette liste. Si oui, l'élément est affiché à l'utilisateur. Si non, alors l'élément n'est pas affiché.

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

Contrôler ce que les utilisateurs peuvent faire

Le système pour configurer ce que les utilisateurs peuvent faire (quelles actions ils peuvent effectuer sur un élément déterminé) est configuré par l'onglet Droits de la configuration globale et par l'onglet Droits de l'écran des paramètres de chaque composant. Les droits peuvent aussi être configurés au niveau des catégories pour les composants principaux et au niveau des articles pour les articles.

Notez que cette configuration est indépendante de celle pour contrôler ce que les utilisateurs peuvent voir.

Quand un utilisateur veut effectuer une action spécifique sur un élément d'un composant (par exemple modifier un article), le système vérifie les droits pour cette combinaison utilisateur, élément et action. Si c'est autorisé, l'utilisateur pourra effectuer l'action. Sinon, l'action n'est pas autorisée.

Le reste de cet tutoriel décrit comment on contrôle ce que les utilisateurs peuvent faire (quelles actions leur sont autorisées).

Actions, Groupes et héritage

L'autre face de l'ACL est de donner les autorisations aux utilisateurs d'effectuer des actions sur les objets. Encore une fois ici il y a un grand changement entre les versions 1.5 et 2.5. Dans la 1.5, les actions autorisées pour un certain groupe étaient fixes. Par exemple, un utilisateur du groupe Auteur ne pouvait que soumettre un article alors qu'un utilisateur du groupe Rédacteur pouvait soumettre, modifier, et publier des articles. Aussi, dans la version 1.5 les autorisations étaient tout-ou-rien. Un mebre du groupe Editeur pouvait modifier tous les articles du site.

Le tableau ci-dessous montre ce qui a changé entre les versions 1.5 et 2.5 (incluant 1.6 et 1.7).

 Version 1.5Version 2.5
Groupes et actions Les actions autorisées pour chaque groupe sont fixes. Les actions autorisées pour chaque groupe sont définies par l'administrateur du site.
Portée des droits Totalité du site. Les utilisateurs ont les mêmes droits pour tous les objets du site. Les droits peuvent être définis à différents niveaux dans la hiérachie : site, composant, catégorie, objet.
Héritage des droits Non applicable Les permissions peuvent être héritées de groupes parents et des catégories parentes.

Comment les droits fonctionnent

Il y a quatre possibilités de droits pour les actions comme listé ci-après :

  • Non défini : Par défaut "Refusé", mais contrairement à Refusé, ce droit peut être surchargé en configurant à "Autorisé" un groupe enfant ou un niveau inférieur dans la hiérarchie des droits. Ce droit ne s'applique qu'aux droits de la configuration globale.
  • Hérité : Hérite les droits d'un groupe parent ou d'un niveau plus élevé dans la hiérarchie des droits. Ce droit s'applique à tous les niveaux excepté le niveau configuration globale.
  • Refusé :  N'autorise pas cette action pour ce niveau et ce groupe. IMPORTANT : Cela interdit aussi cette action pour tous les groupes enfants et tous les  niveaux inférieurs dans la hiérarchie des droits. Mettre Autorisé pour un groupe enfant ou un niveau inférieur n'aura aucun effet. L'action sera toujours interdite aux groupes enfants et aux niveaux inférieurs de la hiérarchie qui verront le droit affiché sous la forme "Non autorisé (Verrouillé)" dans la colonne Drois appliqués.
  • Autorisé : Autorise cette action pour ce niveau et ce groupe et pour les niveaux inférieurs et les groupes enfants. Cela n'a pas d'effet si un groupe parent ou niveau plus élevé on leur droit configuré à Refusé ou Autorisé. Si un groupe parent ou niveau plus élevé ont ce droit Refusé, ce droit sera toujours Refusé pour le groupe. Si un groupe parent ou niveau plus élevé ont ce droit Autorisé, ce droit est déjà Autorisé pour le groupe.

Niveaux de hiérarchie de droits

Les droits d'actions peuvent être définies à quatre niveaux dans la version 1.6 comme suit :

  1. Configuration globale : défini le droit par défaut pour chaque action et groupe.
  2. Composant Paramètres -> Droits : peut prendre le pas sur  les droits par défaut pour ce composant (par  exemple, articles, menus, utilisateurs, banières, etc.)
  3. Catégorie : peut prendre le pas sur les droits par défaut pour les objets dans une ou plusieurs catégories. S'applique à tous les composants qui ont des catégories (articles, bannières, contacts, fils d'actualité, liens web, etc.)
  4. Article : peut prendre le pas sur les droits pour un article spécifique. Ce niveau ne s'applique que pour les articles. Les autres omposants ont les trois premiers niveaux.

Configuration globale

On y accède par Site > Configuration > Droits. Cet écran vous permet de définir le niveau le plus élevé des droits, comme montré sur l'écran ci-dessous :

global configuration

Les paramètres pour chaque valeur sont Hérité, Autorisé ou Refusé. La colonne Droits appliqués vous montre les droits en vigueur. Ils peuvent être Non autorisé (par défaut), Autorisé ou Non autorisé (verrouillé).

Vous traillez sur un seul groupe à la fois en ouvrant la fenêtre glissante de ce groupe. Vous pouvez modifier les droits avec les boîtes à liste déroulante de la colonne Modifier un droit.

Notez que la colonne Droits appliqués n'est pas mise à jour tant que vous n'avez pas cliqué sur le bouton Enregistrer de la barre d'outils.. Pour vérifier quels sont les droits, cliquez sur le bouton Enregistrer et vérifiez la colonne Droits appliqués.

Composant Paramètres -> Droits

On y accède pour chaque composant en cliquant sur le bouton Paramètres de la barre d'outils. Cet écran est similaire à celui de la configuration globale. Par exemple, en cliquant sur le bouton Paramètres de la barre d'outils de la gestion des menus on obtient la Configuration des menus ci-dessous :

component options

L'accès aux paramètres n'est possible que pour les membres de groupes qui ont le droit "Configurer" pour chaque composant. Dans l'exemple ci-dessus, le groupe Administrateur a le droit Autorisé pour l'action "Configurer", donc les membres de ce groupe peuvent accéder à cet écran.

Catégories

On accède aux droits des catégories dans la gestion des catégories : écran nouveau/modifier, dans la fenêtre à glissière du bas de l'écran comme montré ci-dessous :

category

Dans ces écrans, vous travaillez sur les droits pour un seul groupe à la fois. Dans l'exemple ci-dessus, nous modifions les droits pour le groupe Administrateur.

Notez que les actions Configurer et Accès à l'administration ne s'appliquent pas au niveau catégorie, ces actions ne sont donc pas incluses.

Notez aussi que les catégories peuvent être organisées en hiérarchie. Si c'est le cas, les droits des actions d'une catégorie parente sont automatiquement héritées par une catégorie enfant. Par exemple, si vous avez une hiérarchie de catégories Animaux > Animaux familiers > Chiens, la hiérarchie complète des droits pour un article de la catégorie Chiens serait comme suit :

  • Configuration globale
  • Gestion des articles ? Paramètres ? Droits
  • Catégorie Animaux
  • Catégorie Animaux familiers
  • Catégorie Chiens
  • Article spécifique

Article

On accède aux droits pour un simple article dans l'écran la gestion des articles : écran nouveau/modifier, dans la fenêtre à glissière du bas de l'écran. Cet écran a trois actions comme montré ci-dessous :

article

De nouveau, vous modifiez chaque groupe en ouvrant la fenêtre à glissière de ce groupe. Vous pouvez alors modifier les droits dans la colonne Modifier un droit. Pour voir l'effet de modifications cliquez sur le bouton Enregistrer pour mettre à jour la colonne Droits appliqués.

Notez que les actions Configurer, Accès à l'administration et Créer ne s'appliquent pas au niveau article, et ne sont pas incluses. Le droit de créer un article est configuré à un niveau plus élevé de la hiérarchie.

Niveaux d'accès

Les niveaux d'accès de la version 2.5 sont simples et flexibles. L'écran ci-dessous montre le niveau d'accès Spécial :

access levels_special

Cochez simplement la boîte de chaque groupe que vous voulez inclure à ce niveau. Le niveau d'accès Spécial comporte les groupes Gestionnaire, Auteur et Super Utilisateur. Il comporte aussi les groupes enfants de ces groupes. Sonc, Le groupe Administrateur est inclus puisque groupe enfant du groupe Gestionnaire. Les groupes Rédacteur, Editeur et Fournisseur sont inclus puisqu'ils des groupes enfants de Auteur. (Notez que nous pourrions coccher tous les groupes enfants si nous voulions et cela  ne poserai pas de problème.)

Une fois les niveaux d'accès créés, ils sont utilisés de la même façon que dans la version 1.5. Chaque objet de l'interface frontale est assigné à un niveau d'accès. Si le niveau est Public, n'importe qui pourra accéder à cet objet. Sinon, seuls les membres des groupes assignés à ce niveau d'accès pourront acéder à cet objet. Les niveaux d'accès sont assignés aux éléments de menu et aux modules. Chacun peut être assigné à un seul niveau d'accès.

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

access levels_menu

Configuration par défaut de l'ACL

Quand Joomla! est installé, l'ACL est configuré à ses valeurs par défaut. Nous allons étudier ces valeurs par défaut afin de comprendre comment l'ACL fonctionne.

Groupes par défaut

La version 1.6 vous permet de définir vos propres groupes. Quand vous installez la version 1.6, elle comporte un ensemble de groupes par défaut comme montré ci-dessous :

default groups

Les flèches indiquent les relations enfants-parents.Comme discuté aud-dessus, quand vous configurez un droit pour un groupe parent, cette permission est automatiquement héritée par tous les groupes enfants. Les droits Hérité et Autorisé peuvent être surchargés pour un groupe enfant. Le droit Refusé ne peut pas être surchargé et le droit sera toujours refusé pour une action pour tous les groupes enfants.

Configuration

La version Joomla! 2.5 s'installe avec les mêmes droits d'administration familiers que ceux de la version 1.5. Cependant avec 2.5, vous pouvez facilement les modifier pour correspondre aux besoins de votre site.

Comme discuté précédemment, les droits pour chaque action sont héritées du niveau supérieur de la hiérarchie des permissions et du groupe parent. Voyons comment cela fonctionne. Le niveau le plus haut pour cela est la totalité du site. Cela est configuré dans Site ? Configuration ? Droits, comme montré ci-dessous :

default global_configuration

La première chose à noter sont les 10 actions : Connexion au site, Connexion à l'administration, Accès hors-ligne, Super administrer, Accès à l'administration, Créer, Supprimer, Modifier, Modifier le statut, Modifier ses éléments. Ce sont les actions qu'un utilisateur peut effectuer sur un objet dans Joomla!. La signification spécifique de chaque action dépend du contexte. Pour l'écran de configuration globale, elles sont définies comme suit :

  • Connexion au site : Droit d'accès à l'espace frontal du site.
  • Connexion à l'administration : Droit d'accès à l'espace d'administration du site.
  • Accès hors-ligne : Droit d'accès au site lorsque celui-ci est hors-ligne.
  • Super administrer : Donne le statut "Super Utilisateur" à l'utilisateur. Les utilisateurs avec ce droit peuvent tout faire sur le site. Les utilisateurs avec ce droit sont les seuls à pouvoir changer les paramètres de la configuration globale (cet écran). Aucune restriction ne peut s'appliquer à ce droit. Il est important de comprendre que si un utilisateur est membre d'un groupe de Super Utilisateur, tout autre droit assigné à cet utilisateur est non pertinent. L'utilisateur peut faire n'importe quelle action sur le site. Cependant les niveaux d'accès peuvent toujours s'appliquer à ce groupe pour contrôler ce qu'il voit sur le site. (Mais évidemment un Super Utilisateur peut changer les niveaux d'accès s'il le souhaite, donc les niveaux d'accès ne limitent pas totalement ce qu'un Super Utilisateur peut voir.)
  • Accès à l'administration : Droit d'accès aux écrans de gestion de composant (gestion des utilisateurs, gestion des menus, gestion des articles, etc.).
  • Créer : Droit de création de nouveaux objets (par exemple : utilisateurs, éléments de menu, articles, liens web, etc.).
  • Supprimer : Droit de suppression d'objets existants.
  • Modifier : Droit de modification d'objets existants.
  • Modifier le statut : Droit de modification du statut d'objets (Publié, Non publié, Archivé, Dans la corbeille).
  • Modifier ses éléments : Droit de modification d'objets par leur auteur.

Chaque groupe du site a sa propre fenêtre à glissière qui s'ouvre quand on clique sur le nom du groupe. Dans ce cas (avec les données d'exemple installées), nous avons les sept groupes standards que nous avions dans la version 1.5 plus deux groupes additionnels nommés "Founisseur (exemple)" et "Client (exemple)". A noter que ces groupes sont configurés avec les mêmes droits que ceux qu'ils avaient dans la version 1.5. Gardez à l'esprit que nous pouvons changer n'importe lequel de ces droits pour faire que la sécurité fonctionne comme nous le voulons. Allons voir comment cela fonctionne.

  • Public : Tout est configuré à "Non défini", comme montré ci-dessous :
    default group_publicCela peut être source de confusion. A la base, "Non défini" est identique à "Hérité". Comme Public est le groupe de plus haut niveau, et comme la Configuration globale est le plus haut dans la hiérarchie des composants, il n'y a rien à hériter de personne. C'est pourquoi "Non défini" est utilisé à la place de "Hérité".
    Le défaut dans ce cas c'est pas de droit. Ainsi, comme vous pouviez vous y attendre, le groupe Public n'a aucun droit particulier. Il est aussi important de noter que comme rien n'est configuré à Refusé, tous ces tous peuvent être surchargés par des groupes enfants ou des niveaux inférieurs dans la hiérarchie des droits.
  • Gestionnaire est un groupe "enfant" du groupe Public. Il a les droits "Autorisé" pour tout à l'exception de "Accès à l'administration" et "Super administrer". Donc un membre de ce groupe peut tout faire dans l'interface frontale et dans l'interface d'administration excepté modifier les droits de la configuration globale et les paramètres des composants.
  • Les membres du groupe Administrateur héritent de tous les droits du groupe Gestionnaire et a aussi Autorisé pour Accès à l'administration. Donc les membres de e groupes par défaut peuvent accéder aux écrans de paramètres de chaque composant.
  • Enregistré est identique à Public excepté pour le droit Autorisé pour l'action "Connexion au site". Cela signifie que les membres du groupe Enregistré peuvent se connecter au site. Comme les droits par défaut sont hérités, cela signifie que, sauf si un groupe enfant surcharge ce droit, tous les groupes enfants du groupe Enregistré pourront aussi se connecter.
  • Auteur est un enfant du groupe Enregistré et hérite de tous ses droits et y ajoute aussi "Créer" et "Modifier ses éléments". Comme les groupes Auteur, Rédacteur et Editeur n'ont pas accès à l'interface d'administration, nous en parlerons plus bas quand nous parlerons des droits de l'interface frontale.
  • Rédacteur est un enfant de Auteur et ajoute le droit "Modifier".
  • Editeur est un enfant de Rédacteur et ajoute le droit "Modifier le statut".
  • Fournisseur (exemple) est un groupe exemple qui est installé si vous installez les données d'exemple. C'est un groupe enfant de Auteur.
  • Client (exemple) est un groupe exemple qui est installé si vous installez les données d'exemple. C'est un groupe enfant de Enregistré.
  • Le groupe Super Utilisateur a le droit Autorisé pour l'action "Super administrer". A cause de ça, les membres de ce groupe ont les droits de super utilisateur pour tout le site. Ils sont les seuls utilisateurs à pouvoir accéder et modifier des valeurs dans l'écran de configuration globale. Les utilisateurs avec le droit de "Super administrer" ont des caractéristiques particulières :
    • Si un utilisateur a le droit de Super administrer, pour cet utilisateur aucun autre droit n'a d'importance. L'utilisateur peut effectuer n'importe quelle action sur le site.
    • Seul un utilisateur avec le droit de Super administrer peut créer, modifier ou supprimer d'autres utilisateurs ou groupes ayant ce droit de Super administrer.

Il y a deux points très importants à comprendre dans cet écran. Le premier est de voir comment les droits peuvent être hérités du groupe parent. Le deuxième est de voir comment vous pouvez contrôler les droits par défaut par groupe et par action.

Cela permet une trsè grande flexibité. Par exemple, si vous vouliez que le groupe Fournisseur puisse se conecter à l'interface d'administration, vous n'auriez qu'à modifier la valeur de "Connexion à l'administration" à "Autorisé". Si vous vouliez interdire aux membres du groupe Administrateur de supprimer des objets ou de modifier leur statut, vous n'auriez qu'à changer les droits de ces actions à Hérité (ou Refusé).

Il est aussi important de comprendre que la possibilité d'avoir des groupes enfants est complètement facultative. Elle vous permet de gagner du temps quand vous configurez un nouveau groupe. Cependant, si vous préférez, vous pouvez configurer tous les groupes en tant qu'enfants du groupe Public et n'héritant aucun droit d'un groupe parent.

Paramètres et droits des composants

Maintenant, continuons de voir comment les droits par défaut de l'interface d'administration de la version 2.5 imitent les droits de la version 1.5. Le groupe Super Utilisateur de la 2.5 est équivalent au groupe Super Administrateur de la 1.5.

Juste en regardant l'écran de la configuration globale au-dessus, il apparaît que le groupe Administrateur et le groupe Gestionnaire ont des droits identiques. Cependant dans la version 1.5 les Administrateurs pouvaient tout faire sauf la configuration globale, alors que les Gestionnaires n'ont pas l'autorisation d'ajouter des utilisateurs ou de travailler avec des éléments de menu. C'est aussi vrai dans la configuration par défaut de la version 2.5. Voyons comment c'est fait.

Si nous allons à Utilisateurs > Gestion des utilisateurs et cliqouons sur Paramètres dans la barre d'outils, nous voyons l'écran suivant :

users manager

users administrator

Cet écran est le même que celui des droits de la configuration globale, sauf que ces valeurs ne concernent que le travail avec les utilisateurs. Voyons comment cela fonctionne.

D'abord, il faut noter que le groupe Administrateur a le droit Autorisé pour l'action "Configurer" alors que le groupe Gestionnaire a "Non autorisé" pour cette action. Souvenez-vous que cette action "Configurer" dans l'écran de configuration globale donnait au groupe le droit "Super Utilisateur". Dans cet écran, l'action "Configurer" vous permet de modifier les valeurs des paramètres. Donc le groupe Administrateur peut le faire mais pas le groupe Gestionnaire.

Ensuite, il faut noter que l'Administrateur a hérité de l'action "Accès à l'administration" alors que le groupe Gestionnaire a "Non autorisé". Dans cet écran, l'action "Accès à l'administration" donne au groupe l'accès à la gestion des utilisateurs. Comme l'Administrateur a "Autorisé" par défaut pour l'action "Accès à l'administration", le droit "Hérité" signifie ici qu'il hérite du droit "Autorisé" pour l'action "Accès à l'administration". Comme le groupe Gestionnaire a le droit "Non autorisé" pour l'action "Accès à l'administration", les membres du groupe Gestionnaire ne peuvent pas accéder à l'écran de gestion des utilisateurs et par conséquence ils ne peuvent réaliser aucune des autres actions relatives aux utilisateurs.

Si vous regardez dans Menus > Gestion des menus > Paramètres > Droits, vous verrez la même configuration par défaut que pour les utilisateurs. Encore un fois, le groupe Administrateur peut gérer et paramètrer les objets de la gestion des menus alors que le Gestionnaire ne le peut pas.

En résumé, nous pouvons voir que les différents droits pour les groupes Administrateur et Gestionnaire sont configurés en utilisant les formulaires Paramètres > Droits des écrans Gestion des utilisateurs et Gestion des menus.

Il est aussi important que ce même formulaire Paramètres > Droits pour configurer les droits par défaut est disponible pour tous les objets Joomla!, y compris la Gestion des médias, Bannières, Contacts, Fils d'information, Redirection, Statistiques de recherche, Liens web, Extensions, Modules, Plug-ins, Templates et Langue. Vous avez donc maintenant la possibilité de créer des groupes d'utilisateurs avec des droits finement configurés pour l'interface d'administration.

Droits de l'interface frontale

Les droits pour l'interface frontale sont aussi configurés en utilisant le formulaire Paramètres. Regardons Contenu ? Gestion des articles ? Paramètres ? Droits. En premier, regardons les droits pour le groupe Gestionnaire comme montré ci-dessous :

frontend manager

Le Gestionnairea le droit "Autorisé" pour toutes les actions excepté Configurer. Donc les membres du groupe Gestionnaire peuvent tout faire sauf ouvrir l'écran Paramètres.

Regardons maintenant l'Administrateur ci-dessous :

frontend administrator

Les Administrateurs ont "Autorisé" pour Configurer, ils peuvent donc ouvrir l'écran Paramètres.

Les deux groupes peuvent créer, supprimer, modifier et modifier le statut des articles.

Maintenant, regardons les groupes Editeur, Rédacteur et auteur et voyons comment sont configurés leurs droits.

Les Auteurs ont seulement les droits de Créer et Modifier ses éléments, comme montré ci-dessous :

frontend author

Cela signifie que les Auteurs peuvent créer des articles et modifier les articles qu'ils ont créé. Ils ne peuvent pas supprimer des articles, modifier le statut d'articles ou modifier des articles créés par d'autres.

Les Rédacteurs ont les mêmes droits que les Auteurs avec l'addtion du droit pour l'action Modifier, comme montré ci-dessous :

frontend editor

Les Rédacteurs peuvent donc modifier les articles écrits par n'importe qui.

Les Editeurs peuvent faire tout ce que les Rédacteurs peuvent faire plus l'action "Modifier le statut", comme montré ci-dessous :

frontend publisher

Les Editeurs peuvent donc modifier le statut de publication d'un article. Les statuts possibles sont : Publié, Non publié, Archivé, et Dans la corbeille.

Tous ces groupes ont un droit "Hérité" pour "Configurer" et "Accès à l'administration". Souvenez-vous que Auteur est enfant du groupe Enregistré, et que Enregistré n'a aucun droit par défaut sauf pour se connecter au site. Comme Enregistré n'a pas de droit pour "Configurer" et "Accès à l'administration", et comme l'Auteur a le droit "Hérité" pour ces actions, l'Auteur n'a pas non plus le droit pour ces actions. Ces mêmes droits sont passés de Auteur à Rédacteur et de Rédacteur à Editeur. Donc, par défaut, aucun de ces groupes n'est autorisé à travailler avec les articles avec l'interface d'administration.

Il est important de se souvenir que ces droits ne sont que des droits par défauts pour les catégories et les articles et pour tous les groupes enfants qui sont créés. Ils peuvent donc être surchargés pour les groupes enfants, pour les catégories et pour des articles spécifiques.

Notez aussi qu'il n'y a pas de droit "Refusé" pour les actions dans la configuration par défaut. Cela vous permet d'ajouter des droits "Autorisé" à n'importe quel niveau. Rappelez-vous qu'une fois que vous avez mis une action à "Refusé", cette action sera interdite pour tous les niveaux inférieurs de la hiérarchie. Par exemple, si vous mettez "Connexion à l'administration" à Refusé (au lieu de Hérité), vous ne pouvez plus donner le droit Autorisé pour cette action aux Editeurs.

Gestion des articles et diagramme des actions

Le diagramme ci-dessous montre comment chaque action dans le formulaire des droits est en relation avec les différentes options de l'écran de gestion des articles.

actions diagram

  • Configurer vous permet de voir et modifier les Paramètres pour ce composant.
  • Accès à l'administration vous permet d'ouvrir la Gestion des articles. Sans ce droit, aucune autre action n'est possible.
  • Créer vous permet de créer de nouveaux articles.
  • Supprimer vous permet de supprimer des articles de la corbeille. A noter que l'icône "Vider la corbeille ne s'affiche que quand vous avez sélectionné "Dans la corbeille" pour le filtre "Sélectionner le statut".
  • Modifier vous permet de modifier des articles existants.
  • Modifier le statut vous permet de Publier, Dépublier, Archiver ou mettre deans la Corbeille des articles.
  • Modifier ses éléments est la même chose que Modifier mais il ne s'applique qu'aux éléments que vous avez écrit.

Accès aux éléments de menu et aux modules réservé seulement aux invités

La version 1.6 introduit la possibilité de créer un niveau d'accès qui est réservé aux seuls invités du site (c'est-à-dire un utilisateur qui n'est pas connecté). L'exemple ci-dessous vous montre comment implémenter cette nouvelle fonctionnalité.

1. Créer un nouveau groupe d'utilisateurs appelé "Invité". Faites en un enfant du groupe Public comme montré ci-dessous :

guest group

2. Créer un nouveau niveau d'accès appelé "Accès Invité" et n'assignez que le groupe d'utilisateurs "Invité" à ce niveau, comme montré ci-dessous :

guest access_level

3. Allez à Utilisateurs > Gestion des utilisateurs > Paramètres > Composant et changez le paramètre "Groupe des visiteurs" de la valeur par défaut "Public" en "Invité", comme montré ci-dessous :

guest user_options

Maintenant, si nous assignons un élément de menu, un module ou un autre objet au niveau "Accès Invité", seuls les utilisateurs non connectés pourront le voir. Par exemple, si nous créons un nouvel élément de menu avec le niveau "Accès Invité", comme montré ci-dessous :

guest menu_item

Ce menu ne sera visible que des utilisateurs non connectés sur le site. Ci-dessous le lien est vu par un invité, il n'est pas vu par un utilisateur connecté.

  Utilisateur non-connectéUtilisateur connecté   
 

guest non logged

guest logged  

Si besoin,  d'autres groupes comme Auteur peuvent avoir l'autorisation d'accès au niveau "Accès Invité", cela permettrait aux Auteurs de voir les articles sur l'interface frontale pour les modifier.

N.B. Connectez-vous / déconnectez-vous du frontal du site (pour changer les données de session) pour voir la différence.

Se servir des droits et des niveaux d'accès ensemble

Comme exposé plus haut, il est possible de définir les groupes dans une hiérarchie, où chaque groupe enfant hérite des droits d'actions (par exemple le droit de Créer) de son groupe parent. Les droits d'actions sont aussi hérités des niveaux de droits supérieurs. Par exemple, un droit dans la Gestion 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 droitde la catégorie parent.

Ce double héritage peut être troublant, mais il peut aussi être utile. Voyons l'exemple suivant. Nous avons une écoleavec une hiérarchie de groupe Professeurs ? Professeurs d'histoire ? Assistants des professeurs d'histoire. Nous avons aussi une hiérarchie des devoirs : Sujets ? Sujets d'histoire. Nous voulons que les Professeurs d'histoire et les Assistants des professeurs d'histoire aient les droits suivants :

  • Les deux groupes peuvent créer des articles seulement dans la catégorie Sujets d'histoire.
  • Seulement les Professeurs d'histoire (pas les Assistants des professeurs d'histoire) peuvent publier ou autrement dit avoir le droit "Modifier le statut".

Ce schéma d'ACL est très facile à mettre en oeuvre. Le diagramme ci-dessous montre comment cela doit être configuré pour l'action "Créer" :

diagram create

Dans le diagramme, la hiérarchie des droits est montrée en descendant sur le côté gauche et la hiérarchie des groupes est montrée en haut de gauche à droite. Les droits sont hérités vers le bas et vers la droite, comme montré par les flèches. Pour implémenter les droits, nous laissons vide (Non défini) la configuration globale pour les trois groupes. De même, dans la Gestion des articles et la catégorie Sujets, nous laissons le droit "Créer" hériter pour tous les groupes. Comme montré dans le diagramme, cela signifie que ces trois groupes n'ont pas le droit Créer pour les articles en général dans la catégorie Sujets.

Pour résumer, nous n'avons pas encore configuré de droit spécial. Maintenant, dans l'écran des droits pour la catégorie Sujets d'histoire, nous mettons le droit Créer à Autorisé pour le groupe des professeurs d'histoire. Ce paramètre surcharge le refus simple (implicite) que nous avons par défaut et donne aux membres de ce groupe le droit de créer du contenu (articles et catégories enfant) pour cette catégorie. Ce droit est aussi hérité par le groupe des assistant professeurs d'histoire.

Ensuite, nous avons besoin de donner aux professeurs d'histoire le droit "Modifier le statut" tout en le refusant aux assistants professeurs d'histoire. Cela est fait comme montré dans le diagramme ci-dessous :

diagram edit_state

Cette configuration est la même que précédemment excepté que cette fois nous avons mis le droit "Modifier le statut" à "Refusé" pour le groupe des assistant de professeurs d'histoire. Cela signifie que les assistants de professeurs d'histoire ne pouront pas publier ou dépublier des articles dans cette catégorie.

A noter que ceci a été réalisé en configurant seulement deux droits dans la catégorie Sujets d'histoire : Autorisé pour le groupe Professeurs d'histoire et Refusé pour le groupe Assistants des professeurs d'histoire.

Exemples ACL de droits d'actions

Voici quelques exemples de comment vous pouvez configurer l'ACL pour quelques situations spécifiques.

Administrateur d'articles en interface d'administration

Problème

Nous voulons créer un groupe appelé "Administrateur d'articles" avec les droits dans l'interface d'administration uniquement pour les articles et aucun droit pour les autres menus de paramètres de l'interface d'administration. Les membres de ce groupes devraient pouvoir utiliser toutes les fonctions de la Gestion des articles, y compris configurer les droits d'un article.

Solution

  1. Créer un groupe appelé "Administrateur d'articles" avec comme groupe parent Public, comme montré ci-dessous :

    article manager_group
    Comme son groupe parent est Public, il n'aura aucun droit par défaut.
  2. Dans Utilisateurs > Niveaux d'accès, modifiez le niveau d'accès Accès Spécial pour ajouter le nouveau groupe. De cette façon, ils peuvent accéder dans l'interface d'administration aux éléments de menu et aux modules. (Ceci suppose que les modules pour le menu d'administration et les icônes rapides ont le niveau d'accès Accès Spécial qui leur est assigné ce qui est le défaut.)
    article manager_access_level
    Par défaut, les éléments de menu et les modules sont assignés à Accès Spécial, donc si vous oubliez d'ajouter le nouveau groupe au niveau Accès Spécial, vous ne verrez aucun module ni élément de menu quand vous vous connecterez en tant qu'utilisateur du nouveau groupe.
  3. Dans Site > Configuration > Droits, cliquez sur le groupe Administrateur d'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 que vous voyez avant de cliquer sur Enregistrer :

    article manager_configuration_before
    Après avoir enregistré, les Droits appliqués devraient être affichés comme ci-dessous :

    article manager_configuration_after
    Notez que le droit pour Accès à l'administration est Hérité, ce qui se traduit en Non autorisé. Ceci est important. Cela signifie que ce groupe ne pourra accéder à des composants que si nous donnons le droit Autorisé au groupe pour Accès à l'administration. Donc nous n'avons qu'à modifier le seul composant auquel nous voulons donner l'accès et nous n'avons à changer aucun paramètre pour les composants où ne voulons pas qu'ils accèdent. Si nous avions eu le cas où nous voulions donner à un groupe l'accès à tout sauf à un composant, nous aurions pu mettre le défaut à autorisé et mettre le composant à Refusé. Notez aussi que nous n'avons pas donné au groupe le droit de Connexion au site, donc les utilisateurs de ce groupe ne pourront pas se connecter à l'interface frontale. (Si nous voulions l'autoriser, nous n'aurions qu'à mettre le droit à Autorisé pour la Connexion au site.)
  4. Dans Site > Gestion des articles > Paramètres > Droits, modifiez le droit à Autorisé pour ce groupe pour l'action Accès à l'administration, comme montré ci-dessous :

    article manager_article_options
    Tous les autres droits sont hérités.

C'est tout ce que vous avez à faire. Les membres de ce groupe peuvent se connecter à l'interface d'administration et tout faire dans la Gestion des articles mais ils ne peuvent rien faire d'autre dans l'interface d'administration. Par exemple, l'écran ci-dessous montre ce qu'un utilisateur du groupe Administrateur d'articles verra quand il se connectera à l'interface d'administration.

article manager_logged

Exemples ACL de niveaux d'accès d'affichage

Un concept de base de l'utilisation des niveaux d'accès c'est que tous les éléments avec le même accès pourront être vus par le même groupe d'utilisateurs. Dit autrement, si deux éléments ont le même accès, vous ne pouvez pas en avoir un visible pour un utilisateur et pas visible par un autre utilisateur. D'un autre côté, il est facile d'avoir un groupe voyant n'importe quel nombre d'éléments avec différents niveaux d'accès.

De même, chaque groupe a exactement la même combinaison de niveaux d'accès, mais un utilisateur peut être membre de plusieurs groupes. En fonction de la situation, vous pouvez vouloir avoir les utilisateurs dans un seul groupe ou vous pouvez avoir besoin d'avoir un utilisateur dans plusieurs groupes.

Cela signifie que nous pouvons avoir besoin de grouper nos éléments de façon à ce que tous les éléments dans un groupe aient le même niveau de sensibilité. Voyons quelques exemples.

Exemple hiérarchique

Dans cet exemple, les niveaux d'accès sont hiérarchiques, par exemple comme les codes d'autorisation de sécurité du gouvernement. Disons par exemple que nous avons l'ensemble suivant de documents classés secrets : Classifié, Secret et Top Secret. Les utilisateurs ont leur codes d'autorisation correspondants. Les utilisateurs avec l'autorisation Classifié pourront voir uniquement  les documents Classifié et ne pourront pas voir Secret et Top Secret. les utilisateurs avec l'autorisation Secret peuvent voir les documents Classifié et Secret mais pas Top Secret. Les utilisateurs avec Top Secret peuvent voir tous les documents.

Dans ce cas, vous créez trois niveaux d'accès : Classifié, Secret et Top Secret ainsique les mêmes trois groupes. Les utilisateurs seront membres d'un seul groupe comme suit :

UtilisateurGroupeNiveaux d'accès
C1, C2, C3 Classifié Classifié
S1, S2, S3 Secret Classifié, Secret
TS1, TS2, TS3 Top Secret Classifié, Scret, Top Secret

Dans ce cas, tous les utilisateurs sont dans un seul groupe, mais tous les groupes peuvent accéder à plus d'un niveau d'accès d'éléments. Dit autrement, nous avons une relation un-à-un entre les utilisateurs et les groupes, mais une relation un-à-plusieurs entre les groupes et les niveaux d'accès.

Exemple de l'équipe de sécurité

Un autre cas possible d'utilisation est un ensemble d'équipes non-hiérarchiques. Disons que nous avons trois équipes T1, T2 et T3. Certains utilisateurs sont dans une seule équipe, mais d'autres peuvent être dans deux ou plusieurs équipes. Dans ce cas, nous pouvons configurer nos niveaux d'accès et nos groupes par équipes. Les documents pour chaque équipe ont le niveau d'accès de cette équipe, et le groupe de l'équipe a un seul niveau d'accès. Quand un utilisateur est dans plus d'une équipe, il est ajouté au groupe de chaque équiope comme suit :

UtilisateurDescriptionGroupeNiveaux d'accès
U1 Membre de l'équipe 1 T1  T1 
U2 Membre de l'équipe 2 T1  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 devriez avoir une combinaison de ces deux arragements. Disons par exemple que nous avons des Directeurs et des Employés. Les Employés ne peuvent voir que les documents des Employés et les Directeurs peuvent voir les documents des Directeurs et des Employés. Les deux types d'utilisateurs peuvent aussi être assignés à des équipes, dans ce cas ils peuvent voir tous les documents de cette équipe. De plus, les Directeurs peuvent accéder à certains, mais pas tous, des documents des équipes. Les employés peuvent accéder aux documents d'une équipe que s'ils sont membres de cette équipe.

Dans cet exemple, nous devrions configurer les niveaux d'accès suivants :

Niveau d'accèsDescriptionGroupes
Directeur Documents des directeurs hors équipe Directeur
Employé Documents des employés hors équipe Directeur, Employé
Equipe1 Documents confidentiels de l'équipe 1 (pas d'accès en dehors de l'équipe) Equipe1
Equipe1-Directeur Documents de l'équipe 1 pouvant être accédés par tous les directeurs Equipe1, Directeur
Equipe2 Documents confidentiels de l'équipe 2 (pas d'accès en dehors de l'équipe) Equipe2
Equipe2-Directeur Documents de l'équipe 2 pouvant être accédés par tous les Directeurs Equipe2, Directeur 

Alors, les utilisateurs peuvent être assignés aux groupes comme suit :

Type d'utilisateurGroupe
Directeur sans équipe Directeur
Employé sans équipe Employé
Directeur de l'équipe 1 Directeur, Equipe1
Employé de l'équipe 1 Employé, Equipe1
Directeur des équipes 1 et 2 Directeur, Equipe1, Equipe2
Employé des équipes 1 et 2 Employé, Equipe1, Equipe2

Navigation dans l'aide