mirror of https://github.com/logos-co/open-law.git
create_editor_group
This commit is contained in:
parent
8ae2b8e009
commit
6abd2fad19
|
@ -14,6 +14,7 @@
|
||||||
"backref",
|
"backref",
|
||||||
"bookname",
|
"bookname",
|
||||||
"Btns",
|
"Btns",
|
||||||
|
"CUDA",
|
||||||
"Divs",
|
"Divs",
|
||||||
"flowbite",
|
"flowbite",
|
||||||
"jsonify",
|
"jsonify",
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
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
|
|
@ -1,29 +0,0 @@
|
||||||
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()
|
|
||||||
|
|
||||||
interpretation_DA = get_or_create_permission(
|
|
||||||
access=m.Permission.Access.D | m.Permission.Access.A,
|
|
||||||
entity_type=m.Permission.Entity.INTERPRETATION,
|
|
||||||
)
|
|
||||||
comment_DA = get_or_create_permission(
|
|
||||||
access=m.Permission.Access.D | m.Permission.Access.A,
|
|
||||||
entity_type=m.Permission.Entity.COMMENT,
|
|
||||||
)
|
|
||||||
|
|
||||||
log(log.INFO, "Add permission [%d] to group[%d]", interpretation_DA.id, group.id)
|
|
||||||
m.PermissionAccessGroups(
|
|
||||||
permission_id=interpretation_DA.id, access_group_id=group.id
|
|
||||||
).save()
|
|
||||||
|
|
||||||
log(log.INFO, "Add permission [%d] to group[%d]", comment_DA.id, group.id)
|
|
||||||
m.PermissionAccessGroups(
|
|
||||||
permission_id=comment_DA.id, access_group_id=group.id
|
|
||||||
).save()
|
|
||||||
|
|
||||||
return group
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
from app.controllers.create_access_groups import (
|
||||||
|
create_moderator_group,
|
||||||
|
create_editor_group,
|
||||||
|
)
|
||||||
|
from app import models as m
|
||||||
|
|
||||||
|
|
||||||
|
def test_init_moderator_group(client):
|
||||||
|
create_moderator_group()
|
||||||
|
|
||||||
|
group: m.AccessGroup = m.AccessGroup.query.filter_by(name="moderator").first()
|
||||||
|
assert group
|
||||||
|
assert not group.users
|
||||||
|
assert group.permissions
|
||||||
|
|
||||||
|
permissions = group.permissions
|
||||||
|
|
||||||
|
access = m.Permission.Access
|
||||||
|
|
||||||
|
interpretation_DA: m.Permission = m.Permission.query.filter_by(
|
||||||
|
access=access.D | access.A, entity_type=m.Permission.Entity.INTERPRETATION
|
||||||
|
).first()
|
||||||
|
assert interpretation_DA
|
||||||
|
assert interpretation_DA in permissions
|
||||||
|
|
||||||
|
comment_DA: m.Permission = m.Permission.query.filter_by(
|
||||||
|
access=access.D | access.A, entity_type=m.Permission.Entity.COMMENT
|
||||||
|
).first()
|
||||||
|
assert comment_DA
|
||||||
|
assert comment_DA in permissions
|
||||||
|
|
||||||
|
create_moderator_group()
|
||||||
|
groups: list[m.AccessGroup] = m.AccessGroup.query.filter_by(name="moderator").all()
|
||||||
|
assert len(groups) == 2
|
||||||
|
|
||||||
|
|
||||||
|
def test_init_editor_group(client):
|
||||||
|
create_editor_group()
|
||||||
|
|
||||||
|
group: m.AccessGroup = m.AccessGroup.query.filter_by(name="editor").first()
|
||||||
|
assert group
|
||||||
|
assert not group.users
|
||||||
|
assert group.permissions
|
||||||
|
|
||||||
|
permissions = group.permissions
|
||||||
|
|
||||||
|
access = m.Permission.Access
|
||||||
|
|
||||||
|
interpretation_DA: m.Permission = m.Permission.query.filter_by(
|
||||||
|
access=access.D | access.A, entity_type=m.Permission.Entity.INTERPRETATION
|
||||||
|
).first()
|
||||||
|
assert interpretation_DA
|
||||||
|
assert interpretation_DA in permissions
|
||||||
|
|
||||||
|
comment_DA: m.Permission = m.Permission.query.filter_by(
|
||||||
|
access=access.D | access.A, entity_type=m.Permission.Entity.COMMENT
|
||||||
|
).first()
|
||||||
|
assert comment_DA
|
||||||
|
assert comment_DA in permissions
|
||||||
|
|
||||||
|
section_CUD: m.Permission = m.Permission.query.filter_by(
|
||||||
|
access=access.C | access.U | access.D,
|
||||||
|
entity_type=m.Permission.Entity.SECTION,
|
||||||
|
).first()
|
||||||
|
assert section_CUD
|
||||||
|
assert section_CUD in permissions
|
||||||
|
|
||||||
|
collection_CUD: m.Permission = m.Permission.query.filter_by(
|
||||||
|
access=access.C | access.U | access.D,
|
||||||
|
entity_type=m.Permission.Entity.COLLECTION,
|
||||||
|
).first()
|
||||||
|
assert collection_CUD
|
||||||
|
assert collection_CUD in permissions
|
||||||
|
|
||||||
|
book_U: m.Permission = m.Permission.query.filter_by(
|
||||||
|
access=access.U,
|
||||||
|
entity_type=m.Permission.Entity.BOOK,
|
||||||
|
).first()
|
||||||
|
assert book_U
|
||||||
|
assert book_U in permissions
|
||||||
|
|
||||||
|
create_editor_group()
|
||||||
|
groups: list[m.AccessGroup] = m.AccessGroup.query.filter_by(name="editor").all()
|
||||||
|
assert len(groups) == 2
|
|
@ -1,31 +0,0 @@
|
||||||
from app.controllers.init_access_groups import create_moderator_group
|
|
||||||
from app import models as m
|
|
||||||
|
|
||||||
|
|
||||||
def test_init_moderator_group(client):
|
|
||||||
create_moderator_group()
|
|
||||||
|
|
||||||
group: m.AccessGroup = m.AccessGroup.query.filter_by(name="moderator").first()
|
|
||||||
assert group
|
|
||||||
assert not group.users
|
|
||||||
assert group.permissions
|
|
||||||
|
|
||||||
permissions = group.permissions
|
|
||||||
|
|
||||||
access = m.Permission.Access
|
|
||||||
|
|
||||||
interpretation_DA: m.Permission = m.Permission.query.filter_by(
|
|
||||||
access=access.D | access.A, entity_type=m.Permission.Entity.INTERPRETATION
|
|
||||||
).first()
|
|
||||||
assert interpretation_DA
|
|
||||||
assert interpretation_DA in permissions
|
|
||||||
|
|
||||||
comment_DA: m.Permission = m.Permission.query.filter_by(
|
|
||||||
access=access.D | access.A, entity_type=m.Permission.Entity.COMMENT
|
|
||||||
).first()
|
|
||||||
assert comment_DA
|
|
||||||
assert comment_DA in permissions
|
|
||||||
|
|
||||||
create_moderator_group()
|
|
||||||
groups: list[m.AccessGroup] = m.AccessGroup.query.filter_by(name="moderator").all()
|
|
||||||
assert len(groups) == 2
|
|
Loading…
Reference in New Issue