diff options
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/discord.py | 13 | 
1 files changed, 6 insertions, 7 deletions
| diff --git a/backend/discord.py b/backend/discord.py index 4a1ecf5..68aa706 100644 --- a/backend/discord.py +++ b/backend/discord.py @@ -151,15 +151,14 @@ async def _verify_access_helper(          return      form = models.Form(**form) +    role_id_lookup = {role.id: role for role in await get_roles()} -    for role_id in getattr(form, attribute, None) or []: -        role = await request.state.db.roles.find_one({"id": role_id}) -        if not role: -            continue - -        role = models.DiscordRole(**json.loads(role["data"])) +    for role_name_or_id in getattr(form, attribute, None) or []: +        if role_name_or_id in request.auth.scopes: +            return -        if role.name in request.auth.scopes: +        role = role_id_lookup.get(role_name_or_id) +        if role and role.name in request.auth.scopes:              return      raise UnauthorizedError(status_code=401) | 
