X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fsol005%2Fuser.py;h=d94b9c472ea63769c2a81d142ef45a064a4d590b;hb=e61b0125c2ddc6804de4d71f5fa6d9d2d4772b1e;hp=d6c1e16b832e893fd090d07786ee018e09ce51f3;hpb=95686bbc69ded243c346f94dceb0bee567572fb7;p=osm%2Fosmclient.git diff --git a/osmclient/sol005/user.py b/osmclient/sol005/user.py index d6c1e16..d94b9c4 100644 --- a/osmclient/sol005/user.py +++ b/osmclient/sol005/user.py @@ -84,10 +84,13 @@ class User(object): # msg = resp # raise ClientException("failed to create user {} - {}".format(name, msg)) - def update(self, name, user): + def update(self, name, user, pwd_change=None): """Updates an existing OSM user identified by name""" self._logger.debug("") - self._client.get_token() + if pwd_change: + self._client.get_token(pwd_change) + else: + self._client.get_token() # print(user) myuser = self.get(name) update_user = { @@ -95,16 +98,19 @@ class User(object): "remove_project_role_mappings": [], } - # if password is defined, update the password - if user["password"]: - update_user["password"] = user["password"] - if user["username"]: - update_user["username"] = user["username"] + if not user.get("change_password"): + # if password is defined, update the password + if user.get("password"): + update_user["password"] = user["password"] + if user.get("username"): + update_user["username"] = user["username"] + else: + update_user["old_password"] = user["change_password"] + update_user["password"] = user["new_password"] - if user["set-project"]: + if user.get("set-project"): # Remove project and insert project role mapping for set_project in user["set-project"]: - set_project_clean = [m.strip() for m in set_project.split(",")] project, roles = set_project_clean[0], set_project_clean[1:] @@ -114,13 +120,13 @@ class User(object): mapping = {"project": project, "role": role} update_user["add_project_role_mappings"].append(mapping) - if user["remove-project"]: + if user.get("remove-project"): for remove_project in user["remove-project"]: update_user["remove_project_role_mappings"].append( {"project": remove_project} ) - if user["add-project-role"]: + if user.get("add-project-role"): for add_project_role in user["add-project-role"]: add_project_role_clean = [ m.strip() for m in add_project_role.split(",") @@ -131,7 +137,7 @@ class User(object): mapping = {"project": project, "role": role} update_user["add_project_role_mappings"].append(mapping) - if user["remove-project-role"]: + if user.get("remove-project-role"): for remove_project_role in user["remove-project-role"]: remove_project_role_clean = [ m.strip() for m in remove_project_role.split(",")