From 76c8a9a53c0779ad432ac41e46b2714fe7f3779a Mon Sep 17 00:00:00 2001 From: bruno Date: Thu, 16 Jul 2026 08:37:27 -0400 Subject: [PATCH] fix: supprime le fallback admin token dans _require_gitea() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _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. --- app/routers/gitea.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/app/routers/gitea.py b/app/routers/gitea.py index 4370043..86c30a9 100644 --- a/app/routers/gitea.py +++ b/app/routers/gitea.py @@ -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