input = super()._validate_input_new(input, force)
return self._obtain_url(input, True)
- def _validate_input_edit(self, input, force=False):
- input = super()._validate_input_edit(input, force)
+ def _validate_input_edit(self, input, content, force=False):
+ input = super()._validate_input_edit(input, content, force)
return self._obtain_url(input, False)
if kwargs:
BaseTopic._update_input_with_kwargs(indata, kwargs)
try:
- indata = self._validate_input_edit(indata, force=session["force"])
-
if not content:
content = self.show(session, _id)
+ indata = self._validate_input_edit(indata, content, force=session["force"])
self.check_conflict_on_edit(session, content, indata, _id=_id)
# self.format_on_edit(content, indata)
except ValidationError as e:
raise EngineException(e, HTTPStatus.UNPROCESSABLE_ENTITY)
- def list(self, session, filter_q=None):
+ def list(self, session, filter_q=None, api_req=False):
"""
Get a list of the topic that matches a filter
:param session: contains "username", "admin", "force", "public", "project_id", "set_project"
else:
raise EngineException("Project not found", HTTPStatus.NOT_FOUND)
- def list(self, session, filter_q=None):
+ def list(self, session, filter_q=None, api_req=False):
"""
Get a list of the topic that matches a filter
if kwargs:
BaseTopic._update_input_with_kwargs(indata, kwargs)
try:
- indata = self._validate_input_edit(indata, force=session["force"])
-
if not content:
content = self.show(session, _id)
+ indata = self._validate_input_edit(indata, content, force=session["force"])
self.check_conflict_on_edit(session, content, indata, _id=_id)
self.format_on_edit(content, indata)
if role_def[-1] == ":":
raise ValidationError("Operation cannot end with ':'")
- role_def_matches = [op for op in operations if op.startswith(role_def)]
+ match = next((op for op in operations if op == role_def or op.startswith(role_def + ":")), None)
- if len(role_def_matches) == 0:
+ if not match:
raise ValidationError("Invalid permission '{}'".format(role_def))
def _validate_input_new(self, input, force=False):
return input
- def _validate_input_edit(self, input, force=False):
+ def _validate_input_edit(self, input, content, force=False):
"""
Validates input user content for updating an entry.
raise AuthconnConflictException("Found more than one role with filter {}".format(filter_q))
return roles[0]
- def list(self, session, filter_q=None):
+ def list(self, session, filter_q=None, api_req=False):
"""
Get a list of the topic that matches a filter
if kwargs:
self._update_input_with_kwargs(indata, kwargs)
try:
- indata = self._validate_input_edit(indata, force=session["force"])
if not content:
content = self.show(session, _id)
+ indata = self._validate_input_edit(indata, content, force=session["force"])
deep_update_rfc7396(content, indata)
self.check_conflict_on_edit(session, content, indata, _id=_id)
self.format_on_edit(content, indata)