wbcore 1.61.3__py2.py3-none-any.whl → 1.61.5__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wbcore/configurations/base.py +2 -2
- wbcore/configurations/configurations/apps.py +1 -1
- wbcore/configurations/configurations/rest_framework.py +1 -1
- wbcore/contrib/agenda/viewsets/menu/calendar_items.py +1 -2
- wbcore/contrib/agenda/viewsets/menu/conference_room.py +4 -5
- wbcore/contrib/authentication/admin.py +15 -2
- wbcore/contrib/authentication/factories/users.py +4 -2
- wbcore/contrib/authentication/migrations/0008_user_is_internal.py +18 -0
- wbcore/contrib/authentication/models/users.py +16 -6
- wbcore/contrib/authentication/serializers/users.py +1 -1
- wbcore/contrib/authentication/viewsets/menu/user_activities.py +6 -3
- wbcore/contrib/authentication/viewsets/menu/users.py +1 -2
- wbcore/contrib/authentication/viewsets/users.py +2 -2
- wbcore/contrib/currency/tests/test_serializers.py +3 -1
- wbcore/contrib/directory/admin/entries.py +1 -1
- wbcore/contrib/directory/models/entries.py +21 -30
- wbcore/contrib/directory/tests/test_permissions.py +2 -4
- wbcore/contrib/directory/viewsets/endpoints/relationships.py +1 -2
- wbcore/contrib/directory/viewsets/entries.py +1 -1
- wbcore/contrib/directory/viewsets/menu/contacts.py +2 -3
- wbcore/contrib/directory/viewsets/menu/entries.py +5 -14
- wbcore/contrib/directory/viewsets/menu/relationships.py +2 -3
- wbcore/contrib/directory/viewsets/menu/utils.py +8 -9
- wbcore/contrib/documents/models/documents.py +1 -1
- wbcore/contrib/documents/viewsets/documents.py +3 -3
- wbcore/contrib/geography/viewsets/geography.py +1 -1
- wbcore/contrib/permission/apps.py +15 -0
- wbcore/contrib/permission/configurations.py +3 -0
- wbcore/contrib/{guardian → permission}/filters.py +2 -2
- wbcore/contrib/permission/internal/registry.py +43 -0
- wbcore/contrib/permission/management/__init__.py +4 -0
- wbcore/contrib/permission/migrations/0001_initial.py +54 -0
- wbcore/contrib/{guardian → permission}/models/mixins.py +73 -3
- wbcore/{permissions → contrib/permission}/permissions.py +1 -3
- wbcore/contrib/permission/tasks.py +18 -0
- wbcore/{tests/test_permissions → contrib/permission/tests}/test_backend.py +4 -6
- wbcore/contrib/{guardian → permission}/tests/test_model_mixins.py +6 -6
- wbcore/contrib/{guardian → permission}/tests/test_tasks.py +7 -7
- wbcore/contrib/{guardian → permission}/tests/test_utils.py +12 -12
- wbcore/contrib/{guardian → permission}/tests/test_viewsets.py +3 -3
- wbcore/contrib/{guardian → permission}/urls.py +1 -1
- wbcore/contrib/{guardian → permission}/utils.py +32 -4
- wbcore/contrib/{guardian → permission}/viewsets/configs/buttons.py +2 -2
- wbcore/contrib/{guardian → permission}/viewsets/configs/displays.py +1 -1
- wbcore/contrib/{guardian → permission}/viewsets/configs/endpoints.py +3 -3
- wbcore/contrib/{guardian → permission}/viewsets/configs/titles.py +1 -1
- wbcore/contrib/{guardian → permission}/viewsets/mixins.py +2 -2
- wbcore/contrib/{guardian → permission}/viewsets/viewsets.py +2 -2
- wbcore/contrib/workflow/viewsets/menu/condition.py +2 -3
- wbcore/contrib/workflow/viewsets/menu/data.py +2 -7
- wbcore/contrib/workflow/viewsets/menu/process.py +2 -5
- wbcore/contrib/workflow/viewsets/menu/step.py +16 -21
- wbcore/contrib/workflow/viewsets/menu/transition.py +2 -3
- wbcore/contrib/workflow/viewsets/menu/workflow.py +2 -5
- wbcore/tests/models.py +1 -1
- wbcore/urls.py +2 -2
- {wbcore-1.61.3.dist-info → wbcore-1.61.5.dist-info}/METADATA +1 -1
- {wbcore-1.61.3.dist-info → wbcore-1.61.5.dist-info}/RECORD +69 -70
- wbcore/contrib/guardian/apps.py +0 -6
- wbcore/contrib/guardian/configurations.py +0 -3
- wbcore/contrib/guardian/migrations/0001_initial.py +0 -103
- wbcore/contrib/guardian/tasks.py +0 -12
- wbcore/permissions/mixins.py +0 -72
- wbcore/permissions/registry.py +0 -33
- wbcore/permissions/shortcuts.py +0 -38
- wbcore/permissions/utils.py +0 -26
- /wbcore/contrib/{guardian → permission}/__init__.py +0 -0
- /wbcore/contrib/{guardian/migrations → permission/internal}/__init__.py +0 -0
- /wbcore/{permissions → contrib/permission/internal}/backend.py +0 -0
- /wbcore/contrib/{guardian/tests → permission/migrations}/__init__.py +0 -0
- /wbcore/contrib/{guardian → permission}/models/__init__.py +0 -0
- /wbcore/contrib/{guardian → permission}/models/models.py +0 -0
- /wbcore/{permissions → contrib/permission/tests}/__init__.py +0 -0
- /wbcore/contrib/{guardian → permission}/tests/conftest.py +0 -0
- /wbcore/contrib/{guardian → permission}/viewsets/__init__.py +0 -0
- /wbcore/contrib/{guardian → permission}/viewsets/configs/__init__.py +0 -0
- {wbcore-1.61.3.dist-info → wbcore-1.61.5.dist-info}/WHEEL +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
from wbcore.contrib.
|
|
1
|
+
from wbcore.contrib.permission.filters import ObjectPermissionsFilter
|
|
2
2
|
from wbcore.viewsets.mixins import FilterMixin
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
class
|
|
5
|
+
class ObjectPermissionFilterMixin(FilterMixin):
|
|
6
6
|
filter_backends = (ObjectPermissionsFilter, *FilterMixin.filter_backends)
|
|
@@ -7,8 +7,8 @@ from rest_framework.exceptions import ValidationError
|
|
|
7
7
|
from wbcore import serializers, viewsets
|
|
8
8
|
from wbcore.contrib.authentication.models.users import Permission, User
|
|
9
9
|
from wbcore.contrib.authentication.serializers import UserRepresentationSerializer
|
|
10
|
-
from wbcore.contrib.
|
|
11
|
-
from wbcore.contrib.
|
|
10
|
+
from wbcore.contrib.permission.models import UserObjectPermission
|
|
11
|
+
from wbcore.contrib.permission.viewsets.configs import (
|
|
12
12
|
PivotUserObjectPermissionButtonViewConfig,
|
|
13
13
|
PivotUserObjectPermissionDisplayViewConfig,
|
|
14
14
|
PivotUserObjectPermissionEndpointViewConfig,
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
from django.utils.translation import gettext as _
|
|
2
2
|
|
|
3
3
|
from wbcore.menus import ItemPermission, MenuItem
|
|
4
|
-
from wbcore.permissions.shortcuts import is_internal_user
|
|
5
4
|
|
|
6
5
|
CONDITION_MENUITEM = MenuItem(
|
|
7
6
|
label=_("Condition"),
|
|
8
7
|
endpoint="wbcore:workflow:condition-list",
|
|
9
8
|
permission=ItemPermission(
|
|
10
|
-
method=lambda request:
|
|
9
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.view_condition"]
|
|
11
10
|
),
|
|
12
11
|
add=MenuItem(
|
|
13
12
|
label=_("Create Condition"),
|
|
14
13
|
endpoint="wbcore:workflow:condition-list",
|
|
15
14
|
permission=ItemPermission(
|
|
16
|
-
method=lambda request:
|
|
15
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.add_condition"]
|
|
17
16
|
),
|
|
18
17
|
),
|
|
19
18
|
)
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
from django.utils.translation import gettext as _
|
|
2
2
|
|
|
3
3
|
from wbcore.menus import ItemPermission, MenuItem
|
|
4
|
-
from wbcore.permissions.shortcuts import is_internal_user
|
|
5
4
|
|
|
6
5
|
DATA_MENUITEM = MenuItem(
|
|
7
6
|
label=_("Data"),
|
|
8
7
|
endpoint="wbcore:workflow:data-list",
|
|
9
|
-
permission=ItemPermission(
|
|
10
|
-
method=lambda request: is_internal_user(request.user), permissions=["workflow.view_data"]
|
|
11
|
-
),
|
|
8
|
+
permission=ItemPermission(method=lambda request: request.user.is_internal, permissions=["workflow.view_data"]),
|
|
12
9
|
add=MenuItem(
|
|
13
10
|
label=_("Create Data"),
|
|
14
11
|
endpoint="wbcore:workflow:data-list",
|
|
15
|
-
permission=ItemPermission(
|
|
16
|
-
method=lambda request: is_internal_user(request.user), permissions=["workflow.add_data"]
|
|
17
|
-
),
|
|
12
|
+
permission=ItemPermission(method=lambda request: request.user.is_internal, permissions=["workflow.add_data"]),
|
|
18
13
|
),
|
|
19
14
|
)
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
from django.utils.translation import gettext as _
|
|
2
2
|
|
|
3
3
|
from wbcore.menus import ItemPermission, MenuItem
|
|
4
|
-
from wbcore.permissions.shortcuts import is_internal_user
|
|
5
4
|
|
|
6
5
|
PROCESS_MENUITEM = MenuItem(
|
|
7
6
|
label=_("Process"),
|
|
8
7
|
endpoint="wbcore:workflow:process-list",
|
|
9
|
-
permission=ItemPermission(
|
|
10
|
-
method=lambda request: is_internal_user(request.user), permissions=["workflow.view_process"]
|
|
11
|
-
),
|
|
8
|
+
permission=ItemPermission(method=lambda request: request.user.is_internal, permissions=["workflow.view_process"]),
|
|
12
9
|
)
|
|
13
10
|
PROCESSSTEP_MENUITEM = MenuItem(
|
|
14
11
|
label=_("Process Step"),
|
|
15
12
|
endpoint="wbcore:workflow:processstep-list",
|
|
16
13
|
permission=ItemPermission(
|
|
17
|
-
method=lambda request:
|
|
14
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.view_processstep"]
|
|
18
15
|
),
|
|
19
16
|
)
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
from django.utils.translation import gettext as _
|
|
2
2
|
|
|
3
3
|
from wbcore.menus import ItemPermission, MenuItem
|
|
4
|
-
from wbcore.permissions.shortcuts import is_internal_user
|
|
5
4
|
|
|
6
5
|
STARTSTEP_MENUITEM = MenuItem(
|
|
7
6
|
label=_("Start Step"),
|
|
8
7
|
endpoint="wbcore:workflow:startstep-list",
|
|
9
8
|
permission=ItemPermission(
|
|
10
|
-
method=lambda request:
|
|
9
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.view_startstep"]
|
|
11
10
|
),
|
|
12
11
|
add=MenuItem(
|
|
13
12
|
label=_("Create Start Step"),
|
|
14
13
|
endpoint="wbcore:workflow:startstep-list",
|
|
15
14
|
permission=ItemPermission(
|
|
16
|
-
method=lambda request:
|
|
15
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.add_startstep"]
|
|
17
16
|
),
|
|
18
17
|
),
|
|
19
18
|
)
|
|
@@ -21,14 +20,12 @@ STARTSTEP_MENUITEM = MenuItem(
|
|
|
21
20
|
USERSTEP_MENUITEM = MenuItem(
|
|
22
21
|
label=_("User Step"),
|
|
23
22
|
endpoint="wbcore:workflow:userstep-list",
|
|
24
|
-
permission=ItemPermission(
|
|
25
|
-
method=lambda request: is_internal_user(request.user), permissions=["workflow.view_userstep"]
|
|
26
|
-
),
|
|
23
|
+
permission=ItemPermission(method=lambda request: request.user.is_internal, permissions=["workflow.view_userstep"]),
|
|
27
24
|
add=MenuItem(
|
|
28
25
|
label=_("Create User Step"),
|
|
29
26
|
endpoint="wbcore:workflow:userstep-list",
|
|
30
27
|
permission=ItemPermission(
|
|
31
|
-
method=lambda request:
|
|
28
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.add_userstep"]
|
|
32
29
|
),
|
|
33
30
|
),
|
|
34
31
|
)
|
|
@@ -37,13 +34,13 @@ DECISIONSTEP_MENUITEM = MenuItem(
|
|
|
37
34
|
label=_("Decision Step"),
|
|
38
35
|
endpoint="wbcore:workflow:decisionstep-list",
|
|
39
36
|
permission=ItemPermission(
|
|
40
|
-
method=lambda request:
|
|
37
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.view_decisionstep"]
|
|
41
38
|
),
|
|
42
39
|
add=MenuItem(
|
|
43
40
|
label=_("Create Decision Step"),
|
|
44
41
|
endpoint="wbcore:workflow:decisionstep-list",
|
|
45
42
|
permission=ItemPermission(
|
|
46
|
-
method=lambda request:
|
|
43
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.add_decisionstep"]
|
|
47
44
|
),
|
|
48
45
|
),
|
|
49
46
|
)
|
|
@@ -52,13 +49,13 @@ SPLITSTEP_MENUITEM = MenuItem(
|
|
|
52
49
|
label=_("Split Step"),
|
|
53
50
|
endpoint="wbcore:workflow:splitstep-list",
|
|
54
51
|
permission=ItemPermission(
|
|
55
|
-
method=lambda request:
|
|
52
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.view_splitstep"]
|
|
56
53
|
),
|
|
57
54
|
add=MenuItem(
|
|
58
55
|
label=_("Create Split Step"),
|
|
59
56
|
endpoint="wbcore:workflow:splitstep-list",
|
|
60
57
|
permission=ItemPermission(
|
|
61
|
-
method=lambda request:
|
|
58
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.add_splitstep"]
|
|
62
59
|
),
|
|
63
60
|
),
|
|
64
61
|
)
|
|
@@ -66,14 +63,12 @@ SPLITSTEP_MENUITEM = MenuItem(
|
|
|
66
63
|
JOINSTEP_MENUITEM = MenuItem(
|
|
67
64
|
label=_("Join Step"),
|
|
68
65
|
endpoint="wbcore:workflow:joinstep-list",
|
|
69
|
-
permission=ItemPermission(
|
|
70
|
-
method=lambda request: is_internal_user(request.user), permissions=["workflow.view_joinstep"]
|
|
71
|
-
),
|
|
66
|
+
permission=ItemPermission(method=lambda request: request.user.is_internal, permissions=["workflow.view_joinstep"]),
|
|
72
67
|
add=MenuItem(
|
|
73
68
|
label=_("Create Join Step"),
|
|
74
69
|
endpoint="wbcore:workflow:joinstep-list",
|
|
75
70
|
permission=ItemPermission(
|
|
76
|
-
method=lambda request:
|
|
71
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.add_joinstep"]
|
|
77
72
|
),
|
|
78
73
|
),
|
|
79
74
|
)
|
|
@@ -82,13 +77,13 @@ SCRIPTSTEP_MENUITEM = MenuItem(
|
|
|
82
77
|
label=_("Script Step"),
|
|
83
78
|
endpoint="wbcore:workflow:scriptstep-list",
|
|
84
79
|
permission=ItemPermission(
|
|
85
|
-
method=lambda request:
|
|
80
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.view_scriptstep"]
|
|
86
81
|
),
|
|
87
82
|
add=MenuItem(
|
|
88
83
|
label=_("Create Script Step"),
|
|
89
84
|
endpoint="wbcore:workflow:scriptstep-list",
|
|
90
85
|
permission=ItemPermission(
|
|
91
|
-
method=lambda request:
|
|
86
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.add_scriptstep"]
|
|
92
87
|
),
|
|
93
88
|
),
|
|
94
89
|
)
|
|
@@ -97,13 +92,13 @@ EMAILSTEP_MENUITEM = MenuItem(
|
|
|
97
92
|
label=_("Email Step"),
|
|
98
93
|
endpoint="wbcore:workflow:emailstep-list",
|
|
99
94
|
permission=ItemPermission(
|
|
100
|
-
method=lambda request:
|
|
95
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.view_emailstep"]
|
|
101
96
|
),
|
|
102
97
|
add=MenuItem(
|
|
103
98
|
label=_("Create Email Step"),
|
|
104
99
|
endpoint="wbcore:workflow:emailstep-list",
|
|
105
100
|
permission=ItemPermission(
|
|
106
|
-
method=lambda request:
|
|
101
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.add_emailstep"]
|
|
107
102
|
),
|
|
108
103
|
),
|
|
109
104
|
)
|
|
@@ -112,13 +107,13 @@ FINISHSTEP_MENUITEM = MenuItem(
|
|
|
112
107
|
label=_("Finish Step"),
|
|
113
108
|
endpoint="wbcore:workflow:finishstep-list",
|
|
114
109
|
permission=ItemPermission(
|
|
115
|
-
method=lambda request:
|
|
110
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.view_finishstep"]
|
|
116
111
|
),
|
|
117
112
|
add=MenuItem(
|
|
118
113
|
label=_("Create Finish Step"),
|
|
119
114
|
endpoint="wbcore:workflow:finishstep-list",
|
|
120
115
|
permission=ItemPermission(
|
|
121
|
-
method=lambda request:
|
|
116
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.add_finishstep"]
|
|
122
117
|
),
|
|
123
118
|
),
|
|
124
119
|
)
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
from django.utils.translation import gettext as _
|
|
2
2
|
|
|
3
3
|
from wbcore.menus import ItemPermission, MenuItem
|
|
4
|
-
from wbcore.permissions.shortcuts import is_internal_user
|
|
5
4
|
|
|
6
5
|
TRANSITION_MENUITEM = MenuItem(
|
|
7
6
|
label=_("Transition"),
|
|
8
7
|
endpoint="wbcore:workflow:transition-list",
|
|
9
8
|
permission=ItemPermission(
|
|
10
|
-
method=lambda request:
|
|
9
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.view_transition"]
|
|
11
10
|
),
|
|
12
11
|
add=MenuItem(
|
|
13
12
|
label=_("Create Transition"),
|
|
14
13
|
endpoint="wbcore:workflow:transition-list",
|
|
15
14
|
permission=ItemPermission(
|
|
16
|
-
method=lambda request:
|
|
15
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.add_transition"]
|
|
17
16
|
),
|
|
18
17
|
),
|
|
19
18
|
)
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
from django.utils.translation import gettext as _
|
|
2
2
|
|
|
3
3
|
from wbcore.menus import ItemPermission, MenuItem
|
|
4
|
-
from wbcore.permissions.shortcuts import is_internal_user
|
|
5
4
|
|
|
6
5
|
WORKFLOW_MENUITEM = MenuItem(
|
|
7
6
|
label=_("Workflow"),
|
|
8
7
|
endpoint="wbcore:workflow:workflow-list",
|
|
9
|
-
permission=ItemPermission(
|
|
10
|
-
method=lambda request: is_internal_user(request.user), permissions=["workflow.view_workflow"]
|
|
11
|
-
),
|
|
8
|
+
permission=ItemPermission(method=lambda request: request.user.is_internal, permissions=["workflow.view_workflow"]),
|
|
12
9
|
add=MenuItem(
|
|
13
10
|
label=_("Create Workflow"),
|
|
14
11
|
endpoint="wbcore:workflow:workflow-list",
|
|
15
12
|
permission=ItemPermission(
|
|
16
|
-
method=lambda request:
|
|
13
|
+
method=lambda request: request.user.is_internal, permissions=["workflow.add_workflow"]
|
|
17
14
|
),
|
|
18
15
|
),
|
|
19
16
|
)
|
wbcore/tests/models.py
CHANGED
wbcore/urls.py
CHANGED
|
@@ -105,8 +105,8 @@ urlpatterns = [
|
|
|
105
105
|
include(("wbcore.contrib.workflow.urls", "wbcore.contrib.workflow"), namespace="workflow"),
|
|
106
106
|
),
|
|
107
107
|
path(
|
|
108
|
-
"
|
|
109
|
-
include(("wbcore.contrib.
|
|
108
|
+
"permission/",
|
|
109
|
+
include(("wbcore.contrib.permission.urls", "wbcore.contrib.permission"), namespace="permission"),
|
|
110
110
|
),
|
|
111
111
|
path("clear_cache/<str:cache_key>/", clear_cache, name="clear_cache"),
|
|
112
112
|
]
|