Add more flexibility to Linked Roles (manual admin approval, retention of role assignments)
As an admin for a university-related club server, verifying university enrollment is essential. We currently have a custom Discord bot with a web portal that allows members to authenticate with our university identity provider and authorize them by granting a Discord role.
Our implementation became popular and is now used by several other university club servers. The issue is that it does not scale well - for each club server we add, we have to configure the server to grant a specified role ID. With the Linked Roles feature, this would no longer be the case since it would put the management of roles into each individual server's control. It would also allow for a low-maintenance, general-purpose app that could be easily added to any university club server.
However, the current situation with Linked Roles still prevents us from migrating due to other scaling concerns:
1. If the application goes down, it is not possible to add new members to a linked role manually. This puts a lot of responsibility on the maintainers of the app since it effectively halts new member onboarding for all clubs using the app. If an optional "built-in" requirement was added where admins or users could "manually approve" a user for a linked role, this would at least allow other server owners to continue running their server, although without automatic role verification. A manual override could look something like below:

I have also considered making another application that is dedicated to just "manual approval" and can be added as an optional criterion for a linked role, but this would require a boolean for each role created across every server that wants to support this.
The documentation also suggests creating a secondary role that has the same permissions as the linked role to bypass the linked role - this is tedious if there are many channels/categories in the server, and there is no "copy role permissions" feature when creating new roles.
2. In the event that an app becomes permanently shut down, it should be possible to convert a Linked Role back into a normal role without losing all member assignments. I am imagining a worst-case scenario where a server with hundreds of members verified via a linked role is forced to abandon an app for linked roles. If they want to continue assigning the role, they'll have to remove the connection. But in the current implementation, if a connection is removed from a linked role, all members are removed from the role! Of course, this is to account for revalidation issues: e.g. "One of Reddit or Steam must be linked" and removing the Reddit connection for example would invalidate the authorized member list.
However, when going from any arrangement of linked connections verification to 0 linked connections for a role, there shouldn't be any conflicts since you are effectively reducing the role criteria, so member assignments should remain. The same reasoning can be applied if "Must connect all" is enabled. If one connection is removed, it's actually reducing the criteria for the linked role, so anyone that currently has the role shouldn't have the role removed.
---
I hope my concerns were voiced properly - I'd love to start using Linked Roles, but not until it is robust against fringe cases and is more flexible to support smaller developers.
Please sign in to leave a comment.
Comments
0 comments