feat: account management panel — /accounts + /api/users/me
- Page /accounts: profil utilisateur éditable, comptes connectés, workspace members - API GET/PUT /api/users/me: lecture/écriture profil local (full_name, email) - Users list from local DB, auth via Gitea OAuth2 - Imports SessionManager clean dans api.py
This commit is contained in:
@@ -82,6 +82,20 @@ async def view_page_root(request: Request, page_id: int):
|
||||
return template.render(**ctx)
|
||||
|
||||
|
||||
@router.get("/accounts", response_class=HTMLResponse)
|
||||
async def accounts_page(request: Request):
|
||||
"""Account management panel."""
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
env = Environment(loader=FileSystemLoader("app/templates"))
|
||||
sidebar = _sidebar_data(request, [])
|
||||
user = SessionManager.decode_session(request.cookies.get("flowdeck_session", ""))
|
||||
with get_conn() as conn:
|
||||
users = conn.execute("SELECT * FROM users ORDER BY created_at DESC").fetchall()
|
||||
ctx = {**sidebar, "user": user, "users": [dict(u) for u in users]}
|
||||
template = env.get_template("accounts.html")
|
||||
return template.render(**ctx)
|
||||
|
||||
|
||||
@router.get("/", response_class=HTMLResponse)
|
||||
async def dashboard(
|
||||
request: Request,
|
||||
|
||||
Reference in New Issue
Block a user