drf-iam 0.1.0__py3-none-any.whl → 0.2.0__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.
- drf_iam/utils/load_viewset_permissions.py +8 -1
- {drf_iam-0.1.0.dist-info → drf_iam-0.2.0.dist-info}/METADATA +2 -2
- {drf_iam-0.1.0.dist-info → drf_iam-0.2.0.dist-info}/RECORD +5 -5
- {drf_iam-0.1.0.dist-info → drf_iam-0.2.0.dist-info}/WHEEL +1 -1
- {drf_iam-0.1.0.dist-info → drf_iam-0.2.0.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,6 @@
|
|
1
1
|
import inspect
|
2
|
+
|
3
|
+
from django.template.base import kwarg_re
|
2
4
|
from django.urls.resolvers import URLPattern, URLResolver
|
3
5
|
from rest_framework.viewsets import ViewSetMixin
|
4
6
|
from rest_framework.decorators import action
|
@@ -24,7 +26,9 @@ def get_viewset_actions(viewset_cls):
|
|
24
26
|
for name, method in inspect.getmembers(viewset_cls, predicate=inspect.isfunction):
|
25
27
|
if hasattr(method, 'mapping'):
|
26
28
|
for http_method in method.mapping:
|
27
|
-
|
29
|
+
viewset_function = getattr(viewset_cls, name)
|
30
|
+
if viewset_function.get("kwargs"):
|
31
|
+
actions.add(f"{name}")
|
28
32
|
|
29
33
|
return actions
|
30
34
|
|
@@ -51,6 +55,9 @@ def load_permissions_from_urls(**kwargs):
|
|
51
55
|
for entry in extract_viewsets_from_urlpatterns(urlpatterns):
|
52
56
|
viewset_cls = entry['viewset']
|
53
57
|
basename = getattr(viewset_cls,"iam_policy_name") or viewset_cls.__name__.lower().replace('viewset', '')
|
58
|
+
exclude_from_permissions = getattr(viewset_cls, "drf_iam_exclude_from_permissions", False)
|
59
|
+
if exclude_from_permissions:
|
60
|
+
continue
|
54
61
|
actions = get_viewset_actions(viewset_cls)
|
55
62
|
|
56
63
|
for action in actions:
|
@@ -7,8 +7,8 @@ drf_iam/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
|
|
7
7
|
drf_iam/migrations/0001_initial.py,sha256=y_4jXnr7gjU4UXxVrgVrStTSFu3h1ZrmjEZDL4FtZa4,3086
|
8
8
|
drf_iam/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
9
|
drf_iam/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
|
-
drf_iam/utils/load_viewset_permissions.py,sha256=
|
11
|
-
drf_iam-0.
|
12
|
-
drf_iam-0.
|
13
|
-
drf_iam-0.
|
14
|
-
drf_iam-0.
|
10
|
+
drf_iam/utils/load_viewset_permissions.py,sha256=xWV9-8qwuOYysofFcKHxhbvh4u-fOH-Wy37ysvx2XTw,2574
|
11
|
+
drf_iam-0.2.0.dist-info/METADATA,sha256=u1HeciXJ3Ndr1G3OQylQjH51ycaYniTFClHKC80xX1U,2763
|
12
|
+
drf_iam-0.2.0.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
|
13
|
+
drf_iam-0.2.0.dist-info/top_level.txt,sha256=daz6AaQ9e_cfCjLk2aRoLb_PCOoFofYUX4DU85VwHSM,8
|
14
|
+
drf_iam-0.2.0.dist-info/RECORD,,
|
File without changes
|