c
This commit is contained in:
+21
-10
@@ -18,9 +18,11 @@ from app.db.users import (
|
||||
update_user_role,
|
||||
)
|
||||
from app.gitea_provisioning import apply_gitea_credentials, sync_gitea_user
|
||||
from app.logging_config import get_logger
|
||||
from app.templates.layout import page
|
||||
|
||||
router = APIRouter()
|
||||
logger = get_logger(__name__)
|
||||
|
||||
# Gitea handle: začíná alfanumerickým znakem, dál povolen . _ -; max 40 znaků.
|
||||
GITEA_USERNAME_RE = re.compile(r"^[A-Za-z0-9][A-Za-z0-9._-]{0,39}$")
|
||||
@@ -383,14 +385,10 @@ def update_gitea_credentials_action(
|
||||
)
|
||||
|
||||
result = apply_gitea_credentials(target, new_username, new_password)
|
||||
if result.get("status") == "error":
|
||||
return RedirectResponse(
|
||||
url="/portal/admin/users?error=" + quote(f"Gitea: {result.get('error')}"),
|
||||
status_code=303,
|
||||
)
|
||||
|
||||
applied = result.get("applied") or []
|
||||
if "username" in applied:
|
||||
errors = result.get("errors") or []
|
||||
|
||||
if result.get("renamed"):
|
||||
set_gitea_username(user_id, result.get("gitea_username") or new_username)
|
||||
|
||||
log_audit_event(
|
||||
@@ -401,12 +399,25 @@ def update_gitea_credentials_action(
|
||||
metadata={
|
||||
"username": target.get("username"),
|
||||
"gitea_username": result.get("gitea_username"),
|
||||
"applied": applied, # heslo se nikdy nezaznamenává
|
||||
"applied": applied,
|
||||
"errors": errors, # heslo se nikdy nezaznamenává
|
||||
},
|
||||
)
|
||||
changed = ", ".join(applied) if applied else "beze změny"
|
||||
|
||||
status = result.get("status")
|
||||
if status == "error":
|
||||
detail = result.get("error") or "; ".join(errors) or "neznámá chyba"
|
||||
logger.error("Změna Gitea údajů selhala pro uživatele id=%s: %s", user_id, detail)
|
||||
return RedirectResponse(url="/portal/admin/users?error=" + quote(f"Gitea: {detail}"), status_code=303)
|
||||
|
||||
if errors:
|
||||
msg = f"Gitea částečně aktualizováno ({', '.join(applied)}). Nepovedlo se: {'; '.join(errors)}"
|
||||
logger.warning("Gitea údaje částečně pro uživatele id=%s: applied=%s errors=%s", user_id, applied, errors)
|
||||
return RedirectResponse(url="/portal/admin/users?error=" + quote(msg), status_code=303)
|
||||
|
||||
logger.info("Gitea údaje aktualizovány pro uživatele id=%s: %s", user_id, applied)
|
||||
return RedirectResponse(
|
||||
url="/portal/admin/users?message=" + quote(f"Gitea přihlašovací údaje aktualizovány ({changed})."),
|
||||
url="/portal/admin/users?message=" + quote(f"Gitea aktualizováno: {', '.join(applied) or 'beze změny'}."),
|
||||
status_code=303,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user