54 lines
1.6 KiB
Python
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)
|