import json import base64 from core.models import Berichtsheft class AzureUser: display_name: str id: str claims: list def __init__(self, request): try: # X-MS-CLIENT-PRINCIPAL-ID self.id = request.headers["X-MS-CLIENT-PRINCIPAL-ID"] # X-MS-CLIENT-PRINCIPAL-NAME self.id = request.headers["X-MS-CLIENT-PRINCIPAL-NAME"] # X-MS-CLIENT-PRINCIPAL claims_json = json.loads( base64.decode(request.headers["X-MS-CLIENT-PRINCIPAL"]) ) claims = {} for claim in claims_json["claims"]: claims[claim["typ"]] = claim["val"] self.claims = claims except: self.display_name = "Anon" self.id = "anon" def reports(self): return Berichtsheft.objects.filter(user=self.id)