gpt4 book ai didi

python - 在 flask 中设置权限

转载 作者:太空宇宙 更新时间:2023-11-03 13:15:41 25 4
gpt4 key购买 nike

我正在阅读 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 是如何在其自己的列中的。这样,您可以按位或将多个标志组合在一起,为用户提供任意组合的权限:

   0b00000001  # FOLLOW
0b00000010 # COMMENT
| 0b00000100 # WRITE_ARTICLES
=============
0b00000111 # FOLLOW, COMMENT, and WRITE_ARTICLES

要测试用户是否具有给定的权限,您可以使用给定的标志按位与它:

   0b10000101  # ???
& 0b10000000 # ADMINISTER
=============
0b10000000 # The result isn't 0, so the user has the ADMINISTER flag

这只是一种将固定数量的权限编码为整数的节省空间的方法。

关于python - 在 flask 中设置权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31016505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com