X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=osm_nbi%2Fadmin_topics.py;h=9facd8bdec3b3b7878c10f484dd6413ce5bb1ce0;hb=38dcfeb4a5d8c8da65b9ee2d2c2f58bc6164f6bf;hp=76d4de816cf824058b887e0a692c85497849cf98;hpb=a519a962c9bf008ddbee26500557b1de287f323a;p=osm%2FNBI.git diff --git a/osm_nbi/admin_topics.py b/osm_nbi/admin_topics.py index 76d4de8..9facd8b 100644 --- a/osm_nbi/admin_topics.py +++ b/osm_nbi/admin_topics.py @@ -655,11 +655,11 @@ class ProjectTopicAuth(ProjectTopic): :param db_content: The database content of this item _id :return: None if ok or raises EngineException with the conflict """ - projects = self.auth.get_project_list() - current_project = [project for project in projects - if project["name"] in session["project_id"]][0] + # projects = self.auth.get_project_list() + # current_project = [project for project in projects + # if project["name"] in session["project_id"]][0] - if _id == current_project["_id"]: + if _id == session["project_id"]: raise EngineException("You cannot delete your own project", http_code=HTTPStatus.CONFLICT) def new(self, rollback, session, indata=None, kwargs=None, headers=None): @@ -735,6 +735,35 @@ class ProjectTopicAuth(ProjectTopic): return v return None + def edit(self, session, _id, indata=None, kwargs=None, content=None): + """ + Updates a project entry. + + :param session: contains "username", "admin", "force", "public", "project_id", "set_project" + :param _id: + :param indata: data to be inserted + :param kwargs: used to override the indata descriptor + :param content: + :return: _id: identity of the inserted data. + """ + indata = self._remove_envelop(indata) + + # Override descriptor with query string kwargs + 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) + self.check_conflict_on_edit(session, content, indata, _id=_id) + self.format_on_edit(content, indata) + + if "name" in indata: + self.auth.update_project(content["_id"], indata["name"]) + except ValidationError as e: + raise EngineException(e, HTTPStatus.UNPROCESSABLE_ENTITY) + class RoleTopicAuth(BaseTopic): topic = "roles_operations"