# 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 = {
"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"]:
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(",")
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(",")