我想问一下使用Google App Engine,Python处理基于角色的安全性的常用方法是什么?
在app.yaml中,有“登录”部分,但可用值仅为“admin”和“required”.
您通常如何处理基于角色的安全性?
>使用两个表创建模型:角色和UserRoles
>导入角色表的值
>手动将用户添加到UserRoles
>检查用户是否在正确的角色组中
任何其他想法或任何其他基于角色的安全方法,请告诉我们!
最佳答案
我会通过向表示
用户的模型
添加角色ListProperty来实现此目的.该列表包含给定
用户所属的任何角色.这样,如果您想知道给定
用户是否属于给定角色(我期望,最常见的操作),这是一个
快速的成员资格测试.
您可以将角色名称作为字符串直接放入列表中,或者将一个间接层添加到指定角色详细信息的另一个实体,以便以后更改细节.但是,这需要额外的RPC运行时成本来获取有关角色的详细信息.
如果要从给定角色中删除所有用户,或执行任何其他类型的全局操作,则会出现此方法的缺点.我想你可以将一个角色标记为“已删除”,但是在你手动清理它们之前,你仍然会让所有用户模型的数据混乱.所以我很想知道别人的建议.