from osm_nbi.base_topic import BaseTopic, EngineException
from osm_nbi.authconn import AuthconnNotFoundException, AuthconnConflictException
from osm_common.dbbase import deep_update_rfc7396
+import copy
__author__ = "Alfonso Tierno <alfonso.tiernosepulveda@telefonica.com>"
class UserTopicAuth(UserTopic):
# topic = "users"
- # topic_msg = "users"
+ topic_msg = "users"
schema_new = user_new_schema
schema_edit = user_edit_schema
rollback.append({"topic": self.topic, "_id": _id})
# del content["password"]
- # self._send_msg("created", content, not_send_msg=not_send_msg)
+ self._send_msg("created", content, not_send_msg=None)
return _id, None
except ValidationError as e:
raise EngineException(e, HTTPStatus.UNPROCESSABLE_ENTITY)
"add_project_role_mappings": mappings_to_add,
"remove_project_role_mappings": mappings_to_remove
})
+ data_to_send = {'_id': _id, "changes": indata}
+ self._send_msg("edited", data_to_send, not_send_msg=None)
# return _id
except ValidationError as e:
self.check_conflict_on_del(session, uid, user)
if not dry_run:
v = self.auth.delete_user(uid)
+ self._send_msg("deleted", user, not_send_msg=not_send_msg)
return v
return None
class ProjectTopicAuth(ProjectTopic):
# topic = "projects"
- # topic_msg = "projects"
+ topic_msg = "project"
schema_new = project_new_schema
schema_edit = project_edit_schema
self.format_on_new(content, project_id=session["project_id"], make_public=session["public"])
_id = self.auth.create_project(content)
rollback.append({"topic": self.topic, "_id": _id})
- # self._send_msg("created", content, not_send_msg=not_send_msg)
+ self._send_msg("created", content, not_send_msg=None)
return _id, None
except ValidationError as e:
raise EngineException(e, HTTPStatus.UNPROCESSABLE_ENTITY)
self.check_conflict_on_del(session, pid, proj)
if not dry_run:
v = self.auth.delete_project(pid)
+ self._send_msg("deleted", proj, not_send_msg=None)
return v
return None
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)
-
+ content_original = copy.deepcopy(content)
deep_update_rfc7396(content, indata)
self.auth.update_project(content["_id"], content)
+ proj_data = {"_id": _id, "changes": indata, "original": content_original}
+ self._send_msg("edited", proj_data, not_send_msg=None)
except ValidationError as e:
raise EngineException(e, HTTPStatus.UNPROCESSABLE_ENTITY)