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