角色在数据库中的表示
class Permission: # 权限常量
FOLLOW = 0x01 # 关注用户
COMMENT = 0x02 # 发表评论
WRITE_ARTICLES = 0x04 # 写文章
MODERATE_COMMENTS =0x08 # 管理他们发表的评价
ADMINISTER = 0x80 # 管理员权限
class Role(db.Model):
__tablename__ = 'roles'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True)
default = db.Column(db.Boolean, default=False, index=True)
permissions = db.Column(db.Integer)
users = db.relationship('User', backref='role')
def __init__(self, **kwargs): # 初始化角色权限
super(Role, self).__init__(**kwargs)
if self.permissions is None:
self.permissions = 0
@staticmethod # # 静态方法无需实例化
def insert_roles():
roles = { # 角色名对应权限
'User' : [Permission.FOLLOW, Permission