Class: Artifactory::Resource::User

Inherits:
Base
  • Object
show all
Defined in:
lib/artifactory/resources/user.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

attribute, #attributes, attributes, #client, #client=, #client?, extract_client!, #extract_client!, format_repos!, #format_repos!, #initialize, #inspect, #set, #to_s, #url_safe, url_safe

Constructor Details

This class inherits a constructor from Artifactory::Resource::Base

Class Method Details

.all(options = {}) ⇒ Array<Resource::User>

Get a list of all users in the system.

Parameters:

  • options (Hash) (defaults to: {})

    the list of options

Options Hash (options):

Returns:



16
17
18
19
20
21
# File 'lib/artifactory/resources/user.rb', line 16

def all(options = {})
  client = extract_client!(options)
  client.get('/api/security/users').map do |hash|
    from_url(hash['uri'], client: client)
  end
end

.find(name, options = {}) ⇒ Resource::User?

Find (fetch) a user by its name.

Examples:

Find a user by its name

User.find('readers') #=> #<User name: 'readers' ...>

Parameters:

  • name (String)

    the name of the user to find

  • options (Hash) (defaults to: {})

    the list of options

Options Hash (options):

Returns:

  • (Resource::User, nil)

    an instance of the user that matches the given name, or nil if one does not exist



41
42
43
44
45
46
47
48
# File 'lib/artifactory/resources/user.rb', line 41

def find(name, options = {})
  client = extract_client!(options)

  response = client.get("/api/security/users/#{url_safe(name)}")
  from_hash(response, client: client)
rescue Error::NotFound
  nil
end

.from_hash(hash, options = {}) ⇒ Resource::User

Create a instance from the given Hash. This method extracts the “safe” information from the hash and adds them to the instance.

Examples:

Create a new user from a hash

User.from_hash('realmAttributes' => '...', 'name' => '...')

Parameters:

  • client (Artifactory::Client)

    the client object to make the request with

  • hash (Hash)

    the hash to create the instance from

Returns:



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/artifactory/resources/user.rb', line 82

def from_hash(hash, options = {})
  client = extract_client!(options)

  new.tap do |instance|
    instance.admin                      = !!hash['admin']
    instance.email                      = hash['email']
    instance.groups                     = Array(hash['groups'])
    instance.internal_password_disabled = hash['internalPasswordDisabled']
    instance.last_logged_in             = hash['lastLoggedIn']
    instance.name                       = hash['name']
    instance.password                   = hash['password']
    instance.profile_updatable          = !!hash['profileUpdatable']
    instance.realm                      = hash['realm']
  end
end

.from_url(url, options = {}) ⇒ Resource::User

Construct a user from the given URL.

Examples:

Create an user object from the given URL

User.from_url('/security/users/readers') #=> #<Resource::User>

Parameters:

  • client (Artifactory::Client)

    the client object to make the request with

  • url (String)

    the URL to find the user from

Returns:



63
64
65
66
# File 'lib/artifactory/resources/user.rb', line 63

def from_url(url, options = {})
  client = extract_client!(options)
  from_hash(client.get(url), client: client)
end

Instance Method Details

#adminObject

Return this object’s admin

Returns:

  • (Object)


99
# File 'lib/artifactory/resources/user.rb', line 99

attribute :admin, false

#admin=(value) ⇒ Object

Set this object’s admin

Parameters:

  • value (Object)

    the value to set for admin

  • default (Object)

    the default value for this attribute



99
# File 'lib/artifactory/resources/user.rb', line 99

attribute :admin, false

#admin?Boolean

Determines if the admin value exists and is truthy

Returns:

  • (Boolean)


99
# File 'lib/artifactory/resources/user.rb', line 99

attribute :admin, false

#deleteBoolean

Delete this user from artifactory, suppressing any ResourceNotFound exceptions might occur.

Returns:

  • (Boolean)

    true if the object was deleted successfully, false otherwise



116
117
118
119
120
# File 'lib/artifactory/resources/user.rb', line 116

def delete
  !!client.delete(api_path)
rescue Error::NotFound
  false
end

#emailObject

Return this object’s email

Returns:

  • (Object)


100
# File 'lib/artifactory/resources/user.rb', line 100

attribute :email

#email=(value) ⇒ Object

Set this object’s email

Parameters:

  • value (Object)

    the value to set for email

  • default (Object)

    the default value for this attribute



100
# File 'lib/artifactory/resources/user.rb', line 100

attribute :email

#email?Boolean

Determines if the email value exists and is truthy

Returns:

  • (Boolean)


100
# File 'lib/artifactory/resources/user.rb', line 100

attribute :email

#groupsObject

Return this object’s groups

Returns:

  • (Object)


101
# File 'lib/artifactory/resources/user.rb', line 101

attribute :groups, []

#groups=(value) ⇒ Object

Set this object’s groups

Parameters:

  • value (Object)

    the value to set for groups

  • default (Object)

    the default value for this attribute



101
# File 'lib/artifactory/resources/user.rb', line 101

attribute :groups, []

