Module ActiveLdap::ObjectClass
In: lib/active_ldap/object_class.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

Classes and Modules

Module ActiveLdap::ObjectClass::ClassMethods

Public Class methods

[Source]

   # File lib/active_ldap/object_class.rb, line 3
3:     def self.included(base)
4:       base.extend(ClassMethods)
5:     end

Public Instance methods

[Source]

    # File lib/active_ldap/object_class.rb, line 10
10:     def add_class(*target_classes)
11:       replace_class((classes + target_classes.flatten).uniq)
12:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 30
30:     def classes
31:       (get_attribute('objectClass', true) || []).dup
32:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 14
14:     def ensure_recommended_classes
15:       add_class(self.class.recommended_classes)
16:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 18
18:     def remove_class(*target_classes)
19:       replace_class((classes - target_classes.flatten).uniq)
20:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 22
22:     def replace_class(*target_classes)
23:       new_classes = target_classes.flatten.uniq
24:       assert_object_classes(new_classes)
25:       if new_classes.sort != classes.sort
26:         set_attribute('objectClass', new_classes)
27:       end
28:     end

Private Instance methods

[Source]

    # File lib/active_ldap/object_class.rb, line 65
65:     def assert_have_all_required_classes(new_classes)
66:       required_classes = self.class.required_classes - new_classes
67:       unless required_classes.empty?
68:         raise RequiredObjectClassMissed,
69:                 "Can't remove required objectClass: " +
70:                  required_classes.join(", ")
71:       end
72:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 35
35:     def assert_object_classes(new_classes)
36:       assert_valid_object_class_value_type(new_classes)
37:       assert_valid_object_class_value(new_classes)
38:       assert_have_all_required_classes(new_classes)
39:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 54
54:     def assert_valid_object_class_value(new_classes)
55:       invalid_classes = new_classes.reject do |new_class|
56:         schema.exist_name?("objectClasses", new_class)
57:       end
58:       unless invalid_classes.empty?
59:         message = "unknown objectClass in LDAP server"
60:         message = "#{message}: #{invalid_classes.join(', ')}"
61:         raise ObjectClassError, message
62:       end
63:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 41
41:     def assert_valid_object_class_value_type(new_classes)
42:       invalid_classes = new_classes.reject do |new_class|
43:         new_class.is_a?(String)
44:       end
45:       unless invalid_classes.empty?
46:         message = "Value in objectClass array is not a String"
47:         invalid_classes_info = invalid_classes.collect do |invalid_class|
48:           "#{invalid_class.class}:#{invalid_class.inspect}"
49:         end.join(", ")
50:         raise TypeError,  "#{message}: #{invalid_classes_info}"
51:       end
52:     end

[Validate]