permission.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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-06-09 19:53:35 (CST)
  9. # Last Update:星期日 2016-7-24 12:55:47 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from flask_principal import Permission, RoleNeed
  14. from collections import namedtuple
  15. from functools import partial
  16. TopicNeed = namedtuple('topic', ['method', 'value'])
  17. EditTopicNeed = partial(TopicNeed, 'edit')
  18. ReplyNeed = namedtuple('reply', ['method', 'value'])
  19. EditReplyNeed = partial(TopicNeed, 'edit')
  20. CollectNeed = namedtuple('collect', ['method', 'value'])
  21. GetCollect = partial(CollectNeed, 'get')
  22. PostCollect = partial(CollectNeed, 'post')
  23. PutCollect = partial(CollectNeed, 'put')
  24. DeleteCollect = partial(CollectNeed, 'delete')
  25. LikeNeed = namedtuple('like', ['method', 'value'])
  26. GetLike = partial(CollectNeed, 'get')
  27. class EditTopicPermission(Permission):
  28. def __init__(self, topicId):
  29. need = EditTopicNeed(topicId)
  30. super(EditTopicPermission, self).__init__(need)
  31. class EditReplyPermission(Permission):
  32. def __init__(self, replyId):
  33. need = EditReplyNeed(replyId)
  34. super(EditReplyPermission, self).__init__(need)
  35. super_permission = Permission(RoleNeed('super'))