#groups?Boolean

Determines if the groups value exists and is truthy

Returns:

  • (Boolean)


101
# File 'lib/artifactory/resources/user.rb', line 101

attribute :groups, []

#internal_password_disabledObject

Return this object’s internal_password_disabled

Returns:

  • (Object)


102
# File 'lib/artifactory/resources/user.rb', line 102

attribute :internal_password_disabled, false

#internal_password_disabled=(value) ⇒ Object

Set this object’s internal_password_disabled

Parameters:

  • value (Object)

    the value to set for internal_password_disabled

  • default (Object)

    the default value for this attribute



102
# File 'lib/artifactory/resources/user.rb', line 102

attribute :internal_password_disabled, false

#internal_password_disabled?Boolean

Determines if the internal_password_disabled value exists and is truthy

Returns:

  • (Boolean)


102
# File 'lib/artifactory/resources/user.rb', line 102

attribute :internal_password_disabled, false

#last_logged_inObject

Return this object’s last_logged_in

Returns:

  • (Object)


103
# File 'lib/artifactory/resources/user.rb', line 103

attribute :last_logged_in

#last_logged_in=(value) ⇒ Object

Set this object’s last_logged_in

Parameters:

  • value (Object)

    the value to set for last_logged_in

  • default (Object)

    the default value for this attribute



103
# File 'lib/artifactory/resources/user.rb', line 103

attribute :last_logged_in

#last_logged_in?Boolean

Determines if the last_logged_in value exists and is truthy

Returns:

  • (Boolean)


103
# File 'lib/artifactory/resources/user.rb', line 103

attribute :last_logged_in

#nameObject

Return this object’s name

Returns:

  • (Object)


104
# File 'lib/artifactory/resources/user.rb', line 104

attribute :name, -> { raise 'Name missing' }

#name=(value) ⇒ Object

Set this object’s name

Parameters:

  • value (Object)

    the value to set for name

  • default (Object)

    the default value for this attribute



104
# File 'lib/artifactory/resources/user.rb', line 104

attribute :name, -> { raise 'Name missing' }

#name?Boolean

Determines if the name value exists and is truthy

Returns:

  • (Boolean)


104
# File 'lib/artifactory/resources/user.rb', line 104

attribute :name, -> { raise 'Name missing' }

#passwordObject

Return this object’s password

Returns:

  • (Object)


105
# File 'lib/artifactory/resources/user.rb', line 105

attribute :password

#password=(value) ⇒ Object

Set this object’s password

Parameters:

  • value (Object)

    the value to set for password

  • default (Object)

    the default value for this attribute



105
# File 'lib/artifactory/resources/user.rb', line 105

attribute :password

#password?Boolean

Determines if the password value exists and is truthy

Returns:

  • (Boolean)


105
# File 'lib/artifactory/resources/user.rb', line 105

attribute :password

#profile_updatableObject

Return this object’s profile_updatable

Returns:

  • (Object)


106
# File 'lib/artifactory/resources/user.rb', line 106

attribute :profile_updatable, true

#profile_updatable=(value) ⇒ Object

Set this object’s profile_updatable

Parameters:

  • value (Object)

    the value to set for profile_updatable

  • default (Object)

    the default value for this attribute



106
# File 'lib/artifactory/resources/user.rb', line 106

attribute :profile_updatable, true

#profile_updatable?Boolean

Determines if the profile_updatable value exists and is truthy

Returns:

  • (Boolean)


106
# File 'lib/artifactory/resources/user.rb', line 106

attribute :profile_updatable, true

#realmObject

Return this object’s realm

Returns:

  • (Object)


107
# File 'lib/artifactory/resources/user.rb', line 107

attribute :realm

#realm=(value) ⇒ Object

Set this object’s realm

Parameters:

  • value (Object)

    the value to set for realm

  • default (Object)

    the default value for this attribute



107
# File 'lib/artifactory/resources/user.rb', line 107

attribute :realm

#realm?Boolean

Determines if the realm value exists and is truthy

Returns:

  • (Boolean)


107
# File 'lib/artifactory/resources/user.rb', line 107

attribute :realm

#saveBoolean

Save the user to the artifactory server.

Returns:

  • (Boolean)


127
128
129
130
# File 'lib/artifactory/resources/user.rb', line 127

def save
  client.put(api_path, to_json, headers)
  true
end

#to_hashHash

The hash format for this user.

Returns:

  • (Hash)


137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/artifactory/resources/user.rb', line 137

def to_hash
  {
    'admin'                    => admin,
    'email'                    => email,
    'groups'                   => groups,
    'internalPasswordDisabled' => internal_password_disabled,
    'lastLoggedIn'             => last_logged_in,
    'name'                     => name,
    'password'                 => password,
    'profileUpdatable'         => profile_updatable,
    'realm'                    => realm,
  }
end

#to_jsonString

The JSON representation of this resource.

Returns:

  • (String)


156
157
158
# File 'lib/artifactory/resources/user.rb', line 156

def to_json
  JSON.fast_generate(to_hash)
end