wbcompliance 1.61.3__py2.py3-none-any.whl → 1.61.4__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.
@@ -29,7 +29,6 @@ from wbcore.enums import RequestType
29
29
  from wbcore.markdown.utils import custom_url_fetcher
30
30
  from wbcore.metadata.configs.buttons import ActionButton, ButtonDefaultColor
31
31
  from wbcore.models import WBModel
32
- from wbcore.permissions.shortcuts import get_internal_users
33
32
  from weasyprint import HTML
34
33
 
35
34
  from .compliance_type import ComplianceDocumentMixin, ComplianceType, can_active_request
@@ -263,10 +262,9 @@ class ComplianceForm(ComplianceDocumentMixin, WBModel):
263
262
  self.notify(title, msg, recipients, admin_compliance=True)
264
263
 
265
264
  def get_signing_users(self) -> QuerySet["User"]:
265
+ users = User.objects.filter(is_active=True)
266
266
  if self.only_internal:
267
- users = get_internal_users()
268
- else:
269
- users = User.objects.filter(is_active=True)
267
+ users = users.filter_internal()
270
268
  if self.assigned_to.exists():
271
269
  users = users.filter(groups__in=self.assigned_to.all())
272
270
  return users.distinct()
@@ -24,8 +24,8 @@ from pandas.tseries.offsets import BDay
24
24
  from rest_framework.reverse import reverse
25
25
  from wbcore.contrib.authentication.models.users import User
26
26
  from wbcore.contrib.directory.models import Person
27
- from wbcore.contrib.guardian.models.mixins import PermissionObjectModelMixin
28
27
  from wbcore.contrib.notifications.dispatch import send_notification
28
+ from wbcore.contrib.permission.models.mixins import PermissionObjectModelMixin
29
29
  from wbcore.models import WBModel
30
30
  from wbcore.utils.models import ComplexToStringMixin
31
31
  from wbcore.utils.rrules import convert_rrulestr_to_dict
@@ -1,6 +1,5 @@
1
1
  from guardian.core import ObjectPermissionChecker
2
2
  from rest_framework.permissions import IsAuthenticated
3
- from wbcore.permissions.shortcuts import is_internal_user
4
3
 
5
4
  from wbcompliance.models.risk_management import RiskRule
6
5
 
@@ -26,8 +25,8 @@ class RulePermission(IsAuthenticated):
26
25
 
27
26
 
28
27
  def is_admin_compliance(request):
29
- return is_internal_user(request.user) and request.user.has_perm("wbcompliance.administrate_compliance")
28
+ return request.user.is_internal and request.user.has_perm("wbcompliance.administrate_compliance")
30
29
 
31
30
 
32
31
  def is_internal_employee_compliance(request):
33
- return is_internal_user(request.user) and not is_admin_compliance(request)
32
+ return request.user.is_internal and not is_admin_compliance(request)
@@ -7,7 +7,7 @@ from wbcore import serializers as wb_serializers
7
7
  from wbcore.contrib.authentication.serializers import GroupRepresentationSerializer
8
8
  from wbcore.contrib.directory.models import Person
9
9
  from wbcore.contrib.directory.serializers import PersonRepresentationSerializer
10
- from wbcore.permissions.shortcuts import get_internal_groups
10
+ from wbcore.contrib.permission.internal.registry import get_internal_groups
11
11
 
