"""User id handling helpers.""" from flask import Request from assets.constants import field_const HEADERS_AUTH = "headers_auth" BODY_AUTH = "body_auth" def get_user_id_from_headers_or_body(request: Request) -> tuple[str | None, str | None]: """Get user id from request object. Args: request (werkzeug.local.LocalProxy): request object from the handler. Returns: tuple: Tuple of user id and auth type """ if request.headers.get(field_const.ORCHARD_USER_ID): full_user_id = request.headers[field_const.ORCHARD_USER_ID] return full_user_id, HEADERS_AUTH body = request.get_json(silent=True) if body: full_user_id = body.get(field_const.ORCHARD_USER_ID) if full_user_id and ( full_user_id.startswith("alw:") or full_user_id.startswith("oa:") ): return full_user_id, BODY_AUTH return None, None def is_workstation_user_request(request: Request) -> bool: """Return boolean if this is a request with header auth for a workstation use. Args: request(object): the Request object. Returns: boolean: True False. """ full_user_id, auth_type = get_user_id_from_headers_or_body(request) return ( full_user_id is not None and full_user_id.startswith("alw:") and auth_type == HEADERS_AUTH )