Certain

If possible

  • Support grouping config entities out of the box
  • Main module should evolve more into an API with more, smaller, submodules: Advanced outsider, content translation, etc. (all possible after decorated handlers land).

Nice-to-have

  • Allow permission calculators to "ban" permissions during permission building
  • Generic plugin that supports all entity types so no code needs to be written for simple entities

Will add more as I come up with them.

Feel free to suggest more in the comments, but please refrain from adding to the issue summary.

Comments

kristiaanvandeneynde created an issue. See original summary.

kristiaanvandeneynde’s picture

Issue summary: View changes

Just realized we can't sync Anonymous, Outsider and Member. But we can still write a more robust synchronizer for the other roles.

kristiaanvandeneynde’s picture

Issue summary: View changes
chrissnyder’s picture

How about revisions on group entities (#2829966: Support for Revisions on groups)? This would allow for content moderation workflows, etc.

ipa 🍺’s picture

+1 for #4: Support for revisions

jnicola’s picture

Hey Kristian, could you elaborate on "Find someone nice enough to close all D7 issues with a template message"

We've got an intern. Perfect task for her and a great way for her to get more familiarity with Drupal.

kristiaanvandeneynde’s picture

Re #6 I stopped supporting the D7 version when I released the full D8 version because:

  • It has zero test coverage
  • The architecture was massively different making backports of fixes near impossible
  • D7 is EOL (and D8 will soon be too)
  • I simply don't have the time :)

So by marking the D7 version as unsupported, it vanished from the main page. Usage has since been steadily declining below 1k reported installs (down to 800 now) whereas the D8 version has 10k reported installs.

At this point, I would go over all D7 issues (about 160 of them) and close them with a Closed (outdated) message along the lines of:
"We thank everyone for their collaboration on this issue, but as the D7 version is no longer supported, we will now close all D7 issues to keep the issue queue a bit tidier. This information won't go anywhere, it just won't show up on the list of open issues anymore."

soul88’s picture

Version: 8.x-1.x-dev » 2.0.x-dev

Since 2.x branch is tagged (yay!) I think it's more reasonable for this issue to live under the 2.x version.

kristiaanvandeneynde’s picture

Good call :)

soul88’s picture

@kristiaanvandeneynde, is there a chance you have some timeline you could share for the 2.x version of the module. I start developing a new site that will take several months to build, so it would be great to know if it's worth trying 2.x now or wait until it's stable.

P.S. I also closed most of the 7.x issues. I only didn't touch those in the RTBC/Needs review state. There are 14 of them left. Please tale a look at them when you have a moment.

kristiaanvandeneynde’s picture

@Soul88 I noticed, thanks a lot for that! The timeline for 2.0.x is "not anytime soon". It's something I want to kickstart over the summer and then slowly work on in parallel to 8x.-1.x until it's ready. Maybe Q4 2021, but your guess is as good as mine.

soul88’s picture

Got it, thanks!

alphawebgroup’s picture

@kristiaanvandeneynde
Would you think over the idea to decouple some "Group" parts to separate modules like "Group Membership", "Group Roles" and/or "Group Permissions " to give developers/users a chance to build more flexible implementations using the Group module?
There are a lot of cases where people can use "Group" functionalities just for grouping/segmenting the content or any other entities without the membership workflow/functionality...
Yes, I understand that sounds like we can suggest using pure "Taxonomy" with some different tweaks for implementing that case...
Also, if people would like to implement that as a "GroupContent" way like we currently have in "Group" or like "GroupRelation" that is proposed in the roadmap, then we could have proposed to use the "Relation" module for that... but "Relation" is obsolete.

kristiaanvandeneynde’s picture

The Group module is really an access module at its core. Otherwise it would just become a glorified taxonomy as you mention :)

We already offer a lot of flexibility through the API, one example being the membership loader. Someone showed me a use case where they swapped that out with a service that talks to LDAP directly to retrieve memberships from an external service rather than Drupal entities.

By the way, GroupRelation is vastly different from Relation, they couldn't be more different.

alphawebgroup’s picture

@kristiaanvandeneynde
ok, thank you for your answer

kristiaanvandeneynde’s picture

Issue summary: View changes

Most is done, some got moved. Looking into a few final candidates for a 2.0.0 version.

kristiaanvandeneynde’s picture

Added the Group 2.0.0 target tag for adding small QOL issues that won't take longer than an hour to commit.

dalra’s picture

