#If a user is a member of a particular discord guild, assign them to a group in Authentik

1 messages · Page 1 of 1 (latest)

dapper gust
#

Total noob. I found the snippet of code where we look for a particular group here. Not sure what else to add here if the check is successful.

# To get the guild ID number for the parameters, open Discord, go to Settings > Advanced and enable developer mode.
# Right-click on the server/guild title and select "Copy ID" to get the guild ID.

ACCEPTED_GUILD_ID = "123456789123456789"
GUILD_NAME_STRING = "The desired server/guild name in the error message."

# Only change below here if you know what you are doing.

# Ensure flow is only run during OAuth logins via Discord
if context['source'].provider_type != "discord":
    return True

# Get the user-source connection object from the context, and get the access token
connection = context.get("goauthentik.io/sources/connection")
if not connection:
  return False
access_token = connection.access_token

guilds = requests.get(
    "https://discord.com/api/users/@me/guilds",
    headers= {
        "Authorization": f"Bearer {access_token}",
    }
).json()

user_matched = any(ACCEPTED_GUILD_ID == g["id"] for g in guilds)
if not user_matched:
    ak_message(f"User is not a member of {GUILD_NAME_STRING}.")
return user_matched
dapper gust
#

keep getting exceptions with the following:
Traceback (most recent call last):
File "Blizzard", line 33, in <module>
File "Blizzard", line 13, in handler
builtins.KeyError: 'source'