permission.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2016 jianglin
  5. # File Name: permission.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2016-12-17 09:39:36 (CST)
  9. # Last Update:星期三 2017-1-25 20:25:57 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from .views import BaseView
  14. from forums.extension import db
  15. from api.permission.models import Group, Router, Permission
  16. __all__ = ['register_permission']
  17. class GroupView(BaseView):
  18. column_editable_list = ['name']
  19. class RouterView(BaseView):
  20. column_editable_list = ['url', 'url_type']
  21. column_formatters = dict(
  22. url_type=lambda v, c, m, p: m.get_choice_display('url_type', 'URL_TYPE')
  23. )
  24. form_choices = {'url_type': Router.URL_TYPE}
  25. class PermissionView(BaseView):
  26. column_editable_list = ['allow', 'method']
  27. column_formatters = dict(
  28. allow=lambda v, c, m, p: m.get_choice_display('allow', 'PERMISSION'),
  29. method=lambda v, c, m, p: m.get_choice_display('method', 'METHOD'), )
  30. form_choices = {
  31. 'allow': Permission.PERMISSION,
  32. 'method': Permission.METHOD
  33. }
  34. def register_permission(admin):
  35. admin.add_view(
  36. GroupView(
  37. Group,
  38. db.session,
  39. name='管理用户组',
  40. endpoint='admin_groups',
  41. category='管理权限'))
  42. admin.add_view(
  43. RouterView(
  44. Router,
  45. db.session,
  46. name='管理路由',
  47. endpoint='admin_routers',
  48. category='管理权限'))
  49. admin.add_view(
  50. PermissionView(
  51. Permission,
  52. db.session,
  53. name='管理权限',
  54. endpoint='admin_permiss',
  55. category='管理权限'))