|
@@ -11,15 +11,19 @@ from utils import *
|
|
|
from utils.ry_system_util import *
|
|
|
from common.security import valid_access_token
|
|
|
import traceback
|
|
|
+from common.enc import mpfun, sys_user_role_data, sys_role_data, sys_role_dept_data, sys_role_menu_data
|
|
|
+from common.auth_user import *
|
|
|
+from common.db import db_czrz
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
-
|
|
|
@router.post('')
|
|
|
async def rolecreate(
|
|
|
- db: Session = Depends(get_db),
|
|
|
- user_id: int = Depends(valid_access_token),
|
|
|
- body = Depends(remove_xss_json)
|
|
|
+ request: Request,
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id: int = Depends(valid_access_token),
|
|
|
+ auth_user: AuthUser = Depends(find_auth_user),
|
|
|
+ body = Depends(remove_xss_json)
|
|
|
):
|
|
|
try:
|
|
|
menuCheckStrictly = body['menuCheckStrictly']
|
|
@@ -51,9 +55,12 @@ async def rolecreate(
|
|
|
# 创建新的用户角色关联
|
|
|
new_role_menus = [SysRoleMenu(role_id=new_role.role_id, menu_id=menu_id) for menu_id in menuIds]
|
|
|
db.add_all(new_role_menus)
|
|
|
+ db.commit()
|
|
|
|
|
|
+ sys_role_menu_data.sign_table()
|
|
|
+
|
|
|
+ db_czrz.log(db, auth_user, "系统管理", f"后台管新建用户角色【{body['roleName']}】成功", request.client.host)
|
|
|
|
|
|
- db.commit()
|
|
|
return {"code": 200, "msg": "创建成功", "data": None}
|
|
|
|
|
|
|
|
@@ -63,9 +70,11 @@ async def rolecreate(
|
|
|
|
|
|
@router.put('')
|
|
|
async def roleupdate(
|
|
|
- db: Session = Depends(get_db),
|
|
|
- user_id: int = Depends(valid_access_token),
|
|
|
- body = Depends(remove_xss_json)
|
|
|
+ request: Request,
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id: int = Depends(valid_access_token),
|
|
|
+ auth_user: AuthUser = Depends(find_auth_user),
|
|
|
+ body = Depends(remove_xss_json)
|
|
|
):
|
|
|
try:
|
|
|
roleId = body['roleId']
|
|
@@ -100,9 +109,12 @@ async def roleupdate(
|
|
|
# 创建新的用户角色关联
|
|
|
new_role_menus = [SysRoleMenu(role_id=roleId, menu_id=menu_id) for menu_id in menuIds]
|
|
|
db.add_all(new_role_menus)
|
|
|
+ db.commit()
|
|
|
|
|
|
+ sys_role_menu_data.sign_table()
|
|
|
+
|
|
|
+ db_czrz.log(db, auth_user, "系统管理", f"后台管修改用户角色【{body['roleName']}】成功", request.client.host)
|
|
|
|
|
|
- db.commit()
|
|
|
return {"code": 200, "msg": "更新成功", "data": None}
|
|
|
|
|
|
|
|
@@ -111,10 +123,12 @@ async def roleupdate(
|
|
|
raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|
|
|
|
|
|
@router.put('/dataScope')
|
|
|
-async def roleupdate(
|
|
|
- db: Session = Depends(get_db),
|
|
|
- user_id: int = Depends(valid_access_token),
|
|
|
- body = Depends(remove_xss_json)
|
|
|
+async def dataScope(
|
|
|
+ request: Request,
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id: int = Depends(valid_access_token),
|
|
|
+ auth_user: AuthUser = Depends(find_auth_user),
|
|
|
+ body = Depends(remove_xss_json)
|
|
|
):
|
|
|
try:
|
|
|
roleId = body['roleId']
|
|
@@ -141,9 +155,13 @@ async def roleupdate(
|
|
|
# 创建新的用户角色关联
|
|
|
new_role_depts = [SysRoleDept(role_id=roleId, dept_id=dept_id) for dept_id in deptIds]
|
|
|
db.add_all(new_role_depts)
|
|
|
+ db.commit()
|
|
|
|
|
|
+ sys_role_menu_data.sign_table()
|
|
|
+ sys_role_dept_data.sign_table()
|
|
|
+
|
|
|
+ db_czrz.log(db, auth_user, "系统管理", f"后台管修改用户角色数据范围【{role.role_name}】成功", request.client.host)
|
|
|
|
|
|
- db.commit()
|
|
|
return {"code": 200, "msg": "更新成功", "data": None}
|
|
|
|
|
|
|
|
@@ -154,9 +172,11 @@ async def roleupdate(
|
|
|
|
|
|
@router.put('/changeStatus')
|
|
|
async def roleupdate(
|
|
|
- db: Session = Depends(get_db),
|
|
|
- user_id: int = Depends(valid_access_token),
|
|
|
- body = Depends(remove_xss_json)
|
|
|
+ request: Request,
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id: int = Depends(valid_access_token),
|
|
|
+ auth_user: AuthUser = Depends(find_auth_user),
|
|
|
+ body = Depends(remove_xss_json)
|
|
|
):
|
|
|
try:
|
|
|
roleId = body['roleId']
|
|
@@ -172,8 +192,13 @@ async def roleupdate(
|
|
|
})
|
|
|
|
|
|
role.status = body['status']
|
|
|
-
|
|
|
+ role.sigin = ''
|
|
|
db.commit()
|
|
|
+
|
|
|
+ sys_role_data.sign_table()
|
|
|
+
|
|
|
+ db_czrz.log(db, auth_user, "系统管理", f"后台管修改用户角色状态【{body['role_name']}】成功", request.client.host)
|
|
|
+
|
|
|
return {"code": 200, "msg": "更新成功", "data": None}
|
|
|
|
|
|
|
|
@@ -220,7 +245,6 @@ async def userlist(
|
|
|
user_id: int = Depends(valid_access_token)):
|
|
|
try:
|
|
|
query = db.query(SysUserRole)
|
|
|
- # query = query.filter(SysUserRole.del_flag != '2')
|
|
|
query = query.filter(SysUserRole.role_id == roleId)
|
|
|
resutl = query.all()
|
|
|
users = [i.user_id for i in resutl]
|
|
@@ -255,17 +279,17 @@ async def userlist(
|
|
|
"userId": user.user_id,
|
|
|
"tenantId": user.tenant_id,
|
|
|
"deptId": user.dept_id,
|
|
|
- "userName": user.user_name,
|
|
|
+ "userName": mpfun.dec_data(user.user_name),
|
|
|
"nickName": user.nick_name,
|
|
|
"userType": user.user_type,
|
|
|
- "email": user.email,
|
|
|
- "phonenumber": user.phonenumber,
|
|
|
+ "email": mpfun.dec_data(user.email),
|
|
|
+ "phonenumber": mpfun.dec_data(user.phonenumber),
|
|
|
"sex": user.sex,
|
|
|
"avatar": user.avatar,
|
|
|
"status": user.status,
|
|
|
"loginIp": user.login_ip,
|
|
|
"loginDate": user.login_date.strftime('%Y-%m-%d %H:%M:%S') if user.login_date else '',
|
|
|
- "remark": user.remark,
|
|
|
+ "remark": user.remark if user.remark else '',
|
|
|
"createTime": user.create_time.strftime('%Y-%m-%d %H:%M:%S') if user.create_time else '',
|
|
|
"deptName": user.dept_name,
|
|
|
"roles": user_roles,
|
|
@@ -311,9 +335,9 @@ async def userlist(
|
|
|
query = query.filter(not_(SysUser.user_id.in_(users)))
|
|
|
|
|
|
if userName is not None:
|
|
|
- query = query.filter(SysUser.user_name.like(f'%{userName}%'))
|
|
|
+ query = query.filter(SysUser.user_name == mpfun.enc_data(userName))
|
|
|
if phonenumber is not None:
|
|
|
- query = query.filter(SysUser.phonenumber.like(f'%{phonenumber}%'))
|
|
|
+ query = query.filter(SysUser.phonenumber == mpfun.enc_data(phonenumber))
|
|
|
#
|
|
|
# print(query)
|
|
|
# 计算总条目数
|
|
@@ -335,17 +359,17 @@ async def userlist(
|
|
|
"userId": user.user_id,
|
|
|
"tenantId": user.tenant_id,
|
|
|
"deptId": user.dept_id,
|
|
|
- "userName": user.user_name,
|
|
|
+ "userName": mpfun.dec_data(user.user_name),
|
|
|
"nickName": user.nick_name,
|
|
|
"userType": user.user_type,
|
|
|
- "email": user.email,
|
|
|
- "phonenumber": user.phonenumber,
|
|
|
+ "email": mpfun.dec_data(user.email),
|
|
|
+ "phonenumber": mpfun.dec_data(user.phonenumber),
|
|
|
"sex": user.sex,
|
|
|
"avatar": user.avatar,
|
|
|
"status": user.status,
|
|
|
"loginIp": user.login_ip,
|
|
|
"loginDate": user.login_date.strftime('%Y-%m-%d %H:%M:%S') if user.login_date else '',
|
|
|
- "remark": user.remark,
|
|
|
+ "remark": user.remark if user.remark else '',
|
|
|
"createTime": user.create_time.strftime('%Y-%m-%d %H:%M:%S') if user.create_time else '',
|
|
|
"deptName": user.dept_name,
|
|
|
"roles": user_roles,
|
|
@@ -372,11 +396,13 @@ async def userlist(
|
|
|
|
|
|
@router.put('/authUser/selectAll')
|
|
|
async def cancel_user_role(
|
|
|
- roleId: str = Query(None),
|
|
|
- userIds:str=Query(None),
|
|
|
- db: Session = Depends(get_db),
|
|
|
- user_id: int = Depends(valid_access_token),
|
|
|
- body = Depends(remove_xss_json)
|
|
|
+ request: Request,
|
|
|
+ roleId: str = Query(None),
|
|
|
+ userIds:str=Query(None),
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id: int = Depends(valid_access_token),
|
|
|
+ auth_user: AuthUser = Depends(find_auth_user),
|
|
|
+ body = Depends(remove_xss_json)
|
|
|
):
|
|
|
try:
|
|
|
|
|
@@ -384,8 +410,12 @@ async def cancel_user_role(
|
|
|
|
|
|
new_roles = [SysUserRole(user_id=user_id, role_id=roleId) for user_id in userIdList]
|
|
|
db.add_all(new_roles)
|
|
|
-
|
|
|
db.commit()
|
|
|
+
|
|
|
+ sys_user_role_data.sign_table()
|
|
|
+
|
|
|
+ db_czrz.log(db, auth_user, "系统管理", f"后台管用户角色添加用户成功", request.client.host)
|
|
|
+
|
|
|
return {
|
|
|
"code": 200,
|
|
|
"msg": "成功",
|
|
@@ -397,9 +427,11 @@ async def cancel_user_role(
|
|
|
|
|
|
@router.put('/authUser/cancel')
|
|
|
async def cancel_user_role(
|
|
|
- db: Session = Depends(get_db),
|
|
|
- user_id: int = Depends(valid_access_token),
|
|
|
- body = Depends(remove_xss_json)
|
|
|
+ request: Request,
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id: int = Depends(valid_access_token),
|
|
|
+ auth_user: AuthUser = Depends(find_auth_user),
|
|
|
+ body = Depends(remove_xss_json)
|
|
|
):
|
|
|
try:
|
|
|
roleId=body['roleId']
|
|
@@ -409,10 +441,17 @@ async def cancel_user_role(
|
|
|
query = query.filter(SysUserRole.user_id==userId)
|
|
|
query.delete()
|
|
|
db.commit()
|
|
|
+ sys_user_role_data.sign_table()
|
|
|
+
|
|
|
+ user_info = user_id_get_user_info(db, user_id)
|
|
|
+
|
|
|
+ db_czrz.log(db, auth_user, "系统管理", f"后台管用户角色删除用户【{user_info.nick_name}】成功", request.client.host)
|
|
|
+
|
|
|
return {
|
|
|
"code": 200,
|
|
|
"msg": "成功",
|
|
|
- "data": None}
|
|
|
+ "data": None
|
|
|
+ }
|
|
|
|
|
|
except Exception as e:
|
|
|
traceback.print_exc()
|
|
@@ -420,11 +459,13 @@ async def cancel_user_role(
|
|
|
|
|
|
@router.put('/authUser/cancelAll')
|
|
|
async def cancel_user_role(
|
|
|
- roleId: str = Query(None),
|
|
|
- userIds:str=Query(None),
|
|
|
- db: Session = Depends(get_db),
|
|
|
- user_id: int = Depends(valid_access_token),
|
|
|
- body = Depends(remove_xss_json)
|
|
|
+ request: Request,
|
|
|
+ roleId: str = Query(None),
|
|
|
+ userIds: str=Query(None),
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id: int = Depends(valid_access_token),
|
|
|
+ auth_user: AuthUser = Depends(find_auth_user),
|
|
|
+ body = Depends(remove_xss_json)
|
|
|
):
|
|
|
try:
|
|
|
|
|
@@ -434,10 +475,16 @@ async def cancel_user_role(
|
|
|
query = query.filter(SysUserRole.user_id.in_(userIdList))
|
|
|
query.delete()
|
|
|
db.commit()
|
|
|
+
|
|
|
+ sys_user_role_data.sign_table()
|
|
|
+
|
|
|
+ db_czrz.log(db, auth_user, "系统管理", f"后台管用户角色删除用户成功", request.client.host)
|
|
|
+
|
|
|
return {
|
|
|
"code": 200,
|
|
|
"msg": "成功",
|
|
|
- "data": None}
|
|
|
+ "data": None
|
|
|
+ }
|
|
|
|
|
|
except Exception as e:
|
|
|
traceback.print_exc()
|
|
@@ -458,15 +505,8 @@ async def rolelist( roleName: int = Query(None ,description='角色名称'),
|
|
|
# 构建查询
|
|
|
query = db.query(SysRole)
|
|
|
query = query.filter(SysRole.del_flag != '2')
|
|
|
- # 应用查询条件
|
|
|
|
|
|
- # if beginTime:
|
|
|
- # query = query.filter(SysUser.create_time >= beginTime)
|
|
|
- # if endTime:
|
|
|
- # query = query.filter(SysUser.create_time <= endTime)
|
|
|
- # if params:
|
|
|
- # query = query.filter(SysUser.create_time >= params.get("beginTime"))
|
|
|
- # query = query.filter(SysUser.create_time <= params.get("endTime"))
|
|
|
+ # 应用查询条件
|
|
|
if roleName:
|
|
|
query =query.filter(SysRole.role_name.like(f'%{roleName}%'))
|
|
|
if status:
|