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
|
from app.models.system import SysUser
|
||||||
|
|
||||||
current_user_id = get_jwt_identity()
|
current_user_id = get_jwt_identity()
|
||||||
|
me = SysUser.query.get(current_user_id) if current_user_id else None
|
||||||
|
|
||||||
users = SysUser.query.filter(
|
from sqlalchemy import and_, or_
|
||||||
SysUser.role.in_(['SUPER_ADMIN', 'SUPERVISOR']),
|
if me and (me.role or '').upper() == 'SUPER_ADMIN':
|
||||||
SysUser.status == 'active'
|
# 超管本人:不受部门限制,仍列出全部主管+超管
|
||||||
).all()
|
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({
|
return jsonify({
|
||||||
'msg': '获取成功',
|
'msg': '获取成功',
|
||||||
|
|||||||
Reference in New Issue
Block a user