ANNAI magazine
Table of content

We collaborated with Factorial, the web agency based in Germany, to develop the Subgroup module, which allows the Group module* to handle hierarchies. In the process, we also sponsored the able release of the Group module, which has been in development for several years.

The actual development effort was undertaken out by Kristiaan van Den Eynde, the maintainer of the Group module.

*The Group module allows Drupal site administrators to configure complex access controls which cannot be realised with the roles and permissions features of the Drupal core. 

Developing the Subgroup module

Development process

At the beginning of the project, we didn't only communicate the requirements to the developer, but also the reasons we needed the feature and the problems the system needs to solve so the requirements can be adequately reflected on the architecture.

From the beginning of the project, our intention was to make the deliverable open-source; therefore, the solution needed to be highly generic. At times we had to make a difficult decision to drop some features which were peculiar to our needs.

The project was managed in an agile method. Each story was given a priority and we started with the essential features.

API-driven, with a wide test coverage

Often Drupal modules have processes that are form-dependent, which cause issues when writing tests, as well as making the features available via API. The Subgroup module was built with the API-first approach to maintaining a clean separation of the form and the functionality. This allowed the developer to easily write unit tests and detect regressions whenever erroneous code was added.

How the Group module help make Drupal better

The Group module is indispensable for building sites with a large number of users with complex access control, such as enterprises and universities. Such access checks require enormous calculations and caching of the results of the calculation is essential for the site's performance. The Group module's maintainer Kristiaan noticed that Drupal core's caching mechanism was not efficient so built the VariationCache module that replaces the entire caching mechanism of Drupal core, which he did a presentation on at Drupalcon Amsterdam 2019. This has been highly regarded by core contributors and is expected to eventually replace the core's caching system.

Through his work related to the stable release of the Group module, several core patches, as well as patches that will eventually land in the core, were produced. 


If you are interested in reading about this endeavour from Kristiaan's perspective, here's the link to his blog post:…

Mori Sugimotoの写真

The author of this post: Mori Sugimoto

Since 2006, Mori has been involved in a number of large-scale Drupal projects in the US/Europe as a developer, architect and consultant.

He has been actively contributing to the Drupal community by:
- Translating Drupal core into Japanese
- Organising Drupal events and meetups
- Volunteering and presenting at Drupalcons
- Acting as a coordinator of the Drupal Security Team

Mori is based in Utrecht, the Netherlands.