azube/core/azure_auth.py

41 lines
1 KiB
Python
Raw Normal View History

2024-12-02 16:49:45 +01:00
import json
import base64
2024-12-03 11:38:13 +01:00
from core.models import Berichtsheft
2024-12-03 13:13:50 +01:00
from core.report_templates import ReportTemplates
2024-12-03 11:38:13 +01:00
2024-12-02 16:49:45 +01:00
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
2024-12-03 11:38:13 +01:00
claims_json = json.loads(
base64.decode(request.headers["X-MS-CLIENT-PRINCIPAL"])
)
2024-12-02 16:49:45 +01:00
claims = {}
for claim in claims_json["claims"]:
claims[claim["typ"]] = claim["val"]
2024-12-03 11:38:13 +01:00
2024-12-02 16:49:45 +01:00
self.claims = claims
except:
self.display_name = "Anon"
self.id = "anon"
2024-12-03 11:38:13 +01:00
def reports(self):
return Berichtsheft.objects.filter(user=self.id)
2024-12-03 13:13:50 +01:00
def get_report_template(self):
# TODO : Implement
return ReportTemplates.get_template("weekly")