46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
"""
|
|
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, {})
|