Change to the application of permissions of roles on server
Discord's current role permission is a bit problematic to work around allowing/blocking access of multiple roles. If a role allows access, it overrides when a role blocks access. Also, the permission of a category can be overruled by a channel's permission, which I think it should not do.
Currently this is the permission hierarchy:
• Apply denies of @everyone on channel
• Apply allows of @everyone on channel
• Sum up all the denies of a member's roles and apply them at once
• Sum up all the allows of a member's roles and apply them at once
• Apply denies for a specific member if they exist
• Apply allows for a specific member if they exist
But this has a problem. If, for instance, an user has RoleA and RoleB and the category blocks access RoleA , but a channel inside this category allows RoleB, the user has access to the channel. Which can be a problem if you want to create roles that manage different groups of users.
So this is how I believe that the roles should be applied to avoid this:
• Apply denies of @everyone on channel
• Apply allows of @everyone on channel
• Apply denies of @everyone on category
• Apply allows of @everyone on category
• Sum up all the denies of a member's roles in a channel and apply them at once
• Sum up all the allows of a member's roles in a channel and apply them at once
• Sum up all the denies of a member's roles in a category and apply them at once
• Sum up all the allows of a member's roles in a category and apply them at once
• Apply denies for a specific member if they exist
• Apply allows for a specific member if they exist
This will first allow the user access to all as usual.
Then will block anywhere @everyone is blocked, as usual.
Then will allow anywhere @everyone is allowed, again as usual.
Then blocks channels the roles is blocked, and unblock where the roles have access.
Then blocks categories the roles is blocked, and unblock where the roles have access.
Then the specific user's block and allow.
The idea is that a channel's allow does not override a category's block.
As my case, I'm trying to setup a discord for development use in my company, and there are function roles and system roles. So I could be a Developer and have access to System1, but there is a System2 on it as well that I'm not involved. So if I have two categories for the systems, and inside chats for devs only, using the current method of permission, I have access to System1 and System2's dev chats. Using the presented changes I've pointed out, I would have access only to System1's chat (Private channel would block @everyone, System1 would allow access to the category, Dev would give access to channel)

The attachment contains how it works now. While each category has only their respective role, and the channel has only the dev role, when seeing the server as System1 and Dev, I can see both channels.
I really hope this is changed, as this will allow some interesting setups, such as a role that can be given as a temporary punishment that blocks most functions, instead of manually removing all roles or kicking/banning from the server.
Du måste logga in om du vill lämna en kommentar.
Kommentarer
1 kommentar