Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Server-level user permissions aka groups/roles #2195

Open
B4cchus opened this issue Oct 3, 2024 · 4 comments
Open

Server-level user permissions aka groups/roles #2195

B4cchus opened this issue Oct 3, 2024 · 4 comments

Comments

@B4cchus
Copy link

B4cchus commented Oct 3, 2024

A federated organisation runs a SASL-only server for its members and trusted associates. The server has a bunch of channels dedicated to organisation branches (geographical) and themes, for examples, IT. Several channels may be themed to IT, for example: maintenance, bugs and issues, self-hosted utilities, chat. Sought after functionality would allow the server admin to define user groups, such as 'branch SomeRegion', 'IT - regular', 'IT - admin', assign users to these groups and enforce appropriate modes for the assigned users in all channels, e.g. give voice. Of course, groups should also be listable, with details on the channels they affect and the users they have currently assigned. A user should be able to be assigned to multiple groups, which means the service needs to check that they don't clash, or that the most empowered mode takes precedence. E.g. if a user is both 'branch SomeRegion' and 'mod SomeRegion', he should have moderation rights.

Bonus functionalities: 1. assign all user by default to a lowprivilege group which is muted everywhere, enforce this if modes are manually changed in some channel — e.g. force the use of groups to manage permissions and override manual attempts. 2. Join a user to all the groups where he should have rights above mute when assigning him to a group.

Note: apparently Atheme GroupServ does something similar. Discord roles also have similar functionality.

@slingamn
Copy link
Member

slingamn commented Oct 6, 2024

This sounds not too difficult to implement and in keeping with the project goals. I'll plan to implement this for Ergo 2.15. When do you need this done by?

I didn't understand this part:

Join a user to all the groups where he should have rights above mute when assigning him to a group.

@B4cchus
Copy link
Author

B4cchus commented Oct 7, 2024

Amazing. <3

On the last point. Let's say a user has not yet joined any IT related channels. I assign him to IT group. He should get joined to all the IT channels, so that next time he opens his client he will be on those channels already.

Timing-wise, this is a quality of life feature, albeit one that would makes us lean towards IRC as the preferred backup channel communication service (the main will always be whatever the messenger of the day is that people use in their normal life). There is no rush, but knowing that it is on the horizon in say the next 12 months would be cool.

@slingamn
Copy link
Member

slingamn commented Oct 9, 2024

Thanks! I'm expecting to complete this in December.

@poVoq
Copy link

poVoq commented Oct 13, 2024

Would be awesome if these groups/organisations could also be queried from Oauth2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants