Skip to content

Commit

Permalink
Merge pull request #1560 from open-zaak/feature/1548-remove-definitie…
Browse files Browse the repository at this point in the history
…f-check

🔥 [#1548] remove check for status != 'definitief' and documenten scope
  • Loading branch information
annashamray committed Feb 1, 2024
2 parents 8e68fa6 + 19e0e79 commit 33db8be
Show file tree
Hide file tree
Showing 6 changed files with 9 additions and 95 deletions.
8 changes: 0 additions & 8 deletions src/openzaak/components/documenten/api/scopes.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,3 @@
* to unlock documents without lock key
""",
)

SCOPE_DOCUMENTEN_GEFORCEERD_BIJWERKEN = Scope(
"documenten.geforceerd-bijwerken",
description="""
**Allows**:
* changes meta data of all documents including "definitief" ones
""",
)
26 changes: 0 additions & 26 deletions src/openzaak/components/documenten/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@
from ..query.cmis import flatten_gegevens_groep
from ..utils import PrivateMediaStorageWithCMIS
from .fields import OnlyRemoteOrFKOrURLField
from .scopes import SCOPE_DOCUMENTEN_GEFORCEERD_BIJWERKEN
from .utils import create_filename, merge_files
from .validators import (
InformatieObjectUniqueValidator,
Expand Down Expand Up @@ -684,31 +683,6 @@ def validate(self, attrs):
_("Lock id is not correct"), code="incorrect-lock-id"
)

# for CMIS just use this instance
request = self.context["request"]
latest_version = (
self.instance
if settings.CMIS_ENABLED
else self.instance.canonical.latest_version
)
if (
not request.jwt_auth.has_auth(
scopes=SCOPE_DOCUMENTEN_GEFORCEERD_BIJWERKEN,
informatieobjecttype=request.build_absolute_uri(
self.instance.informatieobjecttype.get_absolute_api_url()
),
vertrouwelijkheidaanduiding=self.instance.vertrouwelijkheidaanduiding,
init_component=self.Meta.model._meta.app_label,
)
and latest_version.status == Statussen.definitief
):
raise serializers.ValidationError(
_(
"Het bijwerken van Informatieobjecten met status `definitief` is niet toegestaan"
),
code="modify-status-definitief",
)

return valid_attrs


Expand Down
6 changes: 2 additions & 4 deletions src/openzaak/components/documenten/api/viewsets.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@
SCOPE_DOCUMENTEN_ALLES_LEZEN,
SCOPE_DOCUMENTEN_ALLES_VERWIJDEREN,
SCOPE_DOCUMENTEN_BIJWERKEN,
SCOPE_DOCUMENTEN_GEFORCEERD_BIJWERKEN,
SCOPE_DOCUMENTEN_GEFORCEERD_UNLOCK,
SCOPE_DOCUMENTEN_LOCK,
)
Expand Down Expand Up @@ -218,9 +217,8 @@ class EnkelvoudigInformatieObjectViewSet(
"retrieve": SCOPE_DOCUMENTEN_ALLES_LEZEN,
"create": SCOPE_DOCUMENTEN_AANMAKEN,
"destroy": SCOPE_DOCUMENTEN_ALLES_VERWIJDEREN,
"update": SCOPE_DOCUMENTEN_BIJWERKEN | SCOPE_DOCUMENTEN_GEFORCEERD_BIJWERKEN,
"partial_update": SCOPE_DOCUMENTEN_BIJWERKEN
| SCOPE_DOCUMENTEN_GEFORCEERD_BIJWERKEN,
"update": SCOPE_DOCUMENTEN_BIJWERKEN,
"partial_update": SCOPE_DOCUMENTEN_BIJWERKEN,
"download": SCOPE_DOCUMENTEN_ALLES_LEZEN,
"lock": SCOPE_DOCUMENTEN_LOCK,
"unlock": SCOPE_DOCUMENTEN_LOCK | SCOPE_DOCUMENTEN_GEFORCEERD_UNLOCK,
Expand Down
4 changes: 2 additions & 2 deletions src/openzaak/components/documenten/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -799,7 +799,7 @@ paths:
- enkelvoudiginformatieobjecten
security:
- JWT-Claims:
- (documenten.bijwerken | documenten.geforceerd-bijwerken)
- documenten.bijwerken
patch:
operationId: enkelvoudiginformatieobject_partial_update
summary: Werk een (ENKELVOUDIG) INFORMATIEOBJECT deels bij.
Expand Down Expand Up @@ -881,7 +881,7 @@ paths:
- enkelvoudiginformatieobjecten
security:
- JWT-Claims:
- (documenten.bijwerken | documenten.geforceerd-bijwerken)
- documenten.bijwerken
delete:
operationId: enkelvoudiginformatieobject_delete
summary: Verwijder een (ENKELVOUDIG) INFORMATIEOBJECT.
Expand Down
4 changes: 2 additions & 2 deletions src/openzaak/components/documenten/swagger2.0.json
Original file line number Diff line number Diff line change
Expand Up @@ -1033,7 +1033,7 @@
"security": [
{
"JWT-Claims": [
"(documenten.bijwerken | documenten.geforceerd-bijwerken)"
"documenten.bijwerken"
]
}
]
Expand Down Expand Up @@ -1145,7 +1145,7 @@
"security": [
{
"JWT-Claims": [
"(documenten.bijwerken | documenten.geforceerd-bijwerken)"
"documenten.bijwerken"
]
}
]
Expand Down
56 changes: 3 additions & 53 deletions src/openzaak/components/documenten/tests/test_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
from ..api.scopes import (
SCOPE_DOCUMENTEN_ALLES_LEZEN,
SCOPE_DOCUMENTEN_BIJWERKEN,
SCOPE_DOCUMENTEN_GEFORCEERD_BIJWERKEN,
SCOPE_DOCUMENTEN_LOCK,
)
from ..constants import OndertekeningSoorten, Statussen
Expand Down Expand Up @@ -307,7 +306,7 @@ def setUpTestData(cls):
site.save()
super().setUpTestData()

def test_update_definitief_status_fail(self):
def test_update_definitief_status_success(self):
self.autorisatie.scopes = [
SCOPE_DOCUMENTEN_ALLES_LEZEN,
SCOPE_DOCUMENTEN_BIJWERKEN,
Expand All @@ -331,61 +330,12 @@ def test_update_definitief_status_fail(self):

response = self.client.put(eio_url, eio_data)

self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
error = get_validation_errors(response, "nonFieldErrors")
self.assertEqual(error["code"], "modify-status-definitief")

def test_patch_definitief_status_fail(self):
self.autorisatie.scopes = [
SCOPE_DOCUMENTEN_ALLES_LEZEN,
SCOPE_DOCUMENTEN_BIJWERKEN,
SCOPE_DOCUMENTEN_LOCK,
]
self.autorisatie.save()
eio = EnkelvoudigInformatieObjectFactory.create(
informatieobjecttype=self.informatieobjecttype, status=Statussen.definitief
)
eio_url = reverse(eio)
lock = self.client.post(f"{eio_url}/lock").data["lock"]

response = self.client.patch(
eio_url, {"lock": lock, "beschrijving": "updated",}
)

self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
error = get_validation_errors(response, "nonFieldErrors")
self.assertEqual(error["code"], "modify-status-definitief")

def test_update_definitief_status_force(self):
self.autorisatie.scopes = [
SCOPE_DOCUMENTEN_ALLES_LEZEN,
SCOPE_DOCUMENTEN_GEFORCEERD_BIJWERKEN,
SCOPE_DOCUMENTEN_LOCK,
]
self.autorisatie.save()
eio = EnkelvoudigInformatieObjectFactory.create(
informatieobjecttype=self.informatieobjecttype, status=Statussen.definitief
)
eio_url = reverse(eio)

eio_response = self.client.get(eio_url)
eio_data = eio_response.data

lock = self.client.post(f"{eio_url}/lock").data["lock"]
eio_data.update(
{"inhoud": b64encode(b"aaaaa"), "bestandsomvang": 5, "lock": lock,}
)
for i in ["integriteit", "ondertekening"]:
eio_data.pop(i)

response = self.client.put(eio_url, eio_data)

self.assertEqual(response.status_code, status.HTTP_200_OK)

def test_patch_definitief_status_force(self):
def test_patch_definitief_status_success(self):
self.autorisatie.scopes = [
SCOPE_DOCUMENTEN_ALLES_LEZEN,
SCOPE_DOCUMENTEN_GEFORCEERD_BIJWERKEN,
SCOPE_DOCUMENTEN_BIJWERKEN,
SCOPE_DOCUMENTEN_LOCK,
]
self.autorisatie.save()
Expand Down

0 comments on commit 33db8be

Please sign in to comment.