Sha256: 4e64e7348ae58b6bcaf2b10a0b082efd0cb03be4488469fa8e943d40b86b5f37

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

module Ridley
  # @example listing all users
  #   conn = Ridley.new(...)
  #   conn.user.all #=> [
  #     #<Ridley::ClientObject chef_id:'admin'>
  #   ]
  class UserResource < Ridley::Resource
    set_resource_path "users"
    represented_by Ridley::UserObject

    # Retrieves a user from the remote connection matching the given chef_id
    # and regenerates it's private key. An instance of the updated object will
    # be returned and have a value set for the 'private_key' accessor.
    #
    # @param [String, #chef_id] chef_user
    #
    # @raise [Errors::ResourceNotFound]
    #   if a user with the given chef_id is not found
    #
    # @return [Ridley::UserObject]
    def regenerate_key(chef_user)
      unless chef_user = find(chef_user)
        abort Errors::ResourceNotFound.new("user '#{chef_user}' not found")
      end

      chef_user.private_key = true
      update(chef_user)
    end

    def authenticate(username, password)
      resp = request(:post, '/authenticate_user', {'name' => username, 'password' => password}.to_json)
      abort("Username mismatch: sent #{username}, received #{resp['name']}") unless resp['name'] == username
      resp['verified']
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ridley-2.4.0 lib/ridley/resources/user_resource.rb