def register(self, name, description='', app=None, min_level=1, namespace=None):
"""
Register a new permission.
:param name: Name of permission
:param description: Description in english.
:param app: App instance to retrieve the label.
:param min_level: Minimum level required.
:param namespace: Namespace, only for core usage!
:return: Permission instance.
"""
if not namespace and app:
namespace = app.label
if not namespace:
raise Exception('Namespace is required. You should give your app instance with app=app instead!')
try:
perm = await self.get_perm(namespace=namespace, name=name)
# TODO: Implement overrides on min_level here.
if perm.min_level != min_level:
perm.min_level = min_level
await perm.save()
except DoesNotExist:
perm = Permission(namespace=namespace, name=name, description=description, min_level=min_level)
await perm.save()
return perm
评论列表
文章目录