from django.shortcuts import render, redirect from django.views.decorators.http import require_http_methods from elastic.es_connect import get_user_by_id @require_http_methods(["GET"]) def home(request): # Enforce login: require session user_id session_user_id = request.session.get("user_id") if session_user_id is None: return redirect("/accounts/login/") uid = session_user_id perm = request.session.get("permission") u = get_user_by_id(uid) if uid is not None else None if perm is None and uid is not None: try: perm = int((u or {}).get("permission", 1)) except Exception: perm = 1 request.session["permission"] = perm else: try: perm = int(perm) except Exception: perm = 1 has_manage_key = bool((u or {}).get("manage_key") or []) can_manage_registration_codes = bool(int((u or {}).get("can_manage_registration_codes") or 0) == 1) has_registration_code = bool(str((u or {}).get("registration_code") or "").strip()) context = { "user_id": uid, "username": (u or {}).get("username"), "is_admin": (int(perm) == 0), "has_manage_key": has_manage_key, "can_manage_registration_codes": can_manage_registration_codes, "has_registration_code": has_registration_code, } return render(request, "main/home.html", context)