mirror of https://github.com/logos-co/open-law.git
74 lines
2.3 KiB
Python
74 lines
2.3 KiB
Python
|
from app import models as m
|
||
|
from app.logger import log
|
||
|
from .get_or_create_permission import get_or_create_permission
|
||
|
|
||
|
|
||
|
def create_moderator_group():
|
||
|
log(log.INFO, "Create moderator access group")
|
||
|
group: m.AccessGroup = m.AccessGroup(name="moderator").save()
|
||
|
permissions = []
|
||
|
|
||
|
comment_DA = get_or_create_permission(
|
||
|
access=m.Permission.Access.D | m.Permission.Access.A,
|
||
|
entity_type=m.Permission.Entity.COMMENT,
|
||
|
)
|
||
|
permissions.append(comment_DA)
|
||
|
|
||
|
interpretation_DA = get_or_create_permission(
|
||
|
access=m.Permission.Access.D | m.Permission.Access.A,
|
||
|
entity_type=m.Permission.Entity.INTERPRETATION,
|
||
|
)
|
||
|
permissions.append(interpretation_DA)
|
||
|
|
||
|
for permission in permissions:
|
||
|
log(log.INFO, "Add permission [%d] to group[%d]", permission.id, group.id)
|
||
|
m.PermissionAccessGroups(
|
||
|
permission_id=permission.id, access_group_id=group.id
|
||
|
).save()
|
||
|
|
||
|
return group
|
||
|
|
||
|
|
||
|
def create_editor_group():
|
||
|
log(log.INFO, "Create editor access group")
|
||
|
group: m.AccessGroup = m.AccessGroup(name="editor").save()
|
||
|
permissions = []
|
||
|
|
||
|
comment_DA = get_or_create_permission(
|
||
|
access=m.Permission.Access.D | m.Permission.Access.A,
|
||
|
entity_type=m.Permission.Entity.COMMENT,
|
||
|
)
|
||
|
permissions.append(comment_DA)
|
||
|
|
||
|
interpretation_DA = get_or_create_permission(
|
||
|
access=m.Permission.Access.D | m.Permission.Access.A,
|
||
|
entity_type=m.Permission.Entity.INTERPRETATION,
|
||
|
)
|
||
|
permissions.append(interpretation_DA)
|
||
|
|
||
|
section_CUD = get_or_create_permission(
|
||
|
access=m.Permission.Access.C | m.Permission.Access.U | m.Permission.Access.D,
|
||
|
entity_type=m.Permission.Entity.SECTION,
|
||
|
)
|
||
|
permissions.append(section_CUD)
|
||
|
|
||
|
collection_CUD = get_or_create_permission(
|
||
|
access=m.Permission.Access.C | m.Permission.Access.U | m.Permission.Access.D,
|
||
|
entity_type=m.Permission.Entity.COLLECTION,
|
||
|
)
|
||
|
permissions.append(collection_CUD)
|
||
|
|
||
|
book_U = get_or_create_permission(
|
||
|
access=m.Permission.Access.U,
|
||
|
entity_type=m.Permission.Entity.BOOK,
|
||
|
)
|
||
|
permissions.append(book_U)
|
||
|
|
||
|
for permission in permissions:
|
||
|
log(log.INFO, "Add permission [%d] to group[%d]", permission.id, group.id)
|
||
|
m.PermissionAccessGroups(
|
||
|
permission_id=permission.id, access_group_id=group.id
|
||
|
).save()
|
||
|
|
||
|
return group
|