module NexusCli::UserActions

def change_password(params)

Returns:
  • (type) - [description]

Parameters:
  • params (Hash) -- a hash given to update the users password
def change_password(params)
  response = nexus.post(nexus_url("service/local/users_changepw"), :body => create_change_password_json(params), :header => DEFAULT_CONTENT_TYPE_HEADER)
  case response.status
  when 202
    return true
  when 400
    raise InvalidCredentialsException
  else
    raise UnexpectedStatusCodeException.new(response.status)
  end
end

def create_change_password_json(params)

def create_change_password_json(params)
  JSON.dump(:data => params)
end

def create_user(params)

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

Parameters:
  • params (Hash) -- a Hash of parameters to use during user creation
def create_user(params)
  response = nexus.post(nexus_url("service/local/users"), :body => create_user_json(params), :header => DEFAULT_CONTENT_TYPE_HEADER)
  case response.status
  when 201
    return true
  when 400
    raise CreateUserException.new(response.content)
  else
    raise UnexpectedStatusCodeException.new(reponse.code)
  end
end

def create_user_json(params)

def create_user_json(params)
  JSON.dump(:data => params)
end

def delete_user(user_id)

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

Parameters:
  • user_id (String) -- the Nexus user to delete
def delete_user(user_id)
  response = nexus.delete(nexus_url("service/local/users/#{user_id}"))
  case response.status
  when 204
    return true
  when 404
    raise UserNotFoundException.new(user_id)
  else
    raise UnexpectedStatusCodeException.new(response.status)
  end
end

def get_user(user)

Returns:
  • (Hash) - a parsed Ruby object representing the user's JSON

Parameters:
  • user (String) -- the name of the user to get
def get_user(user)
  response = nexus.get(nexus_url("service/local/users/#{user}"), :header => DEFAULT_ACCEPT_HEADER)
  case response.status
  when 200
    return JSON.parse(response.content)
  when 404
    raise UserNotFoundException.new(user)
  else
    raise UnexpectedStatusCodeException.new(response.status)
  end
end

def get_users

Returns:
  • (String) - a String of XML with data about Nexus users
def get_users
  response = nexus.get(nexus_url("service/local/users"))
  case response.status
  when 200
    return response.content
  else
    raise UnexpectedStatusCodeException.new(response.status)
  end
end

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