""" Author: Michel Peltriaux Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany Contact: michel.peltriaux@sgdnord.rlp.de Created on: 09.12.20 """ from django.http import HttpRequest from idna import unicode from konova.models import RoleGroup from organisation.settings import ROLE_TYPE_STRINGS CURRENT_ROLE_ID = "current_role" def set_session_user_role(request: HttpRequest, role_group: RoleGroup) -> dict: """ Set the user session to an active role Args: request (HttpRequest): The user request role_group (RoleGroup): The selected role group Returns: """ current_role = {} if role_group is not None: current_role["type"] = unicode(ROLE_TYPE_STRINGS.get(role_group.role.type)) current_role["org"] = role_group.organisation.__str__() current_role["id"] = role_group.id request.session[CURRENT_ROLE_ID] = current_role return current_role def get_session_user_role(request: HttpRequest) -> dict: """ Returns the current role chosen by a user for this session Args: request (HttpRequest): The used request Returns: """ return request.session.get(CURRENT_ROLE_ID, {})