role.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import uuid
  2. from app.Log import logger
  3. from app.models.resource_model import ResourceModel, ResourceTypeModel
  4. from app.models.role_model import RoleModel
  5. async def role_list(db, page_size: int, page_index: int, keyword: str):
  6. query = db.query(RoleModel)
  7. if keyword:
  8. query = query.filter(RoleModel.name.like('%{}%'.format(keyword)))
  9. roles = query.order_by(RoleModel.id.desc()).limit(page_size).offset(
  10. (page_index - 1) * page_size).all()
  11. return {"total": query.count(), "rows": [role.to_json() for role in roles]}
  12. async def create_role(db, role_name: str, description: str, user_id):
  13. try:
  14. role_model = RoleModel(id=str(uuid.uuid4()),name=role_name, description=description,creator=user_id)
  15. db.add(role_model)
  16. db.commit()
  17. db.refresh(role_model)
  18. except Exception as e:
  19. logger.error(e)
  20. db.rollback()
  21. return False
  22. return True
  23. async def delete_role_data(db, role_id: str):
  24. try:
  25. db.query(RoleModel).filter(RoleModel.id == role_id).delete()
  26. db.commit()
  27. except Exception as e:
  28. logger.error(e)
  29. db.rollback()
  30. return False
  31. return True
  32. async def edit_role_status(db, status: str, role_id: str):
  33. try:
  34. db.query(RoleModel).filter(RoleModel.id == role_id).update({"status":status})
  35. db.commit()
  36. except Exception as e:
  37. logger.error(e)
  38. db.rollback()
  39. return False
  40. return True
  41. async def edit_role_resource(db, role_id:str, role_name:str, description:str, resources:list):
  42. try:
  43. role = db.query(RoleModel).filter(RoleModel.id == role_id).first()
  44. if role_name: role.name = role_name
  45. if description: role.description = description
  46. if resources:
  47. role.resources = [db.get(ResourceModel, resourcesId) for resourcesId in resources]
  48. db.add(role)
  49. db.commit()
  50. except Exception as e:
  51. logger.error(e)
  52. db.rollback()
  53. return False
  54. return True