Wrapper functions for registering and unregistering permissions

This commit is contained in:
Ben 2020-05-17 03:24:51 +01:00
parent 8e33779ed8
commit 38e4a1e0fa

View File

@ -21,6 +21,18 @@ class PermissionCollection(AbstractDataCollection):
__indexby__ = 'name'
__filterby__ = 'name'
async def register(self, permission_name):
permission_parts = permission_name.split('.')
for permission_index in range(1, len(permission_parts) + 1):
permission_name = '.'.join(permission_parts[:permission_index])
if permission_name not in self:
await self.insert(name=permission_name)
async def unregister(self, permission_name):
for permission in self.values():
if permission.name == permission_name or permission.name.startswith(permission_name):
await self.delete(permission.name)
class PenguinPermissionCollection(AbstractDataCollection):
__model__ = PenguinPermission