open-law/app/models/permission/__init__.py

58 lines
1.6 KiB
Python

# flake8: noqa F401
from .access_group import AccessGroup
from .permission import Permission
from .user_access_groups import UserAccessGroups
from .permission_access_groups import PermissionAccessGroups
from .book_access_groups import BookAccessGroups
from .collection_access_groups import CollectionAccessGroups
from .section_access_groups import SectionAccessGroups
from .interpretation_access_groups import InterpretationAccessGroups
# 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
# Version:
# 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)
# 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