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.
@@ -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
- actions.add(f"{name}")
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:
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: drf-iam
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: IAM-style roles and permissions for Django Rest Framework
5
5
  Home-page: https://github.com/tushar1328/drf-iam.git
6
6
  Author: Tushar Patel
@@ -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=EVNrldOOkBMjEIoTBlHwSotBOtvW0kHjNONQz_blnxA,2257
11
- drf_iam-0.1.0.dist-info/METADATA,sha256=SqDZ1fsPg5RyzvNVIjs_nCjpxUjT4Wi_0-aAX11Mmjc,2763
12
- drf_iam-0.1.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
13
- drf_iam-0.1.0.dist-info/top_level.txt,sha256=daz6AaQ9e_cfCjLk2aRoLb_PCOoFofYUX4DU85VwHSM,8
14
- drf_iam-0.1.0.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (80.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5