Pages enfant
  • SmartLdapGroupStore

Fonctionnement

  • Ce groupStore récupére les groupes depuis la branche groups d'un annuaire LDAP.
  • La notion de sous groupes est conservée.
  • Les personnes membres des groupes ne sont pas affichées.
  • Le service personDir est utilisé pour déterminer l'appartenance d'une personne à un groupe.
  • L'aborescence de groupe est construite au démarrage du portail puis reconstruite régulièrement (paramètre  groupsTreeRefreshIntervalSeconds du fichier SmartLdapGroupStoreConfig.xml).
  • La racine de l'arborescence est SmartLdap ROOT.

Adaptations

Dans un premier temps l'objectif serait de pouvoir retrouver la structure de dossiers définie dans Grouper. Pour retrouver cette hiérarchie l'idée est de décomposer les noms des groupes et de représenter les dossiers Grouper comme des groupes uPortal.

L'idéal serait de modifier uniquement la tâche cernunnos définie dans le fichier init.crn du groupStore.

Dans un deuxième temps, voir s'il est nécessaire d'afficher les personnes membres des groupes, sachant que cette adaptation implique une modification du code java et non plus uniquement de la partie  cernnunos. 

Tests

Pour vérifier la faisabilité et la validité de l'approche ces adaptations ont été faites dans la classe SmartLdapGroupStore. Si les tests sont concluants l'étape suivante sera d'essayer de ne modifier que la partie cernnunos. Pour l'instant cette version ne fonctionne qu'avec les groupes publiés avec le cn du groupe dans la branche people (donc pas avec l'overlay memberOf).

Pour récupérer également les personnes membres des groupes passer à true le flag displayPersonMembers au début de la classe. Seul l'id de la personne est utilisé, il n'y a pas de requête supplémentaire effectuée pour récupérer les autres attributs utilisateurs.

Premiers tests effectués :

  • uPortal 4.0.5
  • Hierarchie de 10000 groupes, 5000 dossiers avec 30000 utilisateurs.
  • Temps de chargement de la structure entre 6 et 8 secondes (sans les personnes membres des groupes).
  • L'utilisation d'un groupe Grouper pour définir l'audience d'un fragment fonctionne par contre on ne peut utiliser un groupe correspondant à un dossier (erreur levée au niveau de la classe GroupMembershipEvaluator lors de la tâche d'import). 
  • Pour cibler les portlets tous les groupes peuvent être utilisés, y compris ceux qui correspondent à des dossiers dans Grouper.
  • Aucune étiquette