为IScore库烫发
django-fperms-iscore的Python项目详细描述
为IScore库烫发
快速启动
安装django fperms iscore:
pip install django-fperms-iscore
将其添加到已安装的应用程序中:
INSTALLED_APPS=(...'fperms_iscore.apps.FPermsConfig',...)
它包含来自http://github.com/formulka/django-fperms的所有基本权限,并添加一个新类型:
- core:对于IScore特定资源
用法
超级用户拥有做任何事情的意图和目的的权限。对于普通用户,可以直接或通过用户组分配权限。
创建新权限:
您可以直接通过其模型或特殊格式的字符串创建新权限:
fromfperms_iscoreimportenumsfromfperms_iscore.modelsimportIsCorePermIsCorePerm.objects.create(type=enums.PERM_TYPE_CORE,codename='create',core='issue_tracker.IssueIsCore',)IsCorePerm.objects.create_from_str('core.issue_tracker.IssueIsCore.create')
分配权限:
可以通过自定义的^ {TT1}$Manager为用户(包括自定义的)和组模型分配现有权限。您可以直接通过其实例或使用格式化的字符串来添加单个或多个权限:
fromdjango.auth.modelsimportUser,Groupfromfperms_iscore.modelsimportIsCorePermperm=IsCorePerm.objects.create_from_str('core.issue_tracker.IssueIsCore.create')user=User.objects.get(pk=1)user.perms.add_perm(perm)group=Group.objects.get(pk=1)group.perms.add_perm('core.issue_tracker.IssueIsCore.create')
默认情况下,如果该权限不存在,它将引发异常。您可以通过将项目设置中的^ TT2}$变量设置为{TT3}$来覆盖此行为,如果不存在,则指定权限也将创建它。
检索权限实例:
可以直接从模型或通过字符串表示获取权限实例。
perm=IsCorePerm.objects.get(type=enums.PERM_TYPE_CORE,codename='create',core='issue_tracker.IssueIsCore',)perm=IsCorePerm.objects.get_from_str('core.issue_tracker.IssueIsCore.create')
检查权限:
您可以使用权限实例或字符串表示再次通过perms管理器的has_perm方法检查用户或组是否具有所需的权限。
...perm=IsCorePerm.objects.create(type=enums.PERM_TYPE_CORE,codename='create',core='issue_tracker.IssueIsCore',)assertuser.perms.has_perm(perm)assertuser.perms.has_perm('core.issue_tracker.IssueIsCore.create')
新烫发类型
core
- IScore特定资源的权限
- 类型定义为fperms_iscore.enums.PERM_TYPE_CORE
- 代码名通常是CRUD操作之一(创建、读取、更新、删除)
- 它需要type、codename和core字段
- 字符串表示是'core.<app_label>.<core_name>.<codename>'
...# equivalent results:IsCorePerm.objects.create(type=enums.PERM_TYPE_CORE,codename='create',core='issue_tracker.IssueIsCore',)IsCorePerm.objects.create_from_str('core.issue_tracker.IssueIsCore.create')
运行测试
代码真的有用吗?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install tox (myenv) $ tox
运行测试
代码真的有用吗?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install tox (myenv) $ tox
历史记录
0.1.0(2018-03-13)
- pypi上的第一个版本。