This week: Group // Drupal 8 has more and more features available practically every day. Alongside module migrations and new projects, the Drupal community’s latest major release also offers new ways of solving common problems. Some functionality has moved to Drupal core and new modules have taken up the torch along the way. In this series, the Acquia Developer Center is profiling useful solutions--modules, themes, distros, and more--available for Drupal 8.
Kristiaan Van den Eynde (kristiaanvandeneynde) has been working with Drupal, “since its fifth incarnation and started developing for it with the release of Drupal 7. Since then, I’ve actively contributed to code and the community, speaking at various Drupal events, and writing modules and core patches.”
What does the Drupal 8 Group do?
Group is a powerful module that allows you to take Drupal’s one-level permission system and turn it into a layered one. You can divide your site into smaller sections which each have their own role and permission system--effectively creating a micro-site ecosystem. It can also be used to make parts of a website private; only accessible by a specific group of people.
As of early 2017, roughly 985 Drupal 7 sites and 1080 Drupal 8 sites report using Group. Adoption has been steadily increasing, in part thanks to adoption by the Drupal 8 Open Social distribution, a replacement for the Drupal 7 Commons community-building distribution.
Who benefits from the Drupal 8 Group module?
“Developers benefit from Group by having a proper data model in place with the simplest possible API, despite the complexity of the concept. Other solutions depend on data structures from other modules; Group tries to stand on its own. I firmly believe that Group’s approach is the way forward.”
“Site owners and businesses get a powerful, yet cheap tool to micro-manage site access and permissions. By cheap, I mean that Group was built with end users and site builders in mind. So even though it has a strong developer experience, our aim was always making a zero-code approach possible, too. Being able to click together what you need without calling in a developer, can significantly reduce the implementation time and costs significantly.”
And the Drupal community? What do we get? Kristiaan explains, “A kick-ass tool developed to facilitate an otherwise complex user story.” :-)
When and why was Group created?
“Toward the end of 2012, at the AP university college in Antwerp, Belgium, we were trying to create an academic portal with Drupal 7. The only available solution to the access and permissions problem at the time was Organic Groups. We quickly got annoyed by OG’s user- and developer-experience and after having run into a few major bugs, we decided to try and roll our own solution with a clean data structure and better experience all around. Group was born!”
Has Drupal 8 changed Group?
“Massively!” exclaims Kristiaan. “Because of the complexity of this problem space, there were many times when I ran into Drupal 7’s limitations. Almost all of the roadblocks I faced back then have been solved in Drupal 8, so I decided to rewrite the entire module from scratch rather than trying to upgrade it. The result is a conceptually-similar D8 module on the outside, but a release that is radically different under the hood.
“When I joined Deeson as a developer, they were really keen to support the module and I’ve been developing it there as part of our open source contribution program ever since. One practical benefit of having company time to work on the module is that whereas the Drupal 7 version took several years to complete, the initial Drupal 8 release only took me about three months to develop. This is a big payoff for our agency and the Drupal community.”
The process of rebuilding Group’s functionality in Drupal 8 was hard; it was a real challenge. Right after Drupal 8 came out, there wasn’t much API documentation or examples available. Group needs to touch pretty much every API there is in Drupal to set up access and permissions--and content types, user roles, and so on--across groups. If you look at it as a trial-by-fire, I got the chance to dig into code quite a bit and came out of it a better developer ... I also wasn’t shy about asking for help on IRC when I really got stuck.
Thank you!
I would like to thank Daniel Wehner, Wim Leers and Larry Garfield for all of their help and patient explanation along the way.
Thanks again to my employer, Deeson, without whom Group for Drupal 8 might never have seen the light of day ... certainly not as quickly as it did!
Resources
- Group project on Drupal.org
- Group for D8 managing groups has never been more awesome - Drupal Camp London presentation (video and slides) - Kristiaan Van den Eynde, 2016
- 9 reasons Group for Drupal 8 is awesome - Deeson blog, 2016
- Drupal 8 Group Module Overview video - drupaleasy, 2016
- Group Module - Modules Unraveled podcast, 2016
- How does the permissions system work in the Group module for Drupal? - Deeson blog, 2016
- Group - an alternative to Organic Groups - Deeson blog introductory post, 2015
- Get paid time to contribute to open-source projects - Deeson blog, 2016
PS
“I was really pleased when Dries tweeted about how nice the Open Social UX looks. Given that Open Social runs on Group, I feel that’s actually a feather in our cap as well. It’s so great to be part of open source and make things like this possible.”
Open Social, a Drupal 8 Distribution https://t.co/jWto3Rr7zU Their UX looks really nice!
— Dries Buytaert (@Dries) July 8, 2016