2023-05-24 14:48:47 +03:00
|
|
|
# flake8: noqa F401
|
|
|
|
from .access_group import AccessGroup
|
|
|
|
from .permission import Permission
|
|
|
|
from .user_access_groups import UserAccessGroups
|
|
|
|
from .permission_access_groups import PermissionAccessGroups
|
2023-05-24 17:06:33 +03:00
|
|
|
from .book_access_groups import BookAccessGroups
|
|
|
|
from .collection_access_groups import CollectionAccessGroups
|
|
|
|
from .section_access_groups import SectionAccessGroups
|
|
|
|
from .interpretation_access_groups import InterpretationAccessGroups
|
2023-05-24 14:48:47 +03:00
|
|
|
|
|
|
|
# access groups
|
|
|
|
# moderators(by default empty) -> root collection -> CRUD Interpretation, Comment
|
|
|
|
# editors(by default empty) -> root collection -> CRUD Collection, Section
|
|
|
|
#
|
|
|
|
# on create collection/section -> inherit parent's access groups
|
|
|
|
#
|
|
|
|
|
|
|
|
# add to collection, sections, ...
|
|
|
|
# - access_groups -> access group table
|
|
|
|
|
|
|
|
# access group:
|
|
|
|
# - name
|
|
|
|
# - users many-to-many = []
|
|
|
|
# - permissions many-to-many = []
|
|
|
|
|
|
|
|
# permission:
|
|
|
|
# - access [Enum(CRUD)]
|
|
|
|
# - entity [Enum(collection, sections, ...)]
|
|
|
|
# - access_group -> access group table
|
|
|
|
|
|
|
|
|
|
|
|
# Book
|
2023-05-24 17:06:33 +03:00
|
|
|
# Version:
|
2023-05-24 14:48:47 +03:00
|
|
|
# Root Collection
|
|
|
|
# Collection A
|
|
|
|
# Section
|
|
|
|
# Section
|
|
|
|
# Collection B
|
|
|
|
# SubCollection B.1
|
|
|
|
# Section
|
|
|
|
# Section
|
|
|
|
# SubCollection B.2
|
|
|
|
# Section
|
|
|
|
# Section
|
|
|
|
|
|
|
|
# If the user has CRUD access to Collection B it means that
|
|
|
|
# it has access to all nested entities(SubCollection B.1/B.2, Sections)
|
2023-05-24 17:06:33 +03:00
|
|
|
|
|
|
|
|
|
|
|
# 1) Create moderator_AG and editor_AG on book create
|
|
|
|
# 2) Inherit parent's access groups
|
|
|
|
|
|
|
|
# TODO many to many
|
|
|
|
# book -> access_group
|
|
|
|
# collections -> access_group
|
|
|
|
# section -> access_group
|
|
|
|
# interpretation -> access_group
|