fix(auth): 审批人列表按公司收窄——本公司主管 + 所有超管
- get_approvers:普通/主管仅见 department=本人公司 的 SUPERVISOR 与全部 SUPER_ADMIN;超管本人不受限
This commit is contained in:
@ -339,11 +339,25 @@ def get_approvers():
|
||||
from app.models.system import SysUser
|
||||
|
||||
current_user_id = get_jwt_identity()
|
||||
me = SysUser.query.get(current_user_id) if current_user_id else None
|
||||
|
||||
users = SysUser.query.filter(
|
||||
SysUser.role.in_(['SUPER_ADMIN', 'SUPERVISOR']),
|
||||
SysUser.status == 'active'
|
||||
).all()
|
||||
from sqlalchemy import and_, or_
|
||||
if me and (me.role or '').upper() == 'SUPER_ADMIN':
|
||||
# 超管本人:不受部门限制,仍列出全部主管+超管
|
||||
users = SysUser.query.filter(
|
||||
SysUser.role.in_(['SUPER_ADMIN', 'SUPERVISOR']),
|
||||
SysUser.status == 'active'
|
||||
).all()
|
||||
else:
|
||||
# 普通/主管:只列“本公司(department)主管” + “所有超管”
|
||||
my_company = me.department if me else None
|
||||
users = SysUser.query.filter(
|
||||
SysUser.status == 'active',
|
||||
or_(
|
||||
SysUser.role == 'SUPER_ADMIN',
|
||||
and_(SysUser.role == 'SUPERVISOR', SysUser.department == my_company)
|
||||
)
|
||||
).all()
|
||||
|
||||
return jsonify({
|
||||
'msg': '获取成功',
|
||||
|
||||
Reference in New Issue
Block a user