python – 在flask中设置权限
发布时间:2020-12-20 11:43:50 所属栏目:Python 来源:网络整理
导读:我正在阅读Miguel Grinberg撰写的Flask Web Development书籍,我对他如何为应用程序中的各种任务设置权限感到困惑.他只是为每个任务设置随机位值吗? class Permission: FOLLOW = 0x01 COMMENT = 0x02 WRITE_ARTICLES = 0x04 MODERATE_COMMENTS = 0x08 ADMINI
我正在阅读Miguel Grinberg撰写的Flask Web Development书籍,我对他如何为应用程序中的各种任务设置权限感到困惑.他只是为每个任务设置随机位值吗?
class Permission: FOLLOW = 0x01 COMMENT = 0x02 WRITE_ARTICLES = 0x04 MODERATE_COMMENTS = 0x08 ADMINISTER = 0x80 他继续说“每个任务都将分配一个位置,对于每个角色,该角色允许的任务将其位设置为1”.我不太确定他的意思. 解决方法
将每个权限标志表示为8位二进制整数:
class Permission: FOLLOW = 0b00000001 COMMENT = 0b00000010 WRITE_ARTICLES = 0b00000100 MODERATE_COMMENTS = 0b00001000 ADMINISTER = 0b10000000 注意每个标志如何,1在它自己的列中.这样,您可以将多个标志按位OR,以便为用户提供任何权限组合: 0b00000001 # FOLLOW 0b00000010 # COMMENT | 0b00000100 # WRITE_ARTICLES ============= 0b00000111 # FOLLOW,COMMENT,and WRITE_ARTICLES 要测试用户是否具有给定权限,请使用给定标志按位AND它: 0b10000101 # ??? & 0b10000000 # ADMINISTER ============= 0b10000000 # The result isn't 0,so the user has the ADMINISTER flag 它只是一种在整数中编码固定数量权限的节省空间的方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |