Drupal
17/10/2016

Le module Group va-t-il remplacer Organic Groups dans Drupal 8 ?

Credits : AmazeeLabs
Organic Groups a longtemps été un module de référence pour les projets exigeant la création d’espaces collaboratifs publics ou privés. Depuis la sortie de Drupal 8, un module plus jeune s’est affirmé et est en passe de détrôner son prédécesseur : le module Group...

Organic Groups a longtemps été un module de référence pour les projets exigeant la création d’espaces collaboratifs publics ou privés, sous forme de groupes avec un niveau de permission différent selon le rôle. Sa popularité résulte d’abord de son ancienneté, puisque ce module a fait son apparition bien avant Drupal 7, mais également de ses nombreuses fonctionnalités pour la création d’intranet ou d’extranet. Cependant, depuis la sortie de Drupal 8, un module plus jeune s’est affirmé et est en passe de détrôner son prédécesseur : le module Group. Nous avons étudié les raisons d’utiliser Group à la place d’Organic Groups !

Les avantages de Group face à Organic Groups

Organic Groups se base sur le système des entités de Drupal 7 où chaque nœud peut être transformé en groupe et associé à des groupes. Ce module Drupal donne l’illusion que chaque groupe navigue sur un site différent avec une administration distincte et des règles propres pour la gestion des accès. En effet, la configuration d’Organic Groups permet de gérer l’accès ou non à des types de contenu pour certains groupes, avec des droits entre les membres qui seront propres à chaque groupe. Cependant ce module présente vite des limites :

  • Le contenu est regroupé sur un site Drupal unique avec une base de données unique, ce qui signifie que les types de contenu reposent sur la même configuration pour tous les groupes. Hormis le thème, Organic Groups ne permet pas de modifier la configuration principale.
  • Organic Groups suppose une architecture uniforme pour tous les groupes.
  • Des fonctionnalités limitées face aux besoins actuels : Le fait que les types de contenus deviennent eux-mêmes des groupes ne répond pas à tous les besoins en termes de fonctionnalités.
  • Une certaine dépendance : Les contenus et les composants seront nécessairement fournit par d’autre modules, ce qui rend l’utilisation d’Organic Groups dépendante de certains modules.
  • Indisponible dans la dernière version : Le module n’est pas encore porté en Drupal 8.

A la différence d’Organic Groups qui fournit un « mécanisme » de base pour gérer les périmètres de diffusion et de collaboration,  le module Group permet de créer des groupes comme entités à part entière. Chaque groupe peut intégrer des utilisateurs, configurer ses propres rôles et permissions. Le module fournit également une API étendue pour relier les entités à des groupes.  Un coup d’œil sur les nombreux avantages de Groups :

  • Tout est entité : Le module permet de créer des groupes comme des types de contenu avec des champs, des rôles et des permissions. En utilisant la même API que les types de contenus, tout ce que vous pouviez faire avec les champs d’un type de contenu est dorénavant possible dans un type de groupe. De plus, les données sont stockées dans une structure claire et nous permet d’avoir une API très riche.
  • Les permissions : Les permissions sont définies par l’administrateur du site et sont ensuite déléguées vers chaque instance de groupe. Group permet de configurer les permissions pour chaque différent type de groupes. Chaque type de groupes a ses propres types de contenus et ses propres champs configurables.
  • Plusieurs rôles possibles : « Anonymous » (pas de compte sur le site), « Outsider » (l’utilisateur a un compte sur le site mais n’est pas membre) et enfin « Member » (l’utilisateur a un compte et est membre d’un groupe). 
  • Une interface simple d’utilisation : la configuration du module est simple et permet de répondre rapidement aux fonctionnalités souhaitées. 
  • Un module extensible : il est possible d’ajouter un large nombre de hooks dans le code.
  • Orienté objet : la majorité de Group est programmée de manière orientée objet, permettant ainsi de manipuler un code propre et simple pour la configuration.
  • Intégration d’autres modules : Group permet de se combiner avec plusieurs modules : Views, Rules, Title, i18n, et bien d’autres.

La fin d’Organic Groups ? Pas vraiment...

Bien que Group propose des fonctionnalités plus larges et certains avantages par rapport à son prédécesseur Organic Groups, cela ne signifie pas fatalement que ce dernier sera remplacé par Group comme beaucoup peuvent le penser. Bien au contraire, Organic Groups semble avoir encore un long chemin devant lui. Ce module constitute d'une part la base de la distribution très populaire Open Atrium spécialisée dans la création de sites Intranet. Gizra mène d'autre part le projet de portage du module en version 8 et en profite pour le modifier : considérer les utilisateurs et le contenu comme semblables alors que les relations en membres n’ont un sens que pour les utilisateurs. 

En attendant, le module Group est disponible en Drupal 8 pour le bonheur de nombreux développeurs (dont nous). Bien que la version soit en bêta, compte tenu du nombre rassurant de contributeurs et de la vitesse de développement, nous espérons la sortie d’une version officielle du module dans les prochains mois. Puissant, extensible et simple à utiliser, nous l’avons adopté et vous ?