Module ActiveLdap::Validations
In: lib/active_ldap/validations.rb
Error DeleteError AdapterNotSpecified OperationNotPermitted LdapError RequiredAttributeMissed AttributeAssignmentError RequiredObjectClassMissed DistinguishedNameNotSetError StrongAuthenticationRequired ConnectionError SaveError EntryNotFound AuthenticationError EntryNotSaved UnknownAttribute ConnectionNotEstablished TimeoutError ConfigurationError AdapterNotFound DistinguishedNameInvalid ObjectClassError EntryInvalid EntryAlreadyExist Reloadable::Deprecated Base Reloadable::Subclasses Enumerable Collection StandardError HasMany HasManyWrap BelongsToMany Proxy BelongsTo Base\n[lib/active_ldap/adapter/base.rb\nlib/active_ldap/adapter/ldap.rb\nlib/active_ldap/adapter/net_ldap.rb] Ldap NetLdap ActiveRecord::Callbacks ActiveRecord::Validations Schema DistinguishedName lib/active_ldap/base.rb lib/active_ldap/schema.rb lib/active_ldap/distinguished_name.rb lib/active_ldap/ldap_error.rb ClassMethods Associations lib/active_ldap/association/has_many_wrap.rb lib/active_ldap/association/has_many.rb lib/active_ldap/association/proxy.rb lib/active_ldap/association/collection.rb lib/active_ldap/association/belongs_to_many.rb lib/active_ldap/association/belongs_to.rb Association ClassMethods Configuration Command lib/active_ldap/adapter/net_ldap.rb lib/active_ldap/adapter/ldap.rb lib/active_ldap/adapter/base.rb Adapter ClassMethods Attributes ClassMethods ObjectClass Callbacks ClassMethods Connection Validations Salt UserPassword ActiveLdap dot/m_26_0.png

Methods

Included Modules

ActiveRecord::Validations

Public Class methods

[Source]

    # File lib/active_ldap/validations.rb, line 5
 5:     def self.append_features(base)
 6:       super
 7: 
 8:       base.class_eval do
 9:         alias_method :new_record?, :new_entry?
10:         include ActiveRecord::Validations
11: 
12:         validate :validate_required_values
13: 
14:         class << self
15:           def evaluate_condition_with_active_ldap_support(condition, entry)
16:             evaluate_condition_without_active_ldap_support(condition, entry)
17:           rescue ActiveRecord::ActiveRecordError
18:             raise Error, $!.message
19:           end
20:           alias_method_chain :evaluate_condition, :active_ldap_support
21:         end
22: 
23:         def save_with_active_ldap_support!
24:           save_without_active_ldap_support!
25:         rescue ActiveRecord::RecordInvalid
26:           raise EntryInvalid, $!.message
27:         end
28:         alias_method_chain :save!, :active_ldap_support
29: 
30:         def valid?
31:           ensure_apply_object_class
32:           super
33:         end
34: 
35:         # validate_required_values
36:         #
37:         # Basic validation:
38:         # - Verify that every 'MUST' specified in the schema has a value defined
39:         def validate_required_values
40:           logger.debug {"stub: validate_required_values called"}
41: 
42:           # Make sure all MUST attributes have a value
43:           @musts.each do |object_class, attributes|
44:             attributes.each do |required_attribute|
45:               # Normalize to ensure we catch schema problems
46:               real_name = to_real_attribute_name(required_attribute, true)
47:               raise UnknownAttribute.new(required_attribute) if real_name.nil?
48:               # # Set default if it wasn't yet set.
49:               # @data[real_name] ||= [] # need?
50:               value = @data[real_name] || []
51:               # Check for missing requirements.
52:               if value.empty?
53:                 aliases = schema.attribute_aliases(real_name) - [real_name]
54:                 message = "is required attribute "
55:                 unless aliases.empty?
56:                   message << "(aliases: #{aliases.join(', ')}) "
57:                 end
58:                 message << "by objectClass '#{object_class}'"
59:                 errors.add(real_name, message)
60:               end
61:             end
62:           end
63:           logger.debug {"stub: validate_required_values finished"}
64:         end
65: 
66:         private
67:         def run_validations_with_active_ldap_support(validation_method)
68:           run_validations_without_active_ldap_support(validation_method)
69:         rescue ActiveRecord::ActiveRecordError
70:           raise Error, $!.message
71:         end
72:         alias_method_chain :run_validations, :active_ldap_support
73:       end
74:     end

[Source]

    # File lib/active_ldap/validations.rb, line 15
15:           def evaluate_condition_with_active_ldap_support(condition, entry)
16:             evaluate_condition_without_active_ldap_support(condition, entry)
17:           rescue ActiveRecord::ActiveRecordError
18:             raise Error, $!.message
19:           end

Public Instance methods

[Source]

    # File lib/active_ldap/validations.rb, line 67
67:         def run_validations_with_active_ldap_support(validation_method)
68:           run_validations_without_active_ldap_support(validation_method)
69:         rescue ActiveRecord::ActiveRecordError
70:           raise Error, $!.message
71:         end

[Source]

    # File lib/active_ldap/validations.rb, line 23
23:         def save_with_active_ldap_support!
24:           save_without_active_ldap_support!
25:         rescue ActiveRecord::RecordInvalid
26:           raise EntryInvalid, $!.message
27:         end

[Source]

    # File lib/active_ldap/validations.rb, line 30
30:         def valid?
31:           ensure_apply_object_class
32:           super
33:         end

validate_required_values

Basic validation:

  • Verify that every ‘MUST’ specified in the schema has a value defined

[Source]

    # File lib/active_ldap/validations.rb, line 39
39:         def validate_required_values
40:           logger.debug {"stub: validate_required_values called"}
41: 
42:           # Make sure all MUST attributes have a value
43:           @musts.each do |object_class, attributes|
44:             attributes.each do |required_attribute|
45:               # Normalize to ensure we catch schema problems
46:               real_name = to_real_attribute_name(required_attribute, true)
47:               raise UnknownAttribute.new(required_attribute) if real_name.nil?
48:               # # Set default if it wasn't yet set.
49:               # @data[real_name] ||= [] # need?
50:               value = @data[real_name] || []
51:               # Check for missing requirements.
52:               if value.empty?
53:                 aliases = schema.attribute_aliases(real_name) - [real_name]
54:                 message = "is required attribute "
55:                 unless aliases.empty?
56:                   message << "(aliases: #{aliases.join(', ')}) "
57:                 end
58:                 message << "by objectClass '#{object_class}'"
59:                 errors.add(real_name, message)
60:               end
61:             end
62:           end
63:           logger.debug {"stub: validate_required_values finished"}
64:         end

[Validate]