diff --git a/auslib/web/admin/swagger/api.yaml b/auslib/web/admin/swagger/api.yaml index 26e990396c..08cdd85baf 100644 --- a/auslib/web/admin/swagger/api.yaml +++ b/auslib/web/admin/swagger/api.yaml @@ -96,6 +96,7 @@ parameters: in: query description: data version of object. type: integer + format: int32 minimum: 1 required: true diff --git a/auslib/web/admin/views/permissions.py b/auslib/web/admin/views/permissions.py index cbc3238aae..7858e19046 100644 --- a/auslib/web/admin/views/permissions.py +++ b/auslib/web/admin/views/permissions.py @@ -134,9 +134,9 @@ def _delete(self, username, permission, changed_by, transaction): # won't find data where it's expecting it. Instead, we have to tell it to look at # the query string, which Flask puts in request.args. + old_data_version = int(connexion.request.args.get("data_version")) dbo.permissions.delete(where={"username": username, "permission": permission}, - changed_by=changed_by, old_data_version=connexion.request.args.get("data_version"), - transaction=transaction) + changed_by=changed_by, old_data_version=old_data_version, transaction=transaction) return Response(status=200) except ValueError as e: self.log.warning("Bad input: %s", e.args) @@ -243,6 +243,7 @@ def _delete(self, username, role, changed_by, transaction): "username '%s'" % (role, username)}) # query argument i.e. data_version is also required. # All input value validations already defined in swagger specification and carried out by connexion. + old_data_version = int(connexion.request.args.get("data_version")) dbo.permissions.revokeRole(username, role, changed_by=changed_by, - old_data_version=connexion.request.args.get("data_version"), transaction=transaction) + old_data_version=old_data_version, transaction=transaction) return Response(status=200) diff --git a/auslib/web/admin/views/releases.py b/auslib/web/admin/views/releases.py index 7950af184d..eba4f5907c 100644 --- a/auslib/web/admin/views/releases.py +++ b/auslib/web/admin/views/releases.py @@ -307,8 +307,9 @@ def _delete(self, release, changed_by, transaction): # query argument i.e. data_version is also required. # All input value validations already defined in swagger specification and carried out by connexion. try: + old_data_version = int(connexion.request.args.get("data_version")) dbo.releases.delete(where={"name": release["name"]}, changed_by=changed_by, - old_data_version=connexion.request.args.get("data_version"), + old_data_version=old_data_version, transaction=transaction) except ReadOnlyError as e: msg = "Couldn't delete release: %s" % e diff --git a/auslib/web/admin/views/rules.py b/auslib/web/admin/views/rules.py index 8f5648e8c2..f65c59f5c7 100644 --- a/auslib/web/admin/views/rules.py +++ b/auslib/web/admin/views/rules.py @@ -152,8 +152,9 @@ def _delete(self, id_or_alias, transaction, changed_by): # rule_id and data_version), we still want to create and validate the # form to make sure that the CSRF token is checked. + old_data_version = int(connexion.request.args.get("data_version")) dbo.rules.delete(where={"rule_id": id_or_alias}, changed_by=changed_by, - old_data_version=connexion.request.args.get("data_version"), + old_data_version=old_data_version, transaction=transaction) return Response(status=200)