coulomb-social/coulomb_social/apps/core/views.py
tegwick d88767f05b Wire user-engine HTTP /me for member provisioning (CSOC-WP-0002-T04)
HttpUserEngineClient uses trusted-proxy claims against live user-engine.
Offline stub when URL/secret unset. Align default tenant with KeyCape
tenant:coulomb; map OIDC tenant/principal_type/groups into the envelope.
2026-08-09 01:56:44 +02:00

42 lines
1.5 KiB
Python

from django.contrib.auth.decorators import login_required
from django.http import HttpRequest, HttpResponse, JsonResponse
from django.shortcuts import render
def landing(request: HttpRequest) -> HttpResponse:
if request.user.is_authenticated:
from django.shortcuts import redirect
return redirect("core:app_home")
return render(request, "core/landing.html")
@login_required
def app_home(request: HttpRequest) -> HttpResponse:
member = getattr(request.user, "member", None)
return render(
request,
"core/app_home.html",
{
"member": member,
"principal": {
"username": request.user.get_username(),
"display_name": (
member.display_name
if member and member.display_name
else request.user.get_full_name() or request.user.get_username()
),
"issuer": member.issuer if member else "",
"subject": member.subject if member else "",
"user_engine_user_id": (
str(member.user_engine_user_id) if member else ""
),
"tenant_id": member.tenant_id if member else "",
"user_engine_source": request.session.get("user_engine_source", ""),
},
},
)
def healthz(_request: HttpRequest) -> JsonResponse:
return JsonResponse({"status": "ok", "service": "coulomb-social"})