app.API 源代码
'''YPPF API
- 身份验证
- 获取用户信息
只依赖generic应用, constants, models, utils等基础文件
@Author pht
@Date 2022-08-17
'''
from generic.models import User
from utils.models.query import qsvlist
from app.models import (
NaturalPerson as Person,
Position as Position,
)
from app.utils import (
get_user_ava as __get_ava,
get_classified_user as __get_obj,
get_user_wallpaper as __get_wallpaper,
)
__all__ = [
'get_display_name', 'get_avatar_url', 'get_wallpaper_url',
'get_members', 'get_auditors',
]
[文档]
def get_display_name(valid_user: User) -> str:
'''返回合法用户可展示的姓名'''
return __get_obj(valid_user).get_display_name()
[文档]
def get_avatar_url(valid_user: User) -> str:
'''返回合法用户头像的URL相对路径'''
return __get_ava(__get_obj(valid_user))
[文档]
def get_wallpaper_url(valid_user: User) -> str:
'''返回合法用户壁纸的URL相对路径'''
return __get_wallpaper(__get_obj(valid_user))
[文档]
def get_members(valid_user: User, noncurrent: bool = False) -> list[str]:
'''返回合法用户的成员学号列表'''
if not valid_user.is_org():
return []
obj = __get_obj(valid_user)
positions = Position.objects.activated(noncurrent=noncurrent).filter(org=obj)
return qsvlist(positions, Position.person, Person.person_id, User.username)
[文档]
def get_auditors(valid_user: User) -> list[str]:
'''返回合法用户的需要审核时的审核者学号列表'''
if not valid_user.is_org():
return []
obj = __get_obj(valid_user)
auditors = []
auditor = obj.otype.incharge
if auditor is not None:
auditors.append(auditor.get_user().get_username())
return auditors