@kristiaanvandeneynde

Generic plugin that supports all entity types so no code needs to be written for simple entities

Will it be included in Group 2.0.0? Will it make it possible to add Commerce Products to groups?

kristiaanvandeneynde’s picture

Re #18 Probably 2.1.0, it shouldn't break anything if added later on and that way 2.0.0 can focus on all the new APIs. I don't want to delay it forever, but with the new code in 2.0.x it's definitely possible.

aspilicious’s picture

We are starting a new big project.
Should we use the 1.x or 2.x branch? Can we upgrade later on if needed?

kristiaanvandeneynde’s picture

Use 8.x-1.4, 2.0.0 will come with an upgrade path. The public API things that will drastically change are the plugins, group roles and permission calculators, internally the access queries will be significantly optimized.

So if you have any custom plugins, you will need to make a few alterations, but they should be easy to pull off. If you have any code that uses group roles, you might need to make a few very small changes and finally if you have custom calculators, they can be simplified after the upgrade.

Finally, I've started with renaming things that do not require any database maintenance. So plugins have been renamed, but GroupContent(Type) entities have not. I am keeping the CRs up to date here: https://www.drupal.org/list-changes/group

mxr576’s picture

Due to interface changes in Group owner membership roles according to site-wide roles, I would like ask if @kristiaanvandeneynde is open for that feature, should it get more focus to get it done before 2.0.0 or that feature should go to a contrib module instead?

kristiaanvandeneynde’s picture

@mxr576 Already part of #3204083: Rework group roles into a scoped system and adjust permission calculation which I am in the process of fixing the last few test fails for.

jnicola’s picture

Reviewing 2.0.x for the next website we're going to be developing at OHSU. Any updates on expected time and any other changes?

The new site should be notably less feature intensive than the former site so I'm envisioning we could roll with near out of the box 2.0.x functionality you have already in the dev branch!

By the way I like the new outsider roles permission approach. Very easy and intuitive in the UI!

jnicola’s picture

Oh and if possible any information on what sort of plugins and what not will need to be changed would be helpful. Even a short "1.x to 2.x for devlopers" page would be helpful.

kristiaanvandeneynde’s picture

I should have a solid 2.0.0 beta out during the summer. Just faced a minor setback with a developer leaving, but the major work has already been done. Updating the plugins is definitely something that needs to be documented, but it should be pretty straightforward. The change records can already help a little, but I can try to do a short video on it.

geek-merlin’s picture

Hey Kristian, boldly chiming in with two things for the general plan here. Very interested how you are resonating with that.

kristiaanvandeneynde’s picture

The entity type as a group thing was the whole reason I created Group, because I did not like that part about OG at all. So I don't see me going back to that architecture any time soon.

The second I'd have to research more as we need a fieldable entity for the relation. I'm slowly making Group slimmer by putting more into separate modules. 2.0.x will release with a new dependency on a module I am yet to write that takes care of the permission gathering and calculating.

So for a later (perhaps major) version, we could look into writing a more agnostic module that takes care of the fieldable relation. I am afraid, though, that Group's requirements for said relation are too specific to be able to fit in a generic module, but who knows what might come up when we actually investigate this further.

Having said all of the above, currently the remaining items for 2.0.x are cleaning up the roles rework and separating out the module I just talked about, then it's done.

geek-merlin’s picture

Thx! Its totally clear to me that both approaches are not short-term, so this is only about "general plans".
So i will add more information in both other issues, and maybe i can help pursuing.
(But tbh atm i don't have any paid capacity, it's pure love for the thing and can not happen with the power i'd like to.)
Overall, thanks for pushing all this forware, i appreciate it a lot.

kristiaanvandeneynde’s picture

I'm in the same boat, lots of ideas, not as much time to complete them in. But thanks for your kind words!

jstoller’s picture

Will Group 2.0 enable overriding permissions on a per-group basis, or will is still just be at the group type level?

kristiaanvandeneynde’s picture

You already can override permissions on a per group basis using custom permission calculators. This will not change in 2.0.0 but should become way more performant due to the new scopes and query alters.

jstoller’s picture

@kristiaanvandeneynde I guess my real question is, will the Group module UI support group-level permissions out of the box? Currently I'm forced to use the Group Permissions module, which is a bit clunky and still just an alpha release.

kristiaanvandeneynde’s picture

Oh, that's a clear no for the time being

kristiaanvandeneynde’s picture

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.