class SkullIsland::Resources::BasicauthCredential
The BasicauthCredential
resource class
@see docs.konghq.com/hub/kong-inc/basic-auth/ Basic-Auth API definition
Attributes
hashed_password[RW]
Public Class Methods
batch_import(data, verbose: false, test: false)
click to toggle source
# File lib/skull_island/resources/basicauth_credential.rb, line 20 def self.batch_import(data, verbose: false, test: false) raise(Exceptions::InvalidArguments) unless data.is_a?(Array) known_ids = [] data.each_with_index do |resource_data, index| resource = new resource.delayed_set(:username, resource_data) resource.delayed_set(:password, resource_data) if resource_data['password'] resource.delayed_set(:consumer, resource_data) resource.import_update_or_skip(index: index, verbose: verbose, test: test) known_ids << resource.id end known_ids end
relative_uri()
click to toggle source
# File lib/skull_island/resources/basicauth_credential.rb, line 37 def self.relative_uri 'basic-auths' end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/skull_island/resources/basicauth_credential.rb, line 91 def <=>(other) if id if id < other.id -1 elsif id > other.id 1 elsif id == other.id 0 else raise Exceptions::InvalidArguments end else digest <=> other.digest end end
digest()
click to toggle source
# File lib/skull_island/resources/basicauth_credential.rb, line 49 def digest Digest::MD5.hexdigest( if new? && !password.match?(/^hash{.+}$/) hashed_pass = Digest::SHA1.hexdigest((password || '') + consumer.id) "#{username}:hash{#{hashed_pass}}" else "#{username}:#{password}" end ) end
export(options = {})
click to toggle source
# File lib/skull_island/resources/basicauth_credential.rb, line 60 def export(options = {}) hash = { 'username' => username, 'password' => password } hash['consumer'] = "<%= lookup :consumer, '#{consumer.username}' %>" if consumer [*options[:exclude]].each do |exclude| hash.delete(exclude.to_s) end [*options[:include]].each do |inc| hash[inc.to_s] = send(inc.to_sym) end hash.reject { |_, value| value.nil? } end
modified_existing?()
click to toggle source
Credentials can't be updated, only deleted then created
# File lib/skull_island/resources/basicauth_credential.rb, line 73 def modified_existing? return false unless new? # Find credentials of the same username basic_auths = consumer.credentials['basic-auth'] return false unless basic_auths same_username = basic_auths.where(:username, username) existing = same_username.size == 1 ? same_username.first : nil # Need to destroy the old one then save the new one... existing ? existing.destroy && save : false end
project()
click to toggle source
# File lib/skull_island/resources/basicauth_credential.rb, line 87 def project consumer ? consumer.project : nil end
relative_uri()
click to toggle source
# File lib/skull_island/resources/basicauth_credential.rb, line 41 def relative_uri consumer ? "#{consumer.relative_uri}/basic-auth/#{id}" : nil end
save_uri()
click to toggle source
# File lib/skull_island/resources/basicauth_credential.rb, line 45 def save_uri consumer ? "#{consumer.relative_uri}/basic-auth" : nil end
Private Instance Methods
postprocess_consumer(value)
click to toggle source
# File lib/skull_island/resources/basicauth_credential.rb, line 109 def postprocess_consumer(value) if value.is_a?(Hash) Consumer.new( entity: value, lazy: true, tainted: false, api_client: api_client ) else value end end
postprocess_password(value)
click to toggle source
# File lib/skull_island/resources/basicauth_credential.rb, line 130 def postprocess_password(value) hashed_password || !new? ? "hash{#{value}}" : value end
preprocess_consumer(input)
click to toggle source
# File lib/skull_island/resources/basicauth_credential.rb, line 122 def preprocess_consumer(input) if input.is_a?(Hash) input else { 'id' => input.id } end end
preprocess_password(input)
click to toggle source
# File lib/skull_island/resources/basicauth_credential.rb, line 134 def preprocess_password(input) if input.match?(/^hash{.+}$/) @hashed_password = true input.match(/^hash{(.+)}$/)[1] else input end end
validate_consumer(value)
click to toggle source
Used to validate {#consumer} on set
# File lib/skull_island/resources/basicauth_credential.rb, line 144 def validate_consumer(value) # allow either a Consumer object or a Hash value.is_a?(Consumer) || value.is_a?(Hash) end
validate_password(value)
click to toggle source
Used to validate {#password} on set
# File lib/skull_island/resources/basicauth_credential.rb, line 150 def validate_password(value) # allow a String value.is_a?(String) end
validate_username(value)
click to toggle source
Used to validate {#username} on set
# File lib/skull_island/resources/basicauth_credential.rb, line 156 def validate_username(value) # allow a String value.is_a?(String) end