- 23 septembre 2016
- Steeve
Pour ce tutoriel vous n’avez pas besoin d’avoir de connaissance particulière.
Ce tutoriel est réalisé sur MODX Revolution 2.3.5-pl (traditional)
Quand on donne un accès client ou éditeur, on a souvent besoin de ne pas laisser l’accès complet car un utilisateur non averti pourrait faire des bêtises ou même détruire votre travail réalisé sur MODX. Il est donc bon de pouvoir gérer ce que l’utilisateur va pouvoir avoir accès. C’est le but de ce tutoriel. Vous apprendre à gérer un ou plusieurs accès différents selon les besoins de chaque intervenant.
1. Créer un nouvel utilisateur
Pour ce faire, dans le menu principal (top menu) cliquez sur « Administration » > « Utilisateurs ». La liste des utilisateurs apparaît à l’écran. Normalement a cette étape vous n’avez qu’un seul utilisateur, vous !
Cliquez sur créer « nouvel utilisateur ». Dans la nouvelle fenêtre remplissez les champs :
- Identifiant : client (pour mon exemple).
- Adresse e-mail : l’email du client qu’il puisse retrouver son mot de passe en cas de perte. Dans mon exemple je donne un e-mail bidon, test@client.com.
- Cochez la case « actif », pour activer l’utilisateur.
Cliquez à présent sur « enregistrer » ce qui aura pour effet d’afficher le mot de passe à l’écran dans une fenêtre pop-up comme l’image ci-dessous.
Une fois que vous avez noté le mot de passe cliquez sur « ok » pour fermer la fenêtre pop-up.
Retournez dans la gestion des utilisateurs en cliquant sur « Administration » > « Utilisateurs ». Vous devriez avoir votre nouvel utilisateur dans la liste des utilisateurs.
2. Créer une règle d’accès
Cliquez sur « Listes des contrôles d'accès » dans le « user menu » (en haut à droite dans l’interface de MODX).
Vous devriez voir une fenêtre comme sur l’image ci-dessous.
Cette partie ce compose de quatre onglets :
- Groupes d’utilisateurs : Gérer les groupes et les rôles des utilisateurs.
- Rôles : Un rôle est, par définition, une position ou un statut que quelqu'un détient dans une certaine situation.
- Rôles d’accès : Les règles d'accès gèrent la façon dont MODX traite les autorisations pour des actions prévues.
- Modèle de règles : Liste des modèles de règles, qui définissent les listes de permissions qui sont actives ou non dans les règles d'accès spécifiques.
Nous allons commencer par les règles d’accès. Allez donc dans cet onglet. Puis cliquez droit sur la règle « Administrator » et choisissez « dupliquer la règle ».
Vous devriez voir une nouvelle règle nommée « Copie de Administrator ». Je vous ai fait dupliquer cette règle car elle a tous les droits et j’ai choisi d’enlever des droits plutôt que de les rajouter mais on aurait très bien pu en créer une ou carrément importer une règle déjà paramétré.
Une fois cette règle dupliquée nous allons désormais la modifier. Pour ce faire cliquez droit sur la nouvelle règle d’accès « Copie de Administrator » et cliquez sur mettre à jour.
Une fois dans la page de modification de la règle vous pouvez modifier le nom de la dite règle ainsi que la description. Mais surtout ce qui nous intéresse les permissions elles mêmes.
Dans mon exemple :
Nom : Accès client
Description : Règle des permissions pour les clients.
Lexique : Ne pas toucher, laisser (permissions).
Et maintenant les permissions : vous pouvez modifier les paramètres que je vous donne avec votre propre choix. Vous pourrez aussi les modifier à volonté donc pas de soucis en cas d’erreur.
about : décoché
Voir la page "À Propos".
access_permissions : décoché
Pages et actions relatives aux permissions.
actions : coché
Voir la page des actions et menus.
change_password : coché
Les utilisateurs peuvent modifier leur mot de passe.
change_profile : coché
Les utilisateurs peuvent modifier leur profil.
charsets : décoché
Voir la liste des jeux de caractères.
class_map : coché
Voir une liste de classes dans "le plan de classes"
components : décoché
Voir le menu " Extensions ".
content_types : décoché
La page des types de contenu.
countries : décoché
Voir la liste des pays.
create : coché
Autorisations d'accès minimales en "Création" aux nouveaux objets.
credits : décoché
Voir la page des crédits.
customize_forms : décoché
Voir et gérer la page de personnalisation de formulaire.
dashboards : décoché
Voir et gérer les tableaux de bord personnalisés.
database : décoché
Voir la page des informations sur la base de données.
database_truncate : décoché
La possibilité de tronquer des tables de la base de données.
delete_category : décoché
Supprimer ou détruire des Catégories.
delete_chunk : décoché
Supprimer ou détruire des Chunks.
delete_context : décoché
Supprimer ou détruire des Contextes.
delete_document : coché
Supprimer ou détruire des Ressources.
delete_eventlog : décoché
Vider le log d'évènements.
delete_plugin : décoché
Supprimer ou détruire des Plugins.
delete_propertyset : décoché
Supprimer ou détruire des jeux de propriétés.
delete_role : décoché
Supprimer ou détruire des rôles.
delete_snippet : décoché
Supprimer ou détruire des Snippets.
delete_template : décoché
Supprimer ou détruire des modèles.
delete_tv : décoché
Supprimer ou détruire des variables de modèles.
delete_user : décoché
Supprimer ou détruire des utilisateurs.
directory_chmod : décoché
Changer les permissions d'un répertoire.
directory_create : coché
Créer un répertoire.
directory_list : coché
Lister les sous-répertoires des dossiers physiques.
directory_remove : coché
Supprimer un répertoire.
directory_update : coché
Renommer un répertoire.
edit_category : décoché
Éditer les Catégories.
edit_chunk : décoché
Éditer les chunks.
edit_context : décoché
Éditer les Contextes.
edit_document : coché
Éditer les Ressources.
edit_locked : décoché
Autorise un utilisateur à outrepasser un verrou et éditer une Ressource verrouillée.
edit_plugin : décoché
Éditer les Plugins.
edit_propertyset : décoché
Éditer les jeux de propriétés.
edit_role : décoché
Éditer les rôles.
edit_snippet : décoché
Éditer les Snippets.
edit_template : décoché
Éditer les modèles.
edit_tv : décoché
Éditer les variables de modèles.
edit_user : décoché
Éditer les utilisateurs.
element_tree : décoché
La possibilité de voir l'arborescence des éléments dans le menu de gauche.
empty_cache : coché
Vider le cache du site.
error_log_erase : décoché
Effacer le journal d'erreurs.
error_log_view : décoché
Voir le journal d'erreurs.
events : décoché
Afficher tous les événements système.
export_static : décoché
Exporter le site en HTML statique.
file_create : décoché
Créer un fichier.
file_list : coché
Lister les fichiers dans un répertoire donné.
file_manager : coché
Utiliser le gestionnaire de fichiers.
file_remove : coché
Supprimer des fichiers physiques.
file_tree : décoché
Voir l'arborescence des fichiers dans le menu de gauche.
file_unpack : décoché
Extraire des archives zip.
file_update : coché
Mettre à jour le contenu des fichiers physiques.
file_upload : coché
Charger des fichiers dans les répertoires.
file_view : coché
Voir le contenu de fichiers.
flush_sessions : décoché
Vider les sessions du site.
frames : coché
Utiliser l'interface du gestionnaire de MODX.
help : décoché
Voir la page d'aide.
home : coché
Voir la page d'accueil.
import_static : décoché
Voir ou utiliser les pages d'Import.
languages : décoché
Éditer ou voir les langues du Lexique.
lexicons : décoché
Éditer ou voir le Lexique et l'Internationalisation.
list : coché
Autorisations minimales pour "lister" les objets. Lister veut dire obtenir une collection d'objets.
load : coché
Autorisations minimales pour "charger" des objets, ou pour les retourner comme une instance.
logout : coché
Pour pouvoir se déconnecter en tant qu'utilisateur.
logs : décoché
Voir les journaux, tels que les erreurs et les connexions au manager.
menus : décoché
Éditer ou sauvegarder les éléments du menu.
menu_reports : décoché
Afficher le menu "Rapports".
menu_security : décoché
Afficher le menu "Sécurité".
menu_site : décoché
Afficher le menu "Site".
menu_support : décoché
Afficher le menu "Support".
menu_system : décoché
Afficher le menu "Système".
menu_tools : décoché
Afficher le menu "Outils".
menu_user : coché
Afficher le menu "Utilisateur".
messages : décoché
Envoyer ou voir des messages personnels.
namespaces : décoché
Voir ou éditer les espaces de noms.
new_category : décoché
Créer de nouvelles Catégories.
new_chunk : décoché
Créer de nouveaux Chunks.
new_context : décoché
Créer de nouveaux Contextes.
new_document : coché
Créer de nouvelles Ressources.
new_document_in_root : coché
Créer des ressources au niveau de la racine.
new_plugin : décoché
Créer de nouveaux Plugins.
new_propertyset : décoché
Créer de nouveaux jeux de propriétés.
new_role : décoché
Créer de nouveaux rôles.
new_snippet : décoché
Créer de nouveaux Snippets.
new_static_resource : décoché
Créer de nouvelles Ressources statiques.
new_symlink : coché
Créer de nouveaux Liens symboliques.
new_template : décoché
Créer de nouveaux Modèles.
new_tv : décoché
Créer de nouvelles Variables de Modèles.
new_user : décoché
Créer de nouveaux utilisateurs.
new_weblink : coché
Créer de nouveaux Liens.
packages : décoché
Utiliser les packages de transport dans le gestionnaire d'Extensions.
policy_delete : décoché
Supprimer des règles d'accès.
policy_edit : décoché
Modifier des règles d'accès.
policy_new : décoché
Créer des règles d'accès.
policy_save : décoché
Sauvegarder des règles d'accès.
policy_template_delete : décoché
Supprimer des modèles de règles d'accès.
policy_template_edit : décoché
Modifier des modèles de règles d'accès.
policy_template_new : décoché
Créer des modèles de règles d'accès.
policy_template_save : décoché
Sauvegarder des modèles de règles d'accès.
policy_template_view : décoché
Voir les modèles de règles d'accès.
policy_view : décoché
Voir les règles d'accès.
property_sets : décoché
Voir et modifier les propriétés et les jeux de propriétés.
providers : décoché
Voir et modifier les fournisseurs dans le site.
publish_document : décoché
Publier ou dépublier les ressources.
purge_deleted : décoché
Vider la corbeille.
remove : coché
Autorisations minimales pour supprimer des objets.
remove_locks : décoché
Supprimer tous les verrous existant dans le site.
resourcegroup_delete : décoché
Supprimer des groupes de ressources.
resourcegroup_edit : décoché
Modifier les groupes de ressources.
resourcegroup_new : décoché
Créer de nouveaux groupes de ressources.
resourcegroup_resource_edit : décoché
Modifier les ressources dans un groupe de ressources.
resourcegroup_resource_list : décoché
Voir ou lister les ressources dans un groupe de ressources.
resourcegroup_save : décoché
Sauvegarder des groupes de ressources.
resourcegroup_view : décoché
Lister les groupes de ressources.
resource_duplicate : coché
Dupliquer les ressources.
resource_quick_create : coché
Pour utiliser la création rapide de ressource dans l'arborescence.
resource_quick_update : coché
Pour utiliser la mise à jour rapide de ressource dans l'arborescence.
resource_tree : coché
Voir l'arborescence dans le menu de gauche.
save : coché
Autorisations minimales pour sauvegarder des objets.
save_category : décoché
Sauvegarder des Catégories.
save_chunk : décoché
Sauvegarder des Chunks.
save_context : décoché
Sauvegarder des Contextes.
save_document : coché
Sauvegarder des Ressources.
save_plugin : décoché
Sauvegarder des Plugins.
save_propertyset : décoché
Sauvegarder des jeux de propriétés.
save_role : décoché
Sauvegarder des rôles.
save_snippet : décoché
Sauvegarder des Snippets.
save_template : décoché
Sauvegarder des Modèles.
save_tv : coché
Sauvegarder des Variables de Modèle.
save_user : décoché
Sauvegarder des utilisateurs.
search : décoché
Utiliser la page de recherche.
settings : décoché
Voir et éditer les paramètres système.
sources : décoché
Gérer les Media Sources et types de Media Source.
source_delete : décoché
Supprimer un Media Source.
source_edit : décoché
Modifier un Media Source.
source_save : décoché
Créer ou sauvegarder un Media Source.
Mise à jour du 30.09.2016
source_view : décoché coché
Voir et lister des Media Sources.
steal_locks : décoché
"Forcer" les verrous, pour outrepasser les verrous d'une ressource.
tree_show_element_ids : décoché
Afficher les IDs dans l'arborescence des éléments.
tree_show_resource_ids : coché
Afficher les IDs dans l'arborescence de ressources.
undelete_document : coché
Restaurer les ressources.
unlock_element_properties : décoché
Éditer les valeurs par défaut des propriétés des éléments.
unpublish_document : coché
Dépublier les ressources.
usergroup_delete : décoché
Supprimer des groupes d'utilisateurs.
usergroup_edit : décoché
Modifier les groupes d'utilisateurs.
usergroup_new : décoché
Créer de nouveaux groupes d'utilisateurs.
usergroup_save : décoché
Sauvegarder des groupes d'utilisateurs.
usergroup_user_edit : décoché
Modifier les ressources d'un groupe d'utilisateurs.
usergroup_user_list : décoché
Voir ou lister les utilisateurs d'un groupe d'utilisateurs.
usergroup_view : décoché
Voir les groupes d'utilisateurs.
view : coché
Autorisations minimales pour "voir" les objets.
view_category : décoché
Voir les catégories.
view_chunk : décoché
Voir les Chunks.
view_context : coché
Voir les Contextes.
view_document : coché
Voir les Ressources.
view_element : coché
Obtenir la liste des éléments ou des classes des éléments.
view_eventlog : décoché
Voir les évènements du journal.
view_offline : coché
Voir le site quand il est en mode hors-ligne.
view_plugin : décoché
Voir les Plugins.
view_propertyset : décoché
Voir les jeux de propriétés.
view_role : décoché
Voir les rôles.
view_snippet : décoché
Voir les Snippets.
view_sysinfo : décoché
Voir la page des informations système.
view_template : coché
Voir les Modèles.
view_tv : coché
Voir les Variables de Modèle.
view_unpublished : coché
Voir les ressources non publiées.
view_user : décoché
Voir les utilisateurs.
workspaces : décoché
Utiliser le gestionnaire d'Extensions.
3. Créer le rôle pour l’accès client
Un rôle est, par définition, une position ou un statut que quelqu'un détient dans une certaine situation. Les rôles peuvent être utilisés pour rassembler des utilisateurs dans une position ou un statut parmi un groupe d'utilisateurs. Les rôles dans MODX ont également ce que l'on appelle une "Autorité". C'est une valeur qui peut être n'importe quel entier. Les niveaux d'autorité sont "héritables de haut en bas", c'est à dire qu'un rôle avec une autorité de valeur 1 héritera de toutes les règles assignées qui lui sont assignées, mais également de tous les rôles avec une autorité de valeur supérieure à 1.
Créez votre rôle pour l’accès client comme ci-dessous :
Nom : Accès client
Autorité : 999 (mais c’est à vous de voir selon vos besoins).
Description : Rôle pour l'accès au gestionnaire de site MODX pour les clients.
Une fois triée par autorité vous devriez voir ceci.
4. Créer le nouveau groupe utilisateur
Allez dans l’onglet « Groupes d’utilisateurs » toujours dans « Listes des contrôles d'accès » du menu en haut à droite.
Cliquez sur « Nouveau groupe d’utilisateurs » er remplissez les champs comme ci-dessous.
Nom : Accès client
Description : Groupe d'utilisateurs pour les clients.
Contextes : web,mgr (ajouter mgr pour le manager de MODX)
Règle du manager : sélectionnez votre règle récemment créé « Accès client »
Cochez la case : Créer un groupe de ressources « parallèle »
Créer un groupe de ressources parallèle vous permettra d’afficher ou cacher des ressources selon vos besoins.
Une fois le nouveau groupe d’utilisateurs créé nous allons le modifier, faites un clique droit sur le groupe d’utilisateurs « Accès client » et cliquez sur « Mettre à jour le groupe d’utilisateurs ».
Dans la nouvelle fenêtre de modification de groupe d’utilisateurs vous pouvez voir qu’il est composé de quatre onglets :
- Informations générales
- Utilisateurs
- Configuration
- Autorisations
Allez dans l’onglet « Utilisateurs » et ajoutez votre utilisateur « client » ayant pour rôle « Accès client ».
Puis dans l’onglet « Permissions » où vous pourrez visualiser qu’il y a quatre ou cinq sous onglets à gauche selon votre version de MODX :
- Accès au contexte
- Accès de ce groupe d’utilisateurs
- Accès aux éléments de catégories
- Accès au Média source
- Accès aux espaces de noms
Dans le sous onglet « Accès au contexte » modifié les deux contextes (web,mgr) pour qu’ils aient comme valeur de rôle minimal « Accès client – 999 » et valeur de règle d’accès « Accès client ».
Vous devez avoir les configurations comme sur l’image ci-dessous :
Puis dans le sous onglet « Accès de ce groupe d’utilisateurs » il faut faire quasi de même en modifiant les deux contexte (web,mgr) pour qu’ils aient comme valeur de rôle minimal « Accès client – 999 » et valeur de règle d’accès « Ressource».
Après les modifications, voici le résultat :
4. Tester votre accès client
Pour ma part je préfère utiliser un navigateur différent de celui qui me sert habituellement et qui m’a servi à créer mon accès client.
J’ouvre donc un nouveau navigateur, et j’accède au manager (exemple si vous n’avez pas changé le nom du dossier d’accès à l’interface administrateur http://monsite.fr/manager). Je me connecte avec mon utilisateur « client » et son mot de passe.
Comme vous pouvez le constater il y a une grosse différence avec l’interface utilisateur classique, un grand nombre de choses ont disparu par magie.
Vous pouvez aller beaucoup plus loin en faisant la personnalisation de formulaire, la création d’un « média source » pour votre accès client qui permettra au client de ne voir que le dossier que vous lui attribuez. Et de ce fait l’empêchera de pourvoir modifier des fichiers important comme ceux ce trouvant à la racine de votre site Internet. Mais aussi la création d’un tableau de bord dédié pour votre client. On pourrait également personnaliser en changeant le nom du dossier du gestionnaire, du dossier du cœur de MODX, de sa clés de configuration ou encore le nom du dossier d’accès au manager afin de sécuriser encore plus l’accès.
Tous ces exemples feront l’objet d’autre tutoriels (si j’en ai la possibilité).
J’espère comme d’habitude que ce tutoriel vous aura aidé dans la compréhension de MODX. N’hésitez pas à partager ou commenter cet article ça me fera (très) plaisir !
Partagez cet article
A propos de l'auteur
Passionné d’informatique, de Design, de développement d'application et du Web en général (participation au start-up weekend, hackathon, dev Var, formation Google...), j’ai créé ce site afin de partager mes connaissances sur mon système de gestion de contenu préféré MODX. En espérant participer au développement de la communauté.