(Voici le texte d'une interview réalisé par Tarek pour le site zopeur.com)

(Désolé pour le français ;-) )




1) qu'est ce que GRUF ?

 GRUF  signifie  "GRoup  User  Folder". Il s'agit d'un User Folder pour
 Zope  capable  d'offrir un support pour les groupes. Contrairement aux
 autres  types  d'UserFolder  se basent sur divers supports (ZODB, SQL,
 LDAP,  ...) pour identifier les utilisateurs, GRUF délègue cette tâche
 à  un UserFolder classique. Par exemple, pour utiliser GRUF avec LDAP,
 il  suffit  de coupler GRUF à un LDAPUserFolder tout à fait classique.
 Cette architecture permet de se dispenser de l'écriture de plugins.


2) Quels sont ses particularités / avantages comparé à d'autres produits
 du genre ?

 Avec  GRUF,  aucun  patch n'est fait dans le code de Zope. GRUF est un
 UserFolder classique et n'utilise aucune "magie" pour fonctionner.

 Aucun patch dans Zope n'a été nécessaire ; pas même de MonkeyPatch.

 Dans  l'interface d'administration de GRUF, on crée deux UserFolders :
 un pour les groupes et un pour les utilisateurs. Dans l'UserFolder des
 utilisateurs,  le  groupes  sont affectés aux utilisateurs en tant que
 rôles.

 Dès que l'on sort de GRUF, en revanche, les groupes sont vus comme des 
 utilisateurs  "normaux"  sous  Zope. On peut leur affecter des droits, 
 des rôles locaux, etc.

 C'est cette "astuce" qui fait que GRUF fonctionne directment avec
 toutes les applications Zope, sans rien changer au code source !

 L'architecture  de  GRUF  permet  d'utiliser  des  types  d'UserFolder
 classiques  comme  base  d'utilisateurs  ou  de groupes (le UserFolder
 standard  de  Zope  mais aussi LDAPUserFolder, ExUserFolder, etc). Pas
 besoin de développer et de maintenir des PlugIns !

 Autrement dit, GRUF reste simple dans son principe, totalement intégré
 à  Zope (pas de "hotfixing" de Zope), et compatible avec virtuellement
 tous les types d'UserFolder qui respectent l'API standard de Zope.

 Enfin,  un des points forts de GRUF est son plan de tests... Plusieurs
 centaines de tests pour garantir un maximum de qualité !


3) Dans quelle mesure l'outil peut il s'intégrer à un portail Plone ?

 Depuis  Plone2,  GRUF  est  partie  intégrante  de  Plone.  Des écrans
 spécifiques  ont  été  développés  pour administrer les groupes depuis
 l'interface  de  Plone  mais  en dehors de cet aspect "visuel", aucune
 adaptation  au  niveau  de  la  programmation  n'a été nécessaire pour
 rendre Plone compatible avec GRUF.

 Ni pour rendre GRUF compatible Plone, d'ailleurs ;)

 Depuis  Plone2,  un  "tool"  est  proposé  pour  rendre la gestion des
 groupes  sous  Plone  similaire  à  celle  des  utilisateurs  sous CMF
 (l'équivalent du MembershipTool, mais pour... les groupes !).


4) Et à un autre portail (CMS,Zwook, etc.. ) ? Est-ce que l'outil est
dédié Plone ?

 Depuis  le  départ,  GRUF est un outil _indépendant_ de Plone. Et nous
 nous  efforçons,  à chaque version, de vérifier son bon fonctionnement
 en  dehors  de  Plone.  Puisque  GRUF  ne modifie rien à la logique de
 gestion  des utilisateurs de Zope, il est donc tout à fait possible de
 remplacer  n'importe quel UserFolder pour bénéficier de la gestion des
 groupes.

 Il  est  donc  possible, en théorie, de l'utiliser avec ces outils, si
 ceux-ci  n'utilisent  pas  eux-même du code spécifique à un UserFolder
 particulier.


5) Le futur de GRUF ?

 GRUF3,  qui est encore en phase de qualification, propose une nouvelle
 API  beaucoup  plus  intuitive.  Nous  avons  aussi optimisé certaines
 routines,  notamment  pour  LDAP  (LDAPUserFolder  dispose en effet de
 beaucoup d'optimisations spécifiques).

 GRUF 3 est en phase finale de qualification auprès d'un annuaire de
 90.000 utilisateurs ! ;)

 La  prochaîne  étape  dans GRUF sera la possibilité de restreindre des
 rôles  locaux  : actuellement, Zope ne permet que d'en ajouter, jamais
 d'en  soustraire  - alors que cela pourrait s'avérer bien pratique. Si
 tout va bien, cela sera implémenté dans les prochaînes semaines.
 C'est la notion de "BlackList".

 Nous   avons  également  plein  d'idées  pour  rendre  les  interfaces
 d'administration  des  utilisateurs/groupes,  que  ce soit côté ZMI ou
 côté  Plone,  plus intuitives et agréables. Bref, le travail ne manque
 pas !

 D'ailleurs, n'oublions pas que GRUF est un composant OpenSource, et
 que, à ce titre, tout le monde peut apporter son grain de sel : code,
 idées, écrans, doc, traductions, etc...

 Et  quoi qu'il en soit, nous devons une fière chandèle à la communauté
 Plone  qui  a  testé  intensivement  GRUF,  nous a aidé pour certaines
 parties,  nous  a envoyé des patches et des idées... C'est là toute la
 force d'une communauté soudée !

