diff --git a/src/graphql/typeDefs/actions.graphql b/src/graphql/typeDefs/actions.graphql index ff55539cae8778ca3114dc9029ccb34506255bf9..35fc3211528eff3eb9258556a9a7a4bb7c726bf0 100644 --- a/src/graphql/typeDefs/actions.graphql +++ b/src/graphql/typeDefs/actions.graphql @@ -33,7 +33,6 @@ type Query { # Correspondrait au sous-champ "viewerOf" de User, volontairement non-défini comme tel. Tous les autres cas de figure sont couverts par les sous-champs "<permission>Of" de User allGroups: [Group] allSimpleGroups: [SimpleGroup] - supervisorOf: [Group] # TOL searchTOL( @@ -59,19 +58,22 @@ type Mutation { Par rapport à un groupe donné, un user peut avoir différents niveaux de droits : - none : ne sait meme pas que le groupe existe, aucun autre droit (typiquement, une connection où l'utilisateur ne s'est pas authentifié) - authenticated : sait que le groupe existe, aucun autre droit (une connection on-platal sans auth, ou une connection authentifiée) - - viewer : le user a aussi accès à l'activité publique du groupe : frontpage, Q&A, liste des membres, speakers et admins - - member : le user a aussi acces à l'activité interne du groupe : les PrivatePost, ainsi que les Message dont le groupe est auteur ou destinataire + - viewer : le user a aussi accès à l'activité publique du groupe : frontpage, Q&A, liste des membres, speakers et admins, Message dont le groupe est destinataire + - member : le user a aussi acces à l'activité interne du groupe : les PrivatePost, ainsi que les Message dont le groupe est auteur - speaker : le user peut aussi parler au nom du groupe. Il a le droit de publier des annonces et d'organiser des évènements - admin : le user a tous les droits sur le groupe - - supervisor : le user est admin du parent du groupe et peut donc intervenir dans ce groupe (il est par défaut 'viewer' mais peut prendre les droits d'admin arbitrairement) Un des rôles du *graphe organique des groupes* est de définir le niveau de droit des users pour chaque groupe. - D'abord, petit détail de terminologie : les cinq niveaux de droits sont inclus les uns dans les autres (un speaker est aussi un viewer, par ex.) (sauf pour supervisor qui n'est pas admin par défaut) + D'abord, petit détail de terminologie : les cinq niveaux de droits sont inclus les uns dans les autres (un speaker est aussi un viewer, par ex.) (sauf pour les permissions héritées) - Les conditions pour qu'un user soit membre, speaker ou admin sont claires, puisque cette information est stockée directement en BDD. - - Un user non-membre est viewer du groupe G : + - Un user est viewer du groupe G : + - s'il est admin, speaker ou member d'un des descendants de G dans le LDAP. - s'il est membre d'un groupe immédiatement parent de G (one-edge-down visibility), ou - s'il est membre d'un groupe faisant partie du champ "visibilityEdge" de G - s'il est membre d'un métagroupe dont G est membre (implicit visibility-edges). + - Un user est membre d'un groupe G s'il est membre, speaker ou admin d'un des descendants de G dans le LDAP. + - Un user est speaker d'un groupe G s'il est speaker ou admin selon le LDAP. + - Un user est admin d'un groupe G s'il est admin d'un des ascendants de G dans le LDAP. - Dans tous les autres cas, le user a le niveau de droits "none". L'autre rôle du *graphe organique des groupes* est de permettre l'administration "en cascade" des groupes enfants. @@ -268,8 +270,4 @@ type Mutation { censorAnnouncement(announcementToCensor: ID!): Boolean censorEvent(eventToCensor: ID!): Boolean - # Superviser mutations - takeAdminRights(forGroup: ID!) : Boolean - releaseAdminRights(forGroup: ID!) : Boolean - }