#!/usr/bin/env python # -*- coding=UTF-8 -*- # ************************************************************************** # Copyright © 2016 jianglin # File Name: permission.py # Author: jianglin # Email: xiyang0807@gmail.com # Created: 2016-06-09 19:53:35 (CST) # Last Update:星期日 2016-7-24 12:55:47 (CST) # By: # Description: # ************************************************************************** from flask_principal import Permission, RoleNeed from collections import namedtuple from functools import partial TopicNeed = namedtuple('topic', ['method', 'value']) EditTopicNeed = partial(TopicNeed, 'edit') ReplyNeed = namedtuple('reply', ['method', 'value']) EditReplyNeed = partial(TopicNeed, 'edit') CollectNeed = namedtuple('collect', ['method', 'value']) GetCollect = partial(CollectNeed, 'get') PostCollect = partial(CollectNeed, 'post') PutCollect = partial(CollectNeed, 'put') DeleteCollect = partial(CollectNeed, 'delete') LikeNeed = namedtuple('like', ['method', 'value']) GetLike = partial(CollectNeed, 'get') class EditTopicPermission(Permission): def __init__(self, topicId): need = EditTopicNeed(topicId) super(EditTopicPermission, self).__init__(need) class EditReplyPermission(Permission): def __init__(self, replyId): need = EditReplyNeed(replyId) super(EditReplyPermission, self).__init__(need) super_permission = Permission(RoleNeed('super'))