fix(auth): 审批人列表按公司收窄——本公司主管 + 所有超管

- get_approvers:普通/主管仅见 department=本人公司 的 SUPERVISOR 与全部 SUPER_ADMIN;超管本人不受限
This commit is contained in:
yueli
2026-09-09 15:23:51 +08:00
parent 815ad01a5b
commit cd600f9fc2

View File

@ -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': '获取成功',