12
12
  from wbcompliance.models import (
13
13
  ComplianceForm,
@@ -9,7 +9,7 @@ from django.core.exceptions import ValidationError
9
9
  from faker import Faker
10
10
  from guardian.utils import get_anonymous_user
11
11
  from psycopg.types.range import NumericRange
12
- from wbcore.permissions.utils import perm_to_permission
12
+ from wbcore.contrib.permission.utils import perm_to_permission
13
13
 
14
14
  from wbcompliance.models import (
15
15
  RiskIncident,
@@ -1,6 +1,6 @@
1
1
  import pytest
2
2
  from wbcore.contrib.authentication.factories import UserFactory
3
- from wbcore.permissions.shortcuts import get_internal_users
3
+ from wbcore.contrib.authentication.models import User
4
4
 
5
5
  from wbcompliance.models import ComplianceForm, ComplianceFormSignature
6
6
 
@@ -44,7 +44,7 @@ class TestSpecificModels(UserTestMixin):
44
44
  compliance_form1.active()
45
45
  assert (
46
46
  ComplianceFormSignature.objects.filter(compliance_form=compliance_form1).count()
47
- == get_internal_users().count()
47
+ == User.objects.filter_internal().count()
48
48
  )
49
49
 
50
50
  # def test_only_internal(self, compliance_form_factory):
@@ -2,7 +2,6 @@ from contextlib import suppress
2
2
 
3
3
  from django.utils.translation import gettext as _
4
4
  from wbcore.menus import ItemPermission, Menu, MenuItem
5
- from wbcore.permissions.shortcuts import is_internal_user
6
5
 
7
6
  from wbcompliance.models.risk_management.rules import RuleGroup
8
7
 
@@ -10,13 +9,13 @@ RULE_MENUITEM = MenuItem(
10
9
  label=_("Rules"),
11
10
  endpoint="wbcompliance:riskrule-list",
12
11
  permission=ItemPermission(
13
- method=lambda request: is_internal_user(request.user), permissions=["wbcompliance.view_riskrule"]
12
+ method=lambda request: request.user.is_internal, permissions=["wbcompliance.view_riskrule"]
14
13
  ),
15
14
  add=MenuItem(
16
15
  label=_("Add Rule"),
17
16
  endpoint="wbcompliance:riskrule-list",
18
17
  permission=ItemPermission(
19
- method=lambda request: is_internal_user(request.user), permissions=["wbcompliance.add_riskrule"]
18
+ method=lambda request: request.user.is_internal, permissions=["wbcompliance.add_riskrule"]
20
19
  ),
21
20
  ),
22
21
  )
@@ -31,7 +30,7 @@ def _get_incident_menu():
31
30
  label=rule_group.name,
32
31
  endpoint="wbcompliance:riskincident-list",
33
32
  permission=ItemPermission(
34
- method=lambda request: is_internal_user(request.user),
33
+ method=lambda request: request.user.is_internal,
35
34
  permissions=["wbcompliance.view_riskincident"],
36
35
  ),
37
36
  endpoint_get_parameters={"rule_group": rule_group.id},
@@ -43,7 +42,7 @@ def _get_incident_menu():
43
42
  label=_("Incidents"),
44
43
  endpoint="wbcompliance:riskincident-list",
45
44
  permission=ItemPermission(
46
- method=lambda request: is_internal_user(request.user), permissions=["wbcompliance.view_riskincident"]
45
+ method=lambda request: request.user.is_internal, permissions=["wbcompliance.view_riskincident"]
47
46
  ),
48
47
  )
49
48
 
@@ -21,8 +21,8 @@ from django.utils.functional import cached_property
21
21
  from rest_framework import status
22
22
  from rest_framework.decorators import action
23
23
  from wbcore import viewsets
24
- from wbcore.contrib.guardian.models import UserObjectPermission
25
24
  from wbcore.contrib.icons import WBIcon
25
+ from wbcore.contrib.permission.models import UserObjectPermission
26
26
 
27
27
  from wbcompliance.filters import (
28
28
  CheckedObjectIncidentRelationshipFilterSet,
@@ -7,7 +7,7 @@ from rest_framework import status
7
7
  from rest_framework.decorators import action
8
8
  from wbcore import serializers as wb_serializers
9
9
  from wbcore import viewsets
10
- from wbcore.contrib.guardian.viewsets.mixins import GuardianFilterMixin
10
+ from wbcore.contrib.permission.viewsets.mixins import ObjectPermissionFilterMixin
11
11
  from wbcore.utils.date import get_date_interval_from_request
12
12
 
13
13
  from wbcompliance.filters import RiskRuleFilterSet
@@ -66,7 +66,7 @@ class RuleThresholdRepresentationViewSet(viewsets.RepresentationViewSet):
66
66
  serializer_class = RuleThresholdRepresentationSerializer
67
67
 
68
68
 
69
- class RiskRuleRepresentationViewSet(GuardianFilterMixin, viewsets.RepresentationViewSet):
69
+ class RiskRuleRepresentationViewSet(ObjectPermissionFilterMixin, viewsets.RepresentationViewSet):
70
70
  queryset = RiskRule.objects.all()
71
71
  serializer_class = RiskRuleRepresentationSerializer
72
72
  search_fields = (
@@ -105,7 +105,7 @@ class RuleCheckedObjectRelationshipRiskRuleModelViewSet(viewsets.ModelViewSet):
105
105
  return super().get_queryset().filter(rule_id=self.kwargs["rule_id"])
106
106
 
107
107
 
108
- class RiskRuleModelViewSet(GuardianFilterMixin, viewsets.ModelViewSet):
108
+ class RiskRuleModelViewSet(ObjectPermissionFilterMixin, viewsets.ModelViewSet):
109
109
  display_config_class = RiskRuleDisplayConfig
110
110
  endpoint_config_class = RiskRuleEndpointConfig
111
111
  button_config_class = RiskRuleButtonConfig
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wbcompliance
3
- Version: 1.61.3
3
+ Version: 1.61.4
4
4
  Summary: A workbench module for managing compliance.
5
5
  Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
6
6
  Requires-Dist: wbcore
@@ -1,6 +1,6 @@
1
1
  wbcompliance/__init__.py,sha256=J-j-u0itpEFT6irdmWmixQqYMadNl1X91TxUmoiLHMI,22
2
2
  wbcompliance/apps.py,sha256=YtNYwXg6t_XiLQf0TxCiXYRs1tvUYtGrENay-8tztyI,415
3
- wbcompliance/permissions.py,sha256=rb63hJ4pQHZ4QZjTIDCnqFh1LI2m_evXC7loG3B53lE,1391
3
+ wbcompliance/permissions.py,sha256=f9ySGD59rNFhGmqNeBxVykprZy6TDuTa3eKcQM2izuw,1321
4
4
  wbcompliance/tasks.py,sha256=1yF2C1gxB-phXbYbsKqMkhYUa_Jlc1awnlcXMOFxnVA,5840
5
5
  wbcompliance/urls.py,sha256=-190MsA5_DDPeZujun0BGCrqWOJop6EjO3NYXcv3y_o,8659
6
6
  wbcompliance/admin/__init__.py,sha256=JiVPFKVgMQArksYuol4WMkl6BcfOBv75zJWpLmLyqV0,458
@@ -51,7 +51,7 @@ wbcompliance/migrations/0022_riskincident_precheck.py,sha256=H2l9REAsogn7EsUMWcE
51
51
  wbcompliance/migrations/0023_alter_checkedobjectincidentrelationship_unique_together_and_more.py,sha256=dSgzBAWvIs1tsegPgpr0GtBXEVKsHgtX5djuihQg93w,1486
52
52
  wbcompliance/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
53
  wbcompliance/models/__init__.py,sha256=gk3D0yZ3ZpJh1Nl-Kyc1PWm67t0Gj7t47Jl2xm9Lisk,534
54
- wbcompliance/models/compliance_form.py,sha256=uyU8DhMuEp1uXcMyE1fdPZ0mxHO0H0Ecc0I7XDPR2Dc,24867
54
+ wbcompliance/models/compliance_form.py,sha256=k2NvwOJm_rFKPy5SRfMBNrdbLyueL-DjIYDReyVwOA4,24792
55
55
  wbcompliance/models/compliance_task.py,sha256=cwX7KA681yneK5xw2I8YFYjK8ODnoalo0AAudBYjkYQ,30794
56
56
  wbcompliance/models/compliance_type.py,sha256=_v5HDbzDN8b1bRGpTBI2ppAL0PjXjKeSC3PVI2Q-eZw,4733
57
57
  wbcompliance/models/enums.py,sha256=id1m8trG7b6Sw3Sa9VrLgD104GC2nG9A8ngJzaRqIIQ,424
@@ -61,9 +61,9 @@ wbcompliance/models/risk_management/checks.py,sha256=drBNhT7kj7TA1EclKX9jpPp-Iyc
61
61
  wbcompliance/models/risk_management/dispatch.py,sha256=cLi63vSGbk9xhCoVgr4UmVk2kfYmGiyohKINSvCodb0,1423
62
62
  wbcompliance/models/risk_management/incidents.py,sha256=bDSW34HJMKy1flbYxHI7XEjkJY9rc3FqKoK-9RYagEQ,24312
63
63
  wbcompliance/models/risk_management/mixins.py,sha256=vitLClx1QwmhooXselB_MqNoLbxMRp-uNQKsvHDooj8,4449
64
- wbcompliance/models/risk_management/rules.py,sha256=fDjHoI7A6CudRHP_8j3Wr0UgZFuhHk2dkKIKyGvY9nc,25918
64
+ wbcompliance/models/risk_management/rules.py,sha256=uuEjamSVURlgXX4pzLumGdY3Fl5Yh58bdJSR3R3-8EA,25920
65
65
  wbcompliance/serializers/__init__.py,sha256=OhRIuUrexqQePCISpu-BKry9dfioYGfpO8RwlcwhHtI,1122
66
- wbcompliance/serializers/compliance_form.py,sha256=OxPILlup_CP4Qwvu864oMqz7QUZsk2QOkOGFifWP3gM,11615
66
+ wbcompliance/serializers/compliance_form.py,sha256=hDQMZZEExFNNMTzVj7brepYm_2nL1328C29LNCeCAeQ,11630
67
67
  wbcompliance/serializers/compliance_task.py,sha256=euTQya2LdexoRblew9zMkv40kU7wkW9nU2uLTI-lwow,17035
68
68
  wbcompliance/serializers/compliance_type.py,sha256=kxQTLS9JfGStJ1dJYmU_TlZh7Jqn3_9h_ZMAjiL61lA,1048
69
69
  wbcompliance/serializers/risk_management/__init__.py,sha256=_95Z1L6f7muQ0UvbEY1P3ROK3nqwkjhgYf3onRhWmv0,733
@@ -80,7 +80,7 @@ wbcompliance/tests/disable_signals.py,sha256=N3nosCNpUDdauokoWTOLOpqXgZo7BD52OCE
80
80
  wbcompliance/tests/mixins.py,sha256=mfCd0Ul_YsRx_SQCv-ybqkXWQGT7QTU341cdKv-wDzc,396
81
81
  wbcompliance/tests/signals.py,sha256=nCQBFcZNrkTuMxmVyY_fFrbj3C7b94i0s_MYlr-KKoU,4010
82
82
  wbcompliance/tests/test_filters.py,sha256=LV9lma5c_16TWjyKohR-1Qs7Z9Fd_p6lhnswceVQuI8,1017
83
- wbcompliance/tests/test_models.py,sha256=zoEK44J8ZfcKYm65ZZYj_wRWhMEGqdURnuDSYOSedFs,2604
83
+ wbcompliance/tests/test_models.py,sha256=sNh2yA-LKdMHliVaNKUVPuiT3LGkcgbIujJPm8cKObc,2608
84
84
  wbcompliance/tests/test_serializers.py,sha256=JxlLGAxnOHu2etULUN4uy1Q3AFD8K4ZPTLcU1rBMZww,1881
85
85
  wbcompliance/tests/test_tasks.py,sha256=ynsspQCJoB6wnRDn1vWdRKMmNtToF1L5EIyEP4Ndxpo,1246
86
86
  wbcompliance/tests/test_views.py,sha256=nZIpfttDP-BedwYA-Y6Wkeh43lAJBNEb9tnhfdByrzw,16839
@@ -90,7 +90,7 @@ wbcompliance/tests/risk_management/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-
90
90
  wbcompliance/tests/risk_management/models/test_backends.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
91
  wbcompliance/tests/risk_management/models/test_checks.py,sha256=F4Pbn7q4PBmWx5fjvkwEclioG1mEt2M53maegSI9hYU,2467
92
92
  wbcompliance/tests/risk_management/models/test_incidents.py,sha256=kBDZ1LqaUY592g1_nexV5ye9Wz7AoKppAJhGv_qj00s,15035
93
- wbcompliance/tests/risk_management/models/test_rules.py,sha256=j3g2gK6SV0F9a7U2eh2bEzPLI2wtZZoueQpzH6NTxpw,11177
93
+ wbcompliance/tests/risk_management/models/test_rules.py,sha256=JVTUzBAnMkemAiaGWI3Q0ZwPM99xMIkwhTUvf3rZ3ag,11184
94
94
  wbcompliance/viewsets/__init__.py,sha256=JVv3mT5i-9dSYIC_lrvJqcFCPI92KQp9AZ21lR-eqEg,1498
95
95
  wbcompliance/viewsets/compliance_form.py,sha256=_oAG5zkPHQ4g_IVy_MSQamk_gk1XBlgX6CDU8YHhHFE,17298
96
96
  wbcompliance/viewsets/compliance_task.py,sha256=gz071EDL3kctR_pv38m_vaNplw-6Rdvuq5W6CYLV_4Y,19213
@@ -124,12 +124,12 @@ wbcompliance/viewsets/menu/__init__.py,sha256=TpXH4kxAhJDy6SVpelL9LCxFoRUD-WpbcV
124
124
  wbcompliance/viewsets/menu/compliance_form.py,sha256=FJk6k1y-K-fMkwneDJgEwb7Qbq6kibynaK9-Vg9w8G4,1852
125
125
  wbcompliance/viewsets/menu/compliance_task.py,sha256=SsB9wrP13VBdxFBYYOT2Dh0isRk8uSYbcdnn7qXe81k,4510
126
126
  wbcompliance/viewsets/menu/compliance_type.py,sha256=8jvu9dFhTeYqJy0lhx4BD_rOeVi4iz073BPKYbnkuFY,684
127
- wbcompliance/viewsets/menu/risk_management.py,sha256=3rxNrWw9sET7BqulxXWjAehg5NRIKmNoyTrBLOHx4g8,1969
127
+ wbcompliance/viewsets/menu/risk_management.py,sha256=YYlAd5ST8iuIOXT3kHlbs-zQ5CcY-6Z8w5ZzMjOSPbQ,1887
128
128
  wbcompliance/viewsets/risk_management/__init__.py,sha256=Gu2vavnClUg9RKpGMhwqo_DOv-FLAGlBf7BbYNyEkJM,821
129
129
  wbcompliance/viewsets/risk_management/checks.py,sha256=kCitq6tlqW_z_oGGiRqRKft3XDlLq0gEGDRIuT4wYlI,2377
130
- wbcompliance/viewsets/risk_management/incidents.py,sha256=XLxcmcbIvUEPwIm2R2T5Z_XErFbWEWNjEihHF6p2Gv0,8184
130
+ wbcompliance/viewsets/risk_management/incidents.py,sha256=NzD9BSDoRD0p_yNoM9B1_Cus5d31KWrBZqssYBxg2S4,8186
131
131
  wbcompliance/viewsets/risk_management/mixins.py,sha256=g8gF7Glzc36bKfKng9jlb9CCXAqsVZsGfHc6SjDHGlY,1559
132
- wbcompliance/viewsets/risk_management/rules.py,sha256=IDb4YSfcSLeMugkIh-7m4q2B-FKKTtF92LXX_RtNRIE,6888
132
+ wbcompliance/viewsets/risk_management/rules.py,sha256=t95x0OefTReUY592fVovU4wQ1r-XajRAjTu3Hzhw28k,6914
133
133
  wbcompliance/viewsets/risk_management/tables.py,sha256=Yj_oJXjh-9trPmRs2pFRAVAe15TnA9542fdXkX8xeq4,3896
134
134
  wbcompliance/viewsets/titles/__init__.py,sha256=bzKjQrFzqTUSH8OxBAeI7Cc6HHGAIae0gBp8fzzgpfw,589
135
135
  wbcompliance/viewsets/titles/compliance_form.py,sha256=9LdQf54U6cAJwdjNxuaxFKEXkLXA8EloeR9baziqLkA,4256
@@ -140,6 +140,6 @@ wbcompliance/viewsets/titles/risk_managment/checks.py,sha256=47DEQpj8HBSa-_TImW-
140
140
  wbcompliance/viewsets/titles/risk_managment/incidents.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
141
  wbcompliance/viewsets/titles/risk_managment/rules.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
142
  wbcompliance/viewsets/titles/risk_managment/tables.py,sha256=x_9mr6JWZ9GVNAEvfdNCeFZtGGYSG0-sXrR9pwTyocU,256
143
- wbcompliance-1.61.3.dist-info/METADATA,sha256=RgobuJzc9_kr3gxn12LjW29lhcN7aSq3PMoPZQF3-Ng,196
144
- wbcompliance-1.61.3.dist-info/WHEEL,sha256=aha0VrrYvgDJ3Xxl3db_g_MDIW-ZexDdrc_m-Hk8YY4,105
145
- wbcompliance-1.61.3.dist-info/RECORD,,
143
+ wbcompliance-1.61.4.dist-info/METADATA,sha256=OVwH7D0J1eQ-LLabEXaPHOxGfm8YoynSpZDgEVbF9og,196
144
+ wbcompliance-1.61.4.dist-info/WHEEL,sha256=aha0VrrYvgDJ3Xxl3db_g_MDIW-ZexDdrc_m-Hk8YY4,105
145
+ wbcompliance-1.61.4.dist-info/RECORD,,