Gestion de Groupe avec Taxonomie

Taxonomy Access Control


Contrôle d’accès pour les rôles d’utilisateur en fonction des catégories de la taxonomie (de vocabulaire, termes).

http://drupal.org/project/taxonomy_access


  • Contrôle automatiquement l’accès aux nœuds (en fonction de leurs termes de taxonomie).
  • page de configuration pour chaque rôle d’utilisateur.
  • Trois types d’autorisation de nœuds d’accès: View, Update, Delete.
  • Deux types d’accès à long terme: View tag, Add tag.

Taxonomy menu


Transforme les vocabulaires de taxonomie vers les menus en toute simplicité!

http://www.drupal.org/project/taxonomy_menu


Exemple de Gestion de Groupes


Dans ce développement, je remplace le terme Groupes par le terme Dialogues


  • La plupart des Dialogues son « Public »,

     les contenus sont visibles anonymement,  il s’agit de programme d’événements, de compte-rendu, ou de rendez-vous et agenda.
  • Quelques Dialogues sont « Restreint »,

     ces contenus demandent une inscription pour être visible.
  • Les Dialogues suivant sont « Privé », ces contenus demandent une appartenance a l’un des Groupes de Dialogues pour être visible :
    • Réseau international des Dialogues
    • Lyon (France)
    • Dialogues en humanité L’association
    • Dialogue VoCE 2014 – 2018
    • Aide pour Dialogues

Créer une page listant tous les termes du vocabulaire


Contenu » Ajouter du contenu » Créer Page de base


Titre «Tous les Dialogues»
Body
Format de texte «PHP code»


<?php
$name = 'dialogues';
$myvoc = taxonomy_vocabulary_machine_name_load($name);
$tree = taxonomy_get_tree($myvoc->vid);
foreach ($tree as $term) {
 $name = $term->name;
 $tid = $term->tid;
 echo $tid . '<h2><a href=" ' .url('taxonomy/term/' . $tid). ' "> ' .$name. '</a></h2>';
 echo $term->description .'<br />';
}
?>


Structure » Menus » Menu principal


Créer un menu (1er niveau donc non cliquable)
Ajouter un lien

Titre du lien dans le menu
«Les Dialogues»
Chemin «node/2» (lien vers la page précédente)
Description «Liste de tous les Dialogues dans le Monde»

Coché Activé et Afficher déplié


Ajouter un lien identique au précédent (2eme niveau donc cliquable)
Titre du lien dans le menu «Tous les Dialogues»
Chemin «node/2» (lien vers la page précédente)
Description «Liste de tous les Dialogues dans le Monde»

Coché Activé


Accès


Structure » Taxonomie


Déclarer les niveaux d’accès en utilisant un vocabulaire.
Créer un nouveau vocabulaire
Nom «Access»
Description «Gestion des accès»
Ajouter les termes suivants:


  1. Tout le monde (Public) - Un document marqué comme «Tout le monde» sera visible pour n’importe qui dans le monde (les utilisateurs anonymes)
  2. Les membres inscrit (Restreint) - visible uniquement pour les utilisateurs authentifiés
  3. Les membres du Dialogue (Privé) - seuls les membres du groupe peuvent le voir

Classer les termes de la même manière

Plus loin, nous installerons ce vocabulaire dans nos type de contenu, vérifier la case à cocher «Champ requis» - afin que chaque contenu ai au moins un niveau d’accès.


Groupes de Dialogues


Structure » Taxonomie


Définir un autre vocabulaire qui contiendra tous nos groupes
Nom «Dialogues»
Description «Dialogues dans le monde»


Taxonomy menu
Emplacement du menu

- Tous les Dialogues (lien vers le menu précédent)
Markup options

x Display HTML title attributes on menu links.

x HTML title: Use description of the taxonomy term.


Ajouter les termes suivants:


  • Réseau international des Dialogues
  • Lyon (France)
  • Dialogues en humanité L’association
  • Dialogues VoCE 2014 – 2018
  • Aide pour Dialogues

Installer dans tous les types de contenu que vous souhaitez classées avec ce vocabulaire. Ne pas cochez la case «sélection multiple» - trop compliqué de gérer un nœud avec plus d’un groupe (dans le cas où vous voulez que votre contenu soit disponible à plus d’un groupe).


Créer les rôles et les utilisateurs.


Avant de définir la politique d’accès, il faut ajouter un élément de plus: Rôles.

Si nous permettons à un utilisateur authentifié de créer des contenus. Choisir quel type de contenu sera autorisé, et dans quels groupes de Dialogues.


Il doit y avoir une relation un-à-un entre les termes de notre vocabulaire Dialogues et le rôle correspondants. Nous avons besoin d’un rôle pour les groupes dont nous souhaitons restreindre l’accès.


Personnes » Droits » rôles


et ajouter les nouveaux rôles:


  • Réseau international des Dialogues
  • Lyon (France)
  • Dialogues en humanité L’association
  • Dialogues VoCE 2014 – 2018

L’attribution d’un rôle à un utilisateur, rend cet utilisateur membre du Groupe correspondant.

Ces groupes sont de simples étiquettes pour l’instant.


Contrôle d’accès de rôle avec le module de taxonomy_access


Configuration » Personne » Taxonomy access control


Vous devriez voir une liste de rôles enregistrés dans votre système.

Commencez par lire la documentation du module, qui vous aidera à comprendre mieux les choses.


Autorisations pour utilisateur anonyme.


Règle:

Par défaut, un utilisateur anonyme n’a aucun accès aux contenus des groupes, sauf pour le contenu «Public»


Cliquer «Configurer» à côté de «utilisateur anonyme»

Si Access control est disabled. Cliquer «Enable attend valid email.»


Voir: l’utilisateur peut voir les contenus avec ce terme
Mise à jour: l’utilisateur peut éditer les contenus avec ce terme
Supprimer: l’utilisateur peut supprimer les nœuds avec ce terme
ADD TAG: l’utilisateur peut ajouter ce terme à un contenu
VIEW TAG: l’utilisateur peut voir le terme quand il regarde le contenu


Global defaut (règle pour les noeuds non marqué)

Réglez


|   Voir    | MiseAjour | Supprimer |  Add Tag  | View Tag  |
| Autoriser |  Ignorer  |  Ignorer  | Autoriser | Autoriser |


Ajouter un vocabulaire
Access

Appuyez «Ajouter»


Réglez (pour les noeuds marqué par ce terme)


|   Terme  |   Voir  | MiseAjour | Supprimer |   Add Tag  | View Tag |
|Par défaut| Refuser |  Ignorer  |  Ignorer  |  Refuser   | Refuser  |


C’est la politique d’accès par défaut d’un utilisateur anonyme. Nous devons refuser l’accès de l’utilisateur à tout contenu «Restreint» et «Privé». Mais nous devons donner l’autorisation de voir le contenu de la catégorie «Public». Ainsi, nous devons définir une exception à la règle «par défaut» ci-dessus.


Ajouter un terme

Sélectionner ou ajouter l’élément «Public»

Réglez (pour les noeuds marqué par ce terme)


|   Voir    | MiseAjour | Supprimer | Add Tag |  View Tag |
| Autoriser |  Ignorer  |  Ignorer  | Refuser | Autoriser |


Appuyez «Ajouter»


Appuyez «Tout enregistrer»


Si avec le module Login Toboggan utilise un rôle pré-authentifié «attend valid email» avec rigoureusement les mêmes droits qu’un utilisateur «anonyme» définir la règle «atend valid email» identique à «utilisateurs anonyme»


Autorisations pour les utilisateurs authentifiés


Règle:

L’utilisateur authentifié est autorisé à accéder, créer et lister le contenu «public» et «restreint», mais pour le contenu «Privé» il doit être membre du groupe.

Les utilisateurs doivent connaître tous les groupes existence.


Global defaut (règle pour les noeuds non marqué)

Réglez


|   Voir    | MiseAjour | Supprimer |  Add Tag  |  View Tag |
| Autoriser |  Ignorer  |  Ignorer  | Autoriser | Autoriser |


Ajouter un vocabulaire
Access

Appuyez «Ajouter»


Réglez (pour les noeuds marqué par ce terme)


|   Terme  |    Voir   | MiseAjour | Supprimer |  Add Tag  |  View Tag |
|Par défaut| Autoriser |  Ignorer  |  Ignorer  | Autoriser | Autoriser |


C’est la politique d’accès par défaut d’un utilisateur authentifié.

Nous devons autoriser l’accès de l’utilisateur à tout contenu «Public» et «Restreint». Mais nous devons enlever l’autorisation de voir le contenu «Privé». Ainsi, nous devons définir une exception à la règle «par défaut» ci-dessus.


Ajouter un terme

Sélectionner ou ajouter l’élément «Public»

Réglez (pour les noeuds marqué par ce terme)


|    Voir   | MiseAjour | Supprimer | Add Tag | View Tag |
| Autoriser |  Ignorer  |  Refuser  | Refuser |  Refuser |


Appuyez «Ajouter»


Ajouter un terme

Sélectionner ou ajouter l’élément «Restreint»

Réglez (pour les noeuds marqué par ce terme)


|    Voir   | MiseAjour | Supprimer |  Add Tag  |  View Tag |
| Autoriser |  Ignorer  |  Refuser  |  Refuser  |   Refuser |


Ajouter un terme

Sélectionner ou ajouter l’élément «Privé»

Réglez (pour les noeuds marqué par ce terme)


|  Voir   | MiseAjour | Supprimer |  Add Tag  |  View Tag |
| Refuser |  Refuser  |  Refuser  |  Refuser  | Autoriser |


Appuyez «Ajouter»


Appuyez «Tout enregistrer»


Permissions pour les groupes.


Règle:

L’accès pour les membres d’un groupe doit être conformes à la politique définie pour le rôle «utilisateur authentifié». Mais en plus, les membres doivent être en mesure d’accéder, de créer et de lister les contenus «Privé» attribué à un groupe dont ils sont membres.


Un utilisateur ne peut pas devenir un membre du groupe s’il n’est pas enregistré sur le site.

Une fois qu’un utilisateur s’enregistre et se joint à un groupe, l’utilisateur reçoit les autorisations données au rôle «utilisateur authentifié» plus ceux donnés aux «Dialogues» auxquels il s’inscrit.


Nous définissons pour l’exemple les accès pour le rôle/groupe «Lyon (France)».

Si Access control est disabled. Cliquer «Enable attend valid email.»


Global defaut (règle pour les noeuds non marqué)

Réglez


|   Voir    | MiseAjour | Supprimer |  Add Tag  |  View Tag |
| Autoriser |  Ignorer  |  Ignorer  | Autoriser | Autoriser |


Ajouter un vocabulaire
Access

Appuyez «Ajouter»


Réglez (pour les noeuds marqué par ce terme)


|   Terme  |  Voir   | MiseAjour | Supprimer |  Add Tag |  View Tag |
|Par défaut| Ignorer |  Ignorer  |  Ignorer  | Refuser  | Autoriser |


Ajouter un terme

Sélectionner ou ajouter l’élément «Privé»

Réglez (pour les noeuds marqué par ce terme)


|    Voir   | MiseAjour | Supprimer |  Add Tag  |  View Tag |
| Autoriser | Autoriser | Autoriser | Autoriser | Autoriser |


Appuyez «Ajouter»


Nous devons autoriser l’accès de l’utilisateur à tout contenu «Privé». Pour le vocabulaire suivant.


Ajouter un vocabulaire

Dialogue


Appuyez «Ajouter»


Réglez (pour les noeuds marqué par ce terme)


|   Terme  |  Voir   | MiseAjour | Supprimer | Add Tag | View Tag  |
|Par défaut| Refuser |  Refuser  |  Refuser  | Refuser | Autoriser |


Notre règle nécessite que l’utilisateur ne doit pas être autorisé dans un groupe dont il n’est pas membre.

Mais un utilisateur doit être en mesure d’accéder, créer et mettre à jour le contenu de son groupe.


Ajouter un terme

Sélectionner ou ajouter l’élément «Lyon (France)»

Réglez (pour les noeuds marqué par ce terme)


|   Voir    | MiseAjour | Supprimer |  Add Tag  |  View Tag |
| Autoriser | Autoriser | Autoriser | Autoriser | Autoriser |


Appuyez «Ajouter»


Appuyez «Tout enregistrer»


Si vous voulez que les membres du groupe ne puissent modifier que leur contenu, vous pouvez définir à Ignorer «Mettre à jour» dans ce groupe.

Ou définir un nouveau rôle (Lyon (France)-admin).


Types de contenu avec gestion d’accès pour les membres:


Structure » Types de contenu » [Type de Contenu] » Gérer les champs


Ajouter un nouveau champ «Pour quel(s) Dialogue(s)»

field_dialogue_s_‎ Modifier en dialogue

«champ Référence à un terme» «Liste de sélection»
Enregistrer

Paramètres du champ

Vocabulaire


dialogues
Enregistrer les paramètres du champ


Décoché Champ requis
Texte d’aide Associer avec un ou plusieurs Dialogues
Valeur par défaut Aucune
Nombre de valeurs illimité
Vocabulaire Dialogues
Enregistrer les paramètres


Ajouter un nouveau «Access» «champ Référence à un terme» «Liste de sélection»
Enregistrer

Paramètres du champ

Vocabulaire


Access
Enregistrer les paramètres du champ

Coché Champ requis
Texte d’aide Visibilité du contenu
Valeur par défaut Restreint
Nombre de valeurs 1
Vocabulaire Access
Enregistrer les paramètres


Gérer les champs
Déplacer les nouveau champs sous Body
Enregistrer


Gérer l’affichage
Par défaut
Déplacer le champ Access sous Caché

Trier les autres champs


Body

Tags (pour les articles)

Dialogues(s)

Document


N’oubliez pas que vous devez reconstruire les autorisations d’accès pour les pages existantes afin de valider les modifications.


Pour les autres types de contenu


Ajouter un champ existant

Dialogues(s)
Texte d’aide Associer avec un ou plusieurs Dialogues

et Access
Texte d’aide Visibilité du contenu