17 lines
789 B
Python
17 lines
789 B
Python
"""Display attribution for already-authorized resources; never changes access scope."""
|
|
from sqlmodel import Session
|
|
|
|
from .models import AppUser
|
|
|
|
|
|
def owner_fields(session: Session, owner_user_id: int | None) -> dict:
|
|
owner_id = int(owner_user_id or 0)
|
|
cache = session.info.setdefault('resource_owner_names', {})
|
|
if owner_id not in cache:
|
|
owner = session.get(AppUser, owner_id) if owner_id else None
|
|
username = owner.username if owner else ''
|
|
display_name = (owner.display_name or username) if owner else ('系统内置' if not owner_id else f'已删除用户 #{owner_id}')
|
|
cache[owner_id] = {'owner_user_id': owner_id, 'owner_username': username,
|
|
'owner_display_name': display_name}
|
|
return dict(cache[owner_id])
|