From 6bd2563eb027de76fb8a3ad280f8653eae5b8d6c Mon Sep 17 00:00:00 2001 From: Justin Visser Date: Tue, 3 Mar 2026 23:02:37 +0100 Subject: [PATCH 1/2] feat(frontend): show run and cancel buttons to all users Remove the auth.isAdmin guard from the Start check and Cancel check buttons in the Activity Monitor. Admin-only route links (check history, diagnostics) are unchanged. Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/pages/DashboardPage.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/frontend/src/pages/DashboardPage.vue b/frontend/src/pages/DashboardPage.vue index 8623927..c7da221 100644 --- a/frontend/src/pages/DashboardPage.vue +++ b/frontend/src/pages/DashboardPage.vue @@ -404,7 +404,7 @@ watch(
Date: Wed, 4 Mar 2026 02:17:18 +0100 Subject: [PATCH 2/2] feat(settings): hours interval, pdf queue for all users, fix users tab loading - Convert check interval setting from minutes to hours in the UI - Show PDF queue tab to all authenticated users (not admin-only); requeue actions remain admin-only in both backend and frontend - Fix users tab not loading on first visit by removing the AsyncStateGate wrapper that prevented child component refs from being populated before onMounted fired Co-Authored-By: Claude Sonnet 4.6 --- app/api/routers/admin_dbops.py | 6 +-- .../features/settings/SettingsAdminPanel.vue | 48 +++++++------------ .../components/AdminPdfQueueSection.vue | 6 ++- frontend/src/pages/SettingsPage.vue | 29 +++++++---- 4 files changed, 43 insertions(+), 46 deletions(-) diff --git a/app/api/routers/admin_dbops.py b/app/api/routers/admin_dbops.py index 0f4d1f6..ce63ea2 100644 --- a/app/api/routers/admin_dbops.py +++ b/app/api/routers/admin_dbops.py @@ -5,7 +5,7 @@ import logging from fastapi import APIRouter, Depends, Path, Query, Request from sqlalchemy.ext.asyncio import AsyncSession -from app.api.deps import get_api_admin_user +from app.api.deps import get_api_admin_user, get_api_current_user from app.api.errors import ApiException from app.api.responses import success_payload from app.api.schemas import ( @@ -185,7 +185,7 @@ async def get_pdf_queue( offset: int | None = Query(default=None, ge=0), status: str | None = Query(default=None), db_session: AsyncSession = Depends(get_db_session), - admin_user: User = Depends(get_api_admin_user), + current_user: User = Depends(get_api_current_user), ): normalized_status = (status or "").strip().lower() or None resolved_page, resolved_limit, resolved_offset = _resolve_pdf_queue_paging( @@ -204,7 +204,7 @@ async def get_pdf_queue( logger, "info", "api.admin.db.pdf_queue_listed", - admin_user_id=int(admin_user.id), + user_id=int(current_user.id), page=int(resolved_page), page_size=int(resolved_limit), offset=int(resolved_offset), diff --git a/frontend/src/features/settings/SettingsAdminPanel.vue b/frontend/src/features/settings/SettingsAdminPanel.vue index b306d1e..6e7e326 100644 --- a/frontend/src/features/settings/SettingsAdminPanel.vue +++ b/frontend/src/features/settings/SettingsAdminPanel.vue @@ -1,7 +1,7 @@