fix: supprime le fallback admin token dans _require_gitea()
FlowDeck CI / test (push) Failing after 5s
FlowDeck CI / docker (push) Has been skipped

_require_gitea() ne doit plus utiliser le token admin global comme fallback
quand l'utilisateur n'a pas lié son compte Gitea. Chaque utilisateur doit
connecter son propre compte Gitea pour voir les projets.

Les endpoints /api/gitea/projects et /api/gitea/orgs retournent maintenant
401 si l'utilisateur n'a pas lié Gitea, et la page /workspaces affiche
'Connect your Gitea account' au lieu de lister les repos du admin.
This commit is contained in:
2026-07-16 08:37:27 -04:00
parent 07a4f5ece6
commit 76c8a9a53c
+5 -10
View File
@@ -6,19 +6,14 @@ router = APIRouter(tags=["gitea"], prefix="/api/gitea")
def _require_gitea(request: Request):
"""Return a per-user GiteaClient, fallback to admin token for read ops.
"""Return a per-user GiteaClient or raise 401.
Priority: user OAuth token → admin token (read-only fallback).
Use _require_user_gitea for write operations.
Only returns a client if the user has personally connected their Gitea
account (OAuth token). No fallback to admin token — each user must link
their own Gitea account to see Gitea projects.
"""
from app.services.gitea_client import get_user_gitea_client, GiteaClient
from app.services.gitea_client import get_user_gitea_client
client = get_user_gitea_client(request)
if not client:
# Fallback to server admin token so any logged-in user can browse repos
try:
client = GiteaClient() # uses GITEA_TOKEN from settings
except Exception:
pass
if not client:
raise HTTPException(status_code=401, detail="Gitea account not linked. Go to Settings → Integrations to connect.")
return client