增加权限变更

This commit is contained in:
Administrator 2023-04-03 17:04:48 +08:00
parent a18e2feb56
commit 6ec2782560
5 changed files with 36 additions and 2 deletions

View File

@ -104,5 +104,9 @@ def get_user_by_departments(db: Session, departments: []):
def get_user_by_department_type(db: Session, department_type: str):
departments = [item.id for item in db.query(Department).filter_by(type=department_type)]
users = get_user_by_departments(db, departments)
users = [get_full_user_info(db, user['email']) for user in users if user["name"]!='邢军']
users = [get_full_user_info(db, user['email']) for user in users if user["name"] != '邢军']
return users
def get_department_list(db: Session):
return db.query(Department).all()

View File

@ -12,6 +12,7 @@ class User(Base):
name = Column(String(32), comment="用户名")
department = Column(Text, comment="部门")
post = Column(Text, comment="职务")
manage_departments = Column(Text, comment="所管部门")
disable = Column(Boolean, default=False, comment="禁用")
auth_data = Column(Text, comment="权限数据")
registered = Column(Boolean, default=False, comment="用户是否注册入app")

View File

@ -83,3 +83,6 @@ def daily_query(req: DailySchemas.DailyQuery, db: Session = Depends(get_db),
def daily_delete(req: DailySchemas.DailyDeleteReq, db: Session = Depends(get_db), ):
DailyCrud.daily_delete(db, req.id)
return DailySchemas.DailyDeleteRes(msg="删除成功", state=1)

View File

@ -5,7 +5,7 @@ from Models.PostModel import Post
from Schemas import UserSchemas
from Crud import UserCrud, AuthCrud
from Schemas.UserSchemas import TokenData
from Utils.AuthUtils import token_data_depend, create_token, registered_depend
from Utils.AuthUtils import token_data_depend, create_token, registered_depend, check_auth
from Utils.CrudUtils import auto_create_crud
from Utils.SqlAlchemyUtils import get_db
from Utils.VerifyCodeUtils import EmailVerifyCode, EmailVerifyType, PhoneVerifyCode, PhoneVerifyType
@ -171,6 +171,27 @@ def get_user_by_department_type(body: UserSchemas.GetUserByDepartmentTypeReq,
return UserSchemas.GetUserByDepartmentTypeRes(users=[UserSchemas.UserFullInfo(**user) for user in users])
@router.post("/get_user_can_watch_department", tags=["获取用户可查看部门列表"], summary=['查询'])
def get_user_can_watch_department(token_data: TokenData = Depends(token_data_depend), db: Session = Depends(get_db)):
department_list = [item.to_dict() for item in UserCrud.get_department_list(db)]
department_dict = {item['id']: item for item in department_list}
# 所有部门动态查看
if check_auth(token_data.auth_data, [2]):
return {'item_list': department_list, "count": len(department_list)}
can_watch_department = set()
for item in token_data.department.split(","):
if int(item) in [1, 2, 3]:
can_watch_department.add(1)
can_watch_department.add(2)
can_watch_department.add(3)
can_watch_department.add(int(item))
if token_data.manage_departments:
for item in token_data.manage_departments.split(","):
can_watch_department.add(int(item))
can_watch_department_list = [department_dict[item] for item in can_watch_department]
return {'item_list': can_watch_department_list, "count": len(can_watch_department_list)}
department_crud = auto_create_crud(Department, 'department', "部门", auto_create_keys=['id'], tags=["部门职务操作"])
post_crud = auto_create_crud(Post, 'post', "职务", auto_create_keys=['id'], tags=["部门职务操作"])
department_crud.mount(router)

View File

@ -37,6 +37,7 @@ class GetUserInfoRes(BaseModel):
post_list: Optional[List[PostInfo]]
name: Optional[str]
department: Optional[str]
manage_departments: Optional[str]
department_list: Optional[List[DepartmentInfo]]
registered: Optional[bool]
auth_data: Optional[str]
@ -47,6 +48,7 @@ class TokenData(BaseModel):
registered: bool
auth_data: Union[str, None]
department: Union[str, None]
manage_departments: Optional[str]
post: Union[str, None]
@ -54,6 +56,7 @@ class UserInfoChange(BaseModel):
email: str
name: Optional[str]
post: Optional[str]
manage_departments: Optional[str]
department: Optional[str]
registered: Optional[bool]
@ -62,6 +65,7 @@ class UserInfo(BaseModel):
email: str
name: str
post: str
manage_departments: Optional[str]
department: str
registered: bool
@ -72,6 +76,7 @@ class UserFullInfo(BaseModel):
post_list: Optional[List[PostInfo]]
name: Optional[str]
department: Optional[str]
manage_departments: Optional[str]
department_list: Optional[List[DepartmentInfo]]