Files

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])