Files
Axia4/django_app/account/views.py
2026-03-16 12:43:36 +00:00

54 lines
1.6 KiB
Python

import hashlib
from django.http import HttpRequest
from django.shortcuts import render
from core.auth import list_user_sessions, organization_name_map, parse_user_agent
from core.shell import require_axia_login, shell_context
def account(request: HttpRequest):
gate = require_axia_login(request)
if gate:
return gate
user = request.axia_user
sessions = []
current_token = request.session.session_key
current_hash = current_token and hashlib.sha256(current_token.encode("utf-8")).hexdigest()
name_map = organization_name_map()
for session in list_user_sessions(user.username):
ua = parse_user_agent(session.user_agent)
sessions.append(
{
"session": session,
"ua": ua,
"label": f"{ua['browser']} - {ua['os']}",
"current": session.session_token == current_hash,
}
)
context = shell_context(request, "account", "Mi Cuenta")
context.update(
{
"organization_name": name_map.get(user.active_org, user.active_org),
"connected_sessions": sessions,
}
)
return render(request, "core/account.html", context)
def account_register(request: HttpRequest):
gate = require_axia_login(request)
if gate:
return gate
context = shell_context(request, "account", "Crear cuenta")
context.update(
{
"module_title": "Crear cuenta",
"module_description": "El registro todavia no esta portado a Django.",
"tiles": [],
}
)
return render(request, "core/module.html", context)