class Artifactory::Resource::PermissionTarget::Principal

Attributes

groups[RW]
users[RW]

Public Class Methods

new(users = {}, groups = {}) click to toggle source
# File lib/artifactory/resources/permission_target.rb, line 100
def initialize(users = {}, groups = {})
  @users = users
  @groups = groups
end

Public Instance Methods

to_abbreviated() click to toggle source

Converts the user-friendly form of the principals hash to one suitable for posting to Artifactory. @return [Hash]

# File lib/artifactory/resources/permission_target.rb, line 110
def to_abbreviated
  { "users" => abbreviate_principal(@users), "groups" => abbreviate_principal(@groups) }
end

Private Instance Methods

abbreviate_permissions(array) click to toggle source

Replace an array of verbose permission names with an equivalent array of abbreviated permission names.

# File lib/artifactory/resources/permission_target.rb, line 119
def abbreviate_permissions(array)
  inverse = VERBOSE_PERMS.invert
  if (inverse.keys & array).sort != array.sort
    raise "One of your principals contains an invalid permission.  Valid permissions are #{inverse.keys.join(", ")}"
  end

  array.map { |elt| inverse[elt] }.sort
end
abbreviate_principal(principal_hash) click to toggle source

Replace a principal with verbose permissions with an equivalent one with abbreviated permissions.

# File lib/artifactory/resources/permission_target.rb, line 131
def abbreviate_principal(principal_hash)
  Hash[principal_hash.map { |k, v| [k, abbreviate_permissions(v)] } ]
end