Grouper:Alimentation des groupes
Un article de Wiki ESCO-Portail.
Sommaire |
DOCUMENTATION OBSOLETE
Interface de création et d'alimentation des groupes
Les objectifs sont :
- Permettre la création et l'alimentation des groupes d'établissement et inter-établissements à partir du fichier XML provenant de l'Annuaire Fédérateur.
- Autoriser la création de groupes correspondants aux rôles applicatifs. Dans un premiers temps ces rôles applicatifs seront utilisés pour :
- Définir les droits dans Grouper.
- Définir les droits dans Sarapis.
- Peupler certaines applications (e. g. Moodle) via Sarapis.
Pour répondre à ces objectifs il est nécessaire de :
- Définir une arborescence de base dans Grouper pour les groupes d'établissement et inter-établissements.
- Définir une arborescence de base pour les rôles applicatifs.
- Spécifier une interface permettant de créer, de peupler puis d'exploiter ces groupes.
- Définir un ensemble de règles organisationnelles, par exemple pour le positionnement des droits dans Grouper.
Remarque: l'existance d'un utilisateur dans le LDAP est un prérequis à son ajout en tant que membre dans un groupe.
Groupes d'établissement et inter-établissements
Il s'agit de créer et peupler ces groupes, l'utilisation se faisant via LDAP (ou le GroupStore pour le portail).
Structure dans Grouper
La structure proposée pour ces groupes est la suivante :
Interfaces associées
GrouperOperationResultDTO addStudentToClass(final String establishmentUAI, final String establishmentName, final String level, final String className, final String classDescription, final String userId);
Fonctionnement :
- Création des espaces de noms correspondant à l'établissement, si nécessaire (pour les groupes et pour l'administration locale).
- Lors de la création de l'espace de noms les droits d'administration Grouper sont donnés au groupe d'administration locale correspondant.
- Création du groupe Tous_EtablissementX, si nécessaire.
- Création du groupe Elèves, si nécessaire.
- Lors de la création, le groupe est ajouté comme membre de Tous_EtablissementX.
- Création de l'espace de noms correspondant au niveau, si nécessaire.
- Création du groupe Tous_NiveauY, si nécessaire.
- Création du groupe Tous_ClasseZ, si nécessaire.
- Lors de sa création, le groupe Tous_ClasseZ est ajouté au groupe Tous_NiveauY.
- Création du groupe correspondant à la classe si nécessaire.
- Lors de sa création, le groupe est ajouté à Tous_ClasseZ et à Elèves.
- Ajout de l'élève dans le groupe de la classe.
- Retourne la clé correspondant au groupe crée (ici celui correspondant à la classe), s'il n'y a pas eu d'erreur ; l'exception dans le cas contraire.
GrouperOperationResultDTO addTeacherToClass(final String establishmentUAI, final String establishmentName, final String level, final String className, final String classDescription, final String userId);
Fonctionnement :
- Création de l'espace de noms correspondant à l'établissement, si nécessaire.
- Lors de la création de l'espace de noms les droits d'administration Grouper sont donnés au groupe d'administration locale correspondant.
- Création du groupe Tous_EtablissementX, si nécessaire.
- Création du groupe Profs, si nécessaire.
- Lors de la création, le groupe est ajouté comme membre de Tous_EtablissementX.
- Création de l'espace de noms correspondant au niveau, si nécessaire.
- Création du groupe Tous_NiveauY, si nécessaire.
- Création du groupe Tous_ClasseZ, si nécessaire.
- Lors de sa création, le groupe Tous_ClasseZ est ajouté au groupe Tous_NiveauY.
- Création du groupe Profs_Classez si nécessaire.
- Lors de sa création, le groupe est ajouté à Tous_ClasseZ et à Profs.
- Ajout de l'enseignant dans le groupe Profs_ClasseZ.
- Retourne la clé du groupe Profs_ClasseZ, s'il n'y a pas eu d'erreur ; l'exception dans le cas contraire.
GrouperOperationResultDTO addParentToEstablishment(final String establishmentUAI, final String establishmentName, final String userId);
Fonctionnement :
- Création de l'espace de noms correspondant à l'établissement, si nécessaire.
- Lors de la création de l'espace de noms les droits d'administration Grouper sont donnés au groupe d'administration locale correspondant.
- Création du groupe Tous_EtablissementX, si nécessaire.
- Création du groupe Parents, si nécessaire.
- Lors de la création, le groupe est ajouté comme membre de Tous_EtablissementX.
- Ajout du parent dans le groupe Parents.
- Retourne la clé du groupe Parents, s'il n'y a pas eu d'erreur ; l'exception dans le cas contraire.
GrouperOperationResultDTO addTOSToEstablishment(final String establishmentUAI, final String establishmentName, final String userId);
Fonctionnement :
- Création de l'espace de noms correspondant à l'établissement, si nécessaire.
- Lors de la création de l'espace de noms les droits d'administration Grouper sont donnés au groupe d'administration locale correspondant.
- Création du groupe Tous_EtablissementX, si nécessaire.
- Création du groupe TOS, si nécessaire.
- Lors de la création, le groupe est ajouté comme membre de Tous_EtablissementX.
- Ajout du personnel TOS dans le groupe TOS.
- Retourne la clé du groupe TOS, s'il n'y a pas eu d'erreur ; l'exception dans le cas contraire.
GrouperOperationResultDTO addAdministrativeToEstablishment(final String establishmentUAI, final String establishmentName, final String userId);
Fonctionnement :
- Création de l'espace de noms correspondant à l'établissement, si nécessaire.
- Lors de la création de l'espace de noms les droits d'administration Grouper sont donnés au groupe d'administration locale correspondant.
- Création du groupe Tous_EtablissementX, si nécessaire.
- Création du groupe Administratifs, si nécessaire.
- Lors de la création, le groupe est ajouté comme membre de Tous_EtablissementX.
- Ajout du personnel administratif dans le groupe Administratifs.
- Retourne la clé du groupe Administratifs, s'il n'y a pas eu d'erreur ; l'exception dans le cas contraire.
Des méthodes symétriques permettent au service appelant de supprimer d'anciennes appartenances, par exemple si un élève change d'établissement.
Ces méthodes ne gèrent que les appartenances et ne suppriment pas les groupes.
GrouperOperationResultDTO removeStudentFromClass(final String establishmentUAI, final String establishmentName, final String level, final String className, final String userId); GrouperOperationResultDTO removeTeacherFromClass(final String establishmentUAI, final String establishmentName, final String level, final String className, final String userId); GrouperOperationResultDTO removeParentFromEstablishment(final String establishmentUAI, final String establishmentName, final String userId); GrouperOperationResultDTO removeTOSFromEstablishment(final String establishmentUAI, final String establishmentName, final String userId); GrouperOperationResultDTO removeAdministrativeFromEstablishment(final String establishmentUAI, final String establishmentName, final String userId);
Groupes pour les rôles applicatifs
Il s'agit de pouvoir créer ces groupes, de lister leur membres et de lister les rôles pour un utilisateur donné. Leur peuplement se fera via l'interface Grouper ou par scripts.
Structure dans Grouper
La structure proposée pour ces groupes est la suivante :
Interfaces associées
GrouperOperationResultDTO createGlobalRole(final String applicationName, final String globalRoleName);
Fonctionnement :
- Création de l'espace de noms correspondant à l'application, si nécessaire.
- Création du groupe correspondant au rôle.
GrouperOperationResultDTO createLocalRole(final String applicationName, final String establishmentUAI, final String establishmentName, final String localRoleName);
Fonctionnement :
- Création de l'espace de noms correspondant à l'application, si nécessaire.
- Création de l'espace de noms correspondant à l'établissement, si nécessaire.
- Création du groupe correspondant au rôle.
GrouperOperationResultDTO createLocalRole(final String applicationName, final String establishmentUAI, final String establishmentName, final String category, final String localRoleName);
Fonctionnement :
- Création de l'espace de noms correspondant à l'application, si nécessaire.
- Création de l'espace de noms correspondant à l'établissement, si nécessaire.
- Création de l'espace de noms correspondant à la catégorie si nécessaire (e. g. classe).
- Création du groupe correspondant au rôle.
L'exploitation des rôles se fera via les méthodes suivantes :
GrouperDTO[] getMembersForGobalRole(final String applicationName, final String globalRoleName); GrouperDTO[] getGobalRolesForUser(final String applicationName, final String globalRoleName, final String userId); Boolean isMemberOfGlobalRole(final String applicationName, final String gloablRoleName, final String userId); GrouperDTO[] getMembersForLocalRole(final String applicationName, final String establishmentUAI, final String establishmentName, final String localRoleName); GrouperDTO[] getLocalRolesForUser(final String applicationName, final String establishmentUAI, final String establishmentName, final String localRoleName, final String userId); Boolean isMemberOfLocalRole(final String applicationName, final String establishmentUAI, final String establishmentName, final String localRoleName, final String userId);
Ebauche d'estimation volumétrique pour la branche Etablissements
Nombre d'espaces de noms = nb_établissements * nb_niveaux
Nombre de groupes = nb_établissements * (6 + nb_niveaux + 3 * nb_moyen_classes_par_établissement)

