Skip to content

Commit 87337df

Browse files
committed
refactor(system): update admin retrieval logic for clarity
1 parent 3951a46 commit 87337df

2 files changed

Lines changed: 7 additions & 4 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,3 +171,4 @@ deadlock-analysis.md
171171

172172
# AI
173173
.AGENT
174+
graphify-out

app/operation/system.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from app.db.models import UserStatus
1111
from app.models.admin import AdminDetails
1212
from app.models.system import InboundSummary, SystemStats
13-
from app.operation.permissions import enforce_permission, PermissionDenied
13+
from app.operation.permissions import PermissionDenied, enforce_permission, is_scope_all
1414
from app.utils.system import cpu_usage, disk_usage, get_uptime, memory_usage
1515

1616
from . import BaseOperation
@@ -41,12 +41,14 @@ async def get_system_stats(db: AsyncSession, admin: AdminDetails, admin_username
4141
except PermissionDenied:
4242
can_read_admins = False
4343
if admin.is_owner or can_read_admins:
44-
admin_param = await get_admin(db, admin_username, load_users=False, load_usage_logs=False)
44+
db_admin = await get_admin(db, admin_username, load_users=False, load_usage_logs=False)
45+
if db_admin is not None:
46+
admin_param = AdminDetails.model_validate(db_admin)
4547
else:
4648
admin_param = admin
4749
elif not admin.is_owner:
48-
# Non-owner without an explicit target only sees their own stats
49-
admin_param = admin
50+
if not is_scope_all(admin, "users", "read"):
51+
admin_param = admin
5052

5153
system_task = None
5254
if not admin_param:

0 commit comments

Comments
 (0)