module NexusCli::UserActions

def update_user(params)

Returns:
  • (Boolean) - true if the user is updated, false otherwise

Parameters:
  • params (Hash) -- a Hash of parameters to update
def update_user(params)
  params[:roles] = [] if params[:roles] == [""]
  user_json = get_user(params[:userId])
  modified_json = JsonPath.for(user_json)
  params.each do |key, value|
    modified_json.gsub!("$..#{key}"){|v| value} unless key == "userId" || value.blank?
  end
  response = nexus.put(nexus_url("service/local/users/#{params[:userId]}"), :body => JSON.dump(modified_json.to_hash), :header => DEFAULT_CONTENT_TYPE_HEADER)
  case response.status
  when 200
    return true
  when 400
    raise UpdateUserException.new(response.content)
  else
    raise UnexpectedStatusCodeException.new(response.status)
  end
end