permission.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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-11-10 11:09:37 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from .views import BaseView
  14. from forums.extension import db
  15. from flask_maple.permission.models import Group, Router, Permission
  16. class GroupView(BaseView):
  17. column_editable_list = ['name']
  18. class RouterView(BaseView):
  19. column_editable_list = ['url', 'url_type']
  20. column_formatters = dict(
  21. url_type=lambda v, c, m, p: m.get_choice_display('url_type', 'URL_TYPE')
  22. )
  23. form_choices = {'url_type': Router.URL_TYPE}
  24. class PermissionView(BaseView):
  25. column_editable_list = ['allow', 'method']
  26. column_formatters = dict(
  27. allow=lambda v, c, m, p: m.get_choice_display('allow', 'PERMISSION'),
  28. method=lambda v, c, m, p: m.get_choice_display('method', 'METHOD'), )
  29. form_choices = {
  30. 'allow': Permission.PERMISSION,
  31. 'method': Permission.METHOD
  32. }
  33. def init_admin(admin):
  34. admin.add_view(
  35. GroupView(
  36. Group,
  37. db.session,
  38. name='管理用户组',
  39. endpoint='admin_groups',
  40. category='管理权限'))
  41. admin.add_view(
  42. RouterView(
  43. Router,
  44. db.session,
  45. name='管理路由',
  46. endpoint='admin_routers',
  47. category='管理权限'))
  48. admin.add_view(
  49. PermissionView(
  50. Permission,
  51. db.session,
  52. name='管理权限',
  53. endpoint='admin_permiss',
  54. category='管理权限'))