def get_roles(user_id, discussion_id=None):
if user_id in SYSTEM_ROLES:
return [user_id]
session = get_session_maker()()
roles = session.query(Role.name).join(UserRole).filter(
UserRole.user_id == user_id)
if discussion_id:
roles = roles.union(
session.query(Role.name).join(
LocalUserRole).filter(and_(
LocalUserRole.user_id == user_id,
LocalUserRole.requested == False,
LocalUserRole.discussion_id == discussion_id)))
return [x[0] for x in roles.distinct()]
评论列表
文章目录