X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fsol005%2Fuser.py;h=74a7c59e41a254dd09bfa902b72698817de7dbe9;hb=ae90d6fd63a349680b9f8e9a975bf90ec3c598c4;hp=d94b9c472ea63769c2a81d142ef45a064a4d590b;hpb=df7452bc42c9ad62f6a0923c0c3eb42a3bc3a331;p=osm%2Fosmclient.git diff --git a/osmclient/sol005/user.py b/osmclient/sol005/user.py index d94b9c4..74a7c59 100644 --- a/osmclient/sol005/user.py +++ b/osmclient/sol005/user.py @@ -88,9 +88,9 @@ class User(object): """Updates an existing OSM user identified by name""" self._logger.debug("") if pwd_change: - self._client.get_token(pwd_change) + token_info = self._client.get_token(pwd_change) else: - self._client.get_token() + token_info = self._client.get_token() # print(user) myuser = self.get(name) update_user = { @@ -151,6 +151,28 @@ class User(object): mapping = {"project": project, "role": role} update_user["remove_project_role_mappings"].append(mapping) + if user.get("unlock"): + if token_info.get("admin_show"): + update_user["unlock"] = user["unlock"] + update_user["system_admin_id"] = token_info.get("user_id") + else: + raise ClientException( + "{} does not have privilege to unlock {}".format( + token_info.get("username"), myuser.get("username") + ) + ) + + if user.get("renew"): + if token_info.get("admin_show"): + update_user["renew"] = user["renew"] + update_user["system_admin_id"] = token_info.get("user_id") + else: + raise ClientException( + "{} does not have privilege to renew {}".format( + token_info.get("username"), myuser.get("username") + ) + ) + if not update_user["remove_project_role_mappings"]: del update_user["remove_project_role_mappings"] if not update_user["add_project_role_mappings"]: @@ -216,7 +238,11 @@ class User(object): def list(self, filter=None): """Returns the list of OSM users""" self._logger.debug("") - self._client.get_token() + response = self._client.get_token() + admin_show = None + if response: + admin_show = response.get("admin_show") + filter_string = "" if filter: filter_string = "?{}".format(filter) @@ -224,7 +250,9 @@ class User(object): "{}{}".format(self._apiBase, filter_string), skip_query_admin=True ) # print('RESP: {}'.format(resp)) - if resp: + if resp and response: + return json.loads(resp), admin_show + elif resp: return json.loads(resp) return list()