feat: add personal and group view ownership
This commit is contained in:
@@ -31,6 +31,10 @@ MODULE_VERSION = "0.1.0"
|
||||
|
||||
DEFINITION_READ_SCOPE = "views:definition:read"
|
||||
DEFINITION_WRITE_SCOPE = "views:definition:write"
|
||||
GROUP_DEFINITION_READ_SCOPE = "views:group_definition:read"
|
||||
GROUP_DEFINITION_WRITE_SCOPE = "views:group_definition:write"
|
||||
PERSONAL_DEFINITION_READ_SCOPE = "views:personal_definition:read"
|
||||
PERSONAL_DEFINITION_WRITE_SCOPE = "views:personal_definition:write"
|
||||
ASSIGNMENT_READ_SCOPE = "views:assignment:read"
|
||||
ASSIGNMENT_WRITE_SCOPE = "views:assignment:write"
|
||||
SELECTION_READ_SCOPE = "views:selection:read"
|
||||
@@ -72,6 +76,26 @@ PERMISSIONS = (
|
||||
"Manage tenant Views",
|
||||
"Create, revise, publish, and archive tenant View definitions.",
|
||||
),
|
||||
_permission(
|
||||
GROUP_DEFINITION_READ_SCOPE,
|
||||
"View group Views",
|
||||
"Read View definitions owned by groups the account belongs to.",
|
||||
),
|
||||
_permission(
|
||||
GROUP_DEFINITION_WRITE_SCOPE,
|
||||
"Manage group Views",
|
||||
"Create, revise, publish, and archive Views owned by the account's groups.",
|
||||
),
|
||||
_permission(
|
||||
PERSONAL_DEFINITION_READ_SCOPE,
|
||||
"View personal Views",
|
||||
"Read View definitions owned by the current account.",
|
||||
),
|
||||
_permission(
|
||||
PERSONAL_DEFINITION_WRITE_SCOPE,
|
||||
"Manage personal Views",
|
||||
"Create, revise, publish, and archive Views owned by the current account.",
|
||||
),
|
||||
_permission(
|
||||
ASSIGNMENT_READ_SCOPE,
|
||||
"View tenant View assignments",
|
||||
@@ -126,17 +150,39 @@ ROLE_TEMPLATES = (
|
||||
permissions=(
|
||||
DEFINITION_READ_SCOPE,
|
||||
DEFINITION_WRITE_SCOPE,
|
||||
GROUP_DEFINITION_READ_SCOPE,
|
||||
GROUP_DEFINITION_WRITE_SCOPE,
|
||||
PERSONAL_DEFINITION_READ_SCOPE,
|
||||
PERSONAL_DEFINITION_WRITE_SCOPE,
|
||||
ASSIGNMENT_READ_SCOPE,
|
||||
ASSIGNMENT_WRITE_SCOPE,
|
||||
SELECTION_READ_SCOPE,
|
||||
SELECTION_WRITE_SCOPE,
|
||||
),
|
||||
),
|
||||
RoleTemplate(
|
||||
slug="view_designer",
|
||||
name="View designer",
|
||||
description="Design personal Views and reusable Views for assigned groups.",
|
||||
permissions=(
|
||||
GROUP_DEFINITION_READ_SCOPE,
|
||||
GROUP_DEFINITION_WRITE_SCOPE,
|
||||
PERSONAL_DEFINITION_READ_SCOPE,
|
||||
PERSONAL_DEFINITION_WRITE_SCOPE,
|
||||
SELECTION_READ_SCOPE,
|
||||
SELECTION_WRITE_SCOPE,
|
||||
),
|
||||
),
|
||||
RoleTemplate(
|
||||
slug="view_user",
|
||||
name="View user",
|
||||
description="Use and select Views made available to the account.",
|
||||
permissions=(SELECTION_READ_SCOPE, SELECTION_WRITE_SCOPE),
|
||||
description="Use available Views and design Views for the current account.",
|
||||
permissions=(
|
||||
PERSONAL_DEFINITION_READ_SCOPE,
|
||||
PERSONAL_DEFINITION_WRITE_SCOPE,
|
||||
SELECTION_READ_SCOPE,
|
||||
SELECTION_WRITE_SCOPE,
|
||||
),
|
||||
default_authenticated=True,
|
||||
),
|
||||
)
|
||||
@@ -203,6 +249,14 @@ manifest = ModuleManifest(
|
||||
description="Edit tenant, group, and user Views and assignments.",
|
||||
order=30,
|
||||
),
|
||||
ViewSurface(
|
||||
id="views.settings.personal",
|
||||
module_id=MODULE_ID,
|
||||
kind="section",
|
||||
label="Personal and group Views",
|
||||
description="Design reusable Views owned by the account or its groups.",
|
||||
order=40,
|
||||
),
|
||||
),
|
||||
),
|
||||
route_factory=_router,
|
||||
@@ -269,6 +323,10 @@ __all__ = [
|
||||
"ASSIGNMENT_WRITE_SCOPE",
|
||||
"DEFINITION_READ_SCOPE",
|
||||
"DEFINITION_WRITE_SCOPE",
|
||||
"GROUP_DEFINITION_READ_SCOPE",
|
||||
"GROUP_DEFINITION_WRITE_SCOPE",
|
||||
"PERSONAL_DEFINITION_READ_SCOPE",
|
||||
"PERSONAL_DEFINITION_WRITE_SCOPE",
|
||||
"MODULE_ID",
|
||||
"MODULE_VERSION",
|
||||
"SELECTION_READ_SCOPE",
|
||||
|
||||
Reference in New Issue
Block a user