MAIA.keycloak_utils module#
- MAIA.keycloak_utils.delete_group_in_keycloak(group_id, settings)[source]#
Delete a group in Keycloak
- Parameters:
group_id (str) – The ID of the group to be deleted.
settings (object) – An object containing the Keycloak server settings. It should have the following attributes: - OIDC_SERVER_URL: str, the URL of the Keycloak server. - OIDC_USERNAME: str, the username for Keycloak authentication. - OIDC_REALM_NAME: str, the realm name in Keycloak. - OIDC_RP_CLIENT_ID: str, the client ID for Keycloak. - OIDC_RP_CLIENT_SECRET: str, the client secret for Keycloak.
- Returns:
None
- MAIA.keycloak_utils.get_groups_for_user(email, settings)[source]#
Retrieve the MAIA groups associated with a user in Keycloak.
- Parameters:
email (str) – The email address of the user to retrieve groups for.
settings (object) – An object containing the Keycloak server settings. It should have the following attributes: - OIDC_SERVER_URL: str, the URL of the Keycloak server. - OIDC_USERNAME: str, the username for Keycloak authentication. - OIDC_REALM_NAME: str, the realm name in Keycloak. - OIDC_RP_CLIENT_ID: str, the client ID for Keycloak. - OIDC_RP_CLIENT_SECRET: str, the client secret for Keycloak.
- Returns:
list – A list of MAIA groups that the user is associated with.
- MAIA.keycloak_utils.get_groups_in_keycloak(settings)[source]#
Retrieve groups from Keycloak that start with “MAIA:” and return them in a dictionary.
- Parameters:
settings (object) –
An object containing the Keycloak connection settings. It should have the following attributes: - OIDC_SERVER_URL : str
The URL of the Keycloak server.
- OIDC_USERNAMEstr
The username for Keycloak authentication.
- OIDC_REALM_NAMEstr
The name of the Keycloak realm.
- OIDC_RP_CLIENT_IDstr
The client ID for Keycloak.
- OIDC_RP_CLIENT_SECRETstr
The client secret for Keycloak.
- Returns:
dict – A dictionary where the keys are group IDs and the values are group names (with the “MAIA:” prefix removed) for groups that start with “MAIA:”.
- MAIA.keycloak_utils.get_list_of_groups_requesting_a_user(email, user_model)[source]#
Retrieves a list of groups (namespaces) that have requested a specific user based on their email.
- Parameters:
email (str) – The email address of the user to search for.
user_model (object) – The user model object to query for user information.
- Returns:
list – A list of namespaces that have requested the user. Returns an empty list if no groups are found.
- Raises:
KeyError – If environment variables ‘DB_HOST’, ‘DB_USERNAME’, or ‘DB_PASS’ are not set in non-debug mode.
Exception – If there is an issue connecting to the database or executing the SQL queries.
- MAIA.keycloak_utils.get_list_of_users_requesting_a_group(maia_user_model, group_id)[source]#
Retrieves a list of email addresses of users who have requested access to a specific group.
- Parameters:
group_id (str) – The ID of the group to check for user requests.
settings (object) – A settings object that contains configuration parameters, including DEBUG and LOCAL_DB_PATH.
- Returns:
list – A list of email addresses of users who have requested access to the specified group.
- Raises:
KeyError – If environment variables for database connection are not set when DEBUG is False.
Exception – If there is an issue with database connection or query execution.
Notes
When settings.DEBUG is True, a local SQLite database is used. When settings.DEBUG is False, a MySQL database is used with connection parameters from environment variables.
- MAIA.keycloak_utils.get_maia_users_from_keycloak(settings)[source]#
Retrieves all users from Keycloak who are members of any MAIA group.
- Parameters:
settings (object) –
An object containing Keycloak connection settings, including: - OIDC_SERVER_URL : str
The URL of the Keycloak server.
- OIDC_USERNAMEstr
The username for Keycloak authentication.
- OIDC_REALM_NAMEstr
The realm name in Keycloak.
- OIDC_RP_CLIENT_IDstr
The client ID for Keycloak.
- OIDC_RP_CLIENT_SECRETstr
The client secret for Keycloak.
- Returns:
list – A list of dictionaries containing user information for all users in MAIA groups. Each dictionary contains user details like email, username, and groups.
- MAIA.keycloak_utils.get_user_ids(settings)[source]#
Retrieve user IDs and their associated MAIA groups from Keycloak.
- Parameters:
settings (object) – An object containing the Keycloak server settings. It should have the following attributes: - OIDC_SERVER_URL: str, the URL of the Keycloak server. - OIDC_USERNAME: str, the username for Keycloak authentication. - OIDC_REALM_NAME: str, the realm name in Keycloak. - OIDC_RP_CLIENT_ID: str, the client ID for Keycloak. - OIDC_RP_CLIENT_SECRET: str, the client secret for Keycloak.
- Returns:
dict – A dictionary where the keys are user email addresses and the values are lists of MAIA groups the user belongs to.
- MAIA.keycloak_utils.register_group_in_keycloak(group_id, settings)[source]#
Registers a group in Keycloak with the specified group ID and settings.
- Parameters:
group_id (str) – The ID of the group to be registered.
settings (object) –
An object containing the Keycloak server settings, including: - OIDC_SERVER_URL : str
The URL of the Keycloak server.
- OIDC_USERNAMEstr
The username for Keycloak authentication.
- OIDC_REALM_NAMEstr
The name of the Keycloak realm.
- OIDC_RP_CLIENT_IDstr
The client ID for Keycloak.
- OIDC_RP_CLIENT_SECRETstr
The client secret for Keycloak.
- Returns:
None
- MAIA.keycloak_utils.register_user_in_keycloak(email, settings)[source]#
Registers a user in Keycloak and sends an approved registration email.
- Parameters:
email (str) – The email address of the user to be registered.
settings (object) – An object containing the necessary settings for Keycloak connection and email sending.
Attributes (Settings)
-------------------
OIDC_SERVER_URL (str) – The URL of the Keycloak server.
OIDC_USERNAME (str) – The username for Keycloak authentication.
OIDC_REALM_NAME (str) – The name of the Keycloak realm.
OIDC_RP_CLIENT_ID (str) – The client ID for Keycloak.
OIDC_RP_CLIENT_SECRET (str) – The client secret for Keycloak.
HOSTNAME (str) – The hostname for generating the MAIA login URL.
- Returns:
None
- MAIA.keycloak_utils.register_users_in_group_in_keycloak(emails, group_id, settings)[source]#
Registers users in a specified Keycloak group.
- Parameters:
emails (list) – A list of email addresses of users to be added to the group.
group_id (str) – The ID of the group to which users should be added.
settings (object) –
An object containing Keycloak server settings, including: - OIDC_SERVER_URL : str
The URL of the Keycloak server.
- OIDC_USERNAMEstr
The username for Keycloak authentication.
- OIDC_REALM_NAMEstr
The realm name in Keycloak.
- OIDC_RP_CLIENT_IDstr
The client ID for Keycloak.
- OIDC_RP_CLIENT_SECRETstr
The client secret for Keycloak.
- Returns:
None
- MAIA.keycloak_utils.remove_user_from_group_in_keycloak(email, group_id, settings)[source]#
Remove a user from a group in Keycloak.
- Parameters:
email (str) – The email address of the user to be removed from the group.
group_id (str) – The ID of the group from which the user should be removed.
settings (object) – An object containing the Keycloak server settings. It should have the following attributes: - OIDC_SERVER_URL: str, the URL of the Keycloak server. - OIDC_USERNAME: str, the username for Keycloak authentication. - OIDC_REALM_NAME: str, the realm name in Keycloak. - OIDC_RP_CLIENT_ID: str, the client ID for Keycloak. - OIDC_RP_CLIENT_SECRET: str, the client secret for Keycloak.
- Returns:
None