access.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. # -*- coding: utf-8 -*-
  2. """
  3. walle-web
  4. :copyright: © 2015-2017 walle-web.io
  5. :created time: 2017-03-25 11:15:01
  6. :author: wushuiyong@walle-web.io
  7. """
  8. from flask import request
  9. from walle.api.api import SecurityResource
  10. from walle.model.user import MenuModel
  11. from walle.model.user import RoleModel
  12. class AccessAPI(SecurityResource):
  13. controller = 'access'
  14. """
  15. 权限是以resource + method作为一个access
  16. """
  17. def get(self, access_id=None):
  18. """
  19. fetch access list or one access
  20. :return:
  21. """
  22. super(AccessAPI, self).get()
  23. return self.item(access_id) if access_id else self.list()
  24. def list(self):
  25. """
  26. fetch access list
  27. /access/
  28. :return:
  29. """
  30. access_model = MenuModel()
  31. access_list = access_model.list()
  32. return self.render_json(data=access_list)
  33. def item(self, access_id):
  34. """
  35. /access/<int:access_id>
  36. :param access_id:
  37. :return:
  38. """
  39. access_info = RoleModel().list(size=1000)
  40. data = MenuModel.query.all()
  41. list = [p.to_json() for p in data]
  42. return self.render_json(data=list)
  43. def post(self):
  44. """
  45. 新增角色
  46. /access/
  47. :return:
  48. """
  49. super(AccessAPI, self).post()
  50. access_name = request.form.get('access_name', None)
  51. access_permissions_ids = request.form.get('access_ids', '')
  52. access_model = RoleModel()
  53. access_id = access_model.add(name=access_name, access_ids=access_permissions_ids)
  54. if not access_id:
  55. self.render_json(code=-1)
  56. return self.render_json(data=access_model.item())
  57. def put(self, access_id):
  58. """
  59. 修改角色
  60. /access/<int:access_id>
  61. :param access_id:
  62. :return:
  63. """
  64. super(AccessAPI, self).put()
  65. access_name = request.form.get('access_name', None)
  66. access_ids = request.form.get('access_ids', '')
  67. if not access_name:
  68. return self.render_json(code=-1, message='access_name can not be empty')
  69. access_model = RoleModel(id=access_id)
  70. ret = access_model.update(name=access_name, access_ids=access_ids)
  71. return self.render_json(data=access_model.item())
  72. def delete(self, access_id):
  73. """
  74. 删除一个角色
  75. /access/<int:access_id>
  76. :return:
  77. """
  78. super(AccessAPI, self).delete()
  79. access_model = RoleModel(id=access_id)
  80. ret = access_model.remove()
  81. return self.render_json(code=0)