Allow Roles to Revoke permissions
I know there was already a post on this, however, it did not detail the request very clearly or distinctly. Hence I have written this in an attempt to get a better discussion on the feature.
Feature
Make permissions non-binary on a role level, similar to channel behaviour. This would allow higher roles to revoke permission that a lower defined role granted.
For instance, a "muted" role that is higher than all non-moderator roles could revoke the access to speak or write messages. Hence assigning that role would simply silence the member.
Benefits
There are of course other added benefits from the example of muting, such as banning specific users for uploading attachments, instead of trying to give every user by a subset the ability to send attachments. However, I do not run a massive Discord - hence other examples I have are partly speculation, rather than personal experience. Hence I will continue this example throughout.
1. Reduced Transmission
Continuing with the example of muting. The currently only want to enable this behaviour in a discord server is via a bot. This means when a muted user tries to send a message, they must send the message to the discord server (1), that then gets forwarded to all users and bots that are online (2), the bot then processes the message and sends a delete request to the Discord servers (4), the Discord server must then forward that deletion to all users/bots who saw the message (5).
If there were p users online, the number of requests going through discord's servers would be 2*p + 2. This then increases further if you consider files being uploaded.
2. Cleaner Audit Logs
Audit logs have a maximum length, hence by relying on a Discord bot to take action and instead of enforcing limitations within the server. Audit logs will be cleaner and allow for more of the actually important information to be stored.
3. Better User Interaction
Sending a message for it to be deleted and getting a DM from a bot is a very provocative experience. Unless you send a message you cannot know if you are allowed to send a message. Discord already has a system for visually showing when someone is unable to send a message. By using this functionality better user experience is granted.
4. Implementation
Depending on the underlying mechanics on how given permission is derived internally. This could potentially simplify the system since then the exact same behaviour applies for channel-specific permission as well as globally on a server.
Drawbacks
5. Increased Processing (Deriving Permission)
With a binary system like the current global role-based permission system. When permission X is being tested, the system only needs to look for one result where X is granted. Then it can return true, and not testing the higher roles.
However, with this system, all roles for a given user will need to be checked in order for permission X in case permission granted in a lower role is revoked by a higher role.
6. Potential for unclear server permissions
Allowing this feature means that if a server's permissions are not well thought out they could quickly become overly complex and confusing, and then hard to debug when certain permissions to not generate the intended results.
-
I'd love that feature. It would make managing permissions way easier when you want to do something a little more complex
0
Zaloguj się, aby dodać komentarz.
Komentarze
Komentarze: 1