Module ActiveLdap::ObjectClass
In: lib/active_ldap/object_class.rb
Error AttributeAssignmentError AdapterNotSpecified OperationNotPermitted RequiredObjectClassMissed ConnectionError RequiredAttributeMissed LdifInvalid DistinguishedNameNotSetError EntryNotFound LdapError SaveError StrongAuthenticationRequired NotImplemented AdapterNotFound TimeoutError AuthenticationError AttributeValueInvalid EntryNotSaved DistinguishedNameInputInvalid EntryAlreadyExist ObjectClassError UnknownAttribute EntryInvalid DeleteError ConfigurationError ConnectionNotSetup DistinguishedNameInvalid Schema\n[lib/active_ldap/schema.rb\nlib/active_ldap/schema/syntaxes.rb] Base DistinguishedName Reloadable::Deprecated Reloadable::Subclasses Enumerable Ldif Collection EntryAttribute StandardError Children HasManyWrap HasMany BelongsToMany Proxy BelongsTo Normalizable Common Find LDIF Delete Update ActiveRecord::Callbacks GetText Parser Base\n[lib/active_ldap/adapter/base.rb\nlib/active_ldap/adapter/jndi.rb\nlib/active_ldap/adapter/ldap.rb\nlib/active_ldap/adapter/net_ldap.rb] Jndi Ldap NetLdap GetTextSupport ActiveRecord::Validations Xml JndiConnection lib/active_ldap/distinguished_name.rb lib/active_ldap/base.rb lib/active_ldap/xml.rb lib/active_ldap/schema.rb lib/active_ldap/entry_attribute.rb lib/active_ldap/ldif.rb lib/active_ldap/ldap_error.rb Compatible ClassMethods Associations LdapBenchmarking ActionController Populate lib/active_ldap/association/has_many_wrap.rb lib/active_ldap/association/children.rb lib/active_ldap/association/collection.rb lib/active_ldap/association/proxy.rb lib/active_ldap/association/belongs_to_many.rb lib/active_ldap/association/belongs_to.rb lib/active_ldap/association/has_many.rb HasManyUtils Association ClassMethods Tree Acts Command ClassMethods Normalizable Attributes Update Common ModifyNameRecordLoadable AddOperationModifiable DeleteOperationModifiable ReplaceOperationModifiable ModifyRecordLoadable DeleteRecordLoadable AddRecordLoadable ContentRecordLoadable LDIF Delete Find Operations GetTextSupport Escape ClassMethods Configuration ClassMethods ObjectClass ClassMethods Callbacks lib/active_ldap/get_text/parser.rb GetText lib/active_ldap/adapter/jndi_connection.rb lib/active_ldap/adapter/net_ldap.rb lib/active_ldap/adapter/ldap.rb lib/active_ldap/adapter/base.rb lib/active_ldap/adapter/jndi.rb Adapter Validations GetTextFallback Helper ClassMethods HumanReadable Salt UserPassword ClassMethods Connection ActiveLdap dot/m_46_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 15
15:     def add_class(*target_classes)
16:       replace_class(classes + target_classes)
17:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 37
37:     def classes
38:       (get_attribute('objectClass', true) || []).dup
39:     end
classes=(*target_classes)

Alias for replace_class

[Source]

    # File lib/active_ldap/object_class.rb, line 19
19:     def ensure_recommended_classes
20:       add_class(self.class.recommended_classes)
21:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 23
23:     def remove_class(*target_classes)
24:       replace_class(classes - target_classes)
25:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 27
27:     def replace_class(*target_classes)
28:       new_classes = target_classes.flatten.compact.uniq
29:       assert_object_classes(new_classes)
30:       if new_classes.sort != classes.sort
31:         set_attribute('objectClass', new_classes)
32:         clear_object_class_based_cache
33:       end
34:     end

Private Instance methods

[Source]

    # File lib/active_ldap/object_class.rb, line 73
73:     def assert_have_all_required_classes(new_classes)
74:       _schema = schema
75:       normalized_new_classes = new_classes.collect(&:downcase)
76:       required_classes = self.class.required_classes
77:       required_classes = required_classes.reject do |required_class_name|
78:         normalized_new_classes.include?(required_class_name.downcase) or
79:           (normalized_new_classes.find do |new_class|
80:              required_class = _schema.object_class(required_class_name)
81:              _schema.object_class(new_class).super_class?(required_class)
82:            end)
83:       end
84:       unless required_classes.empty?
85:         format = _("Can't remove required objectClass: %s")
86:         required_class_names = required_classes.collect do |required_class|
87:           required_class = _schema.object_class(required_class)
88:           self.class.human_object_class_name(required_class)
89:         end
90:         message = format % required_class_names.join(", ")
91:         raise RequiredObjectClassMissed, message
92:       end
93:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 42
42:     def assert_object_classes(new_classes)
43:       assert_valid_object_class_value_type(new_classes)
44:       assert_valid_object_class_value(new_classes)
45:       assert_have_all_required_classes(new_classes)
46:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 61
61:     def assert_valid_object_class_value(new_classes)
62:       _schema = schema
63:       invalid_classes = new_classes.reject do |new_class|
64:         !_schema.object_class(new_class).id.nil?
65:       end
66:       unless invalid_classes.empty?
67:         format = _("unknown objectClass in LDAP server: %s")
68:         message = format % invalid_classes.join(', ')
69:         raise ObjectClassError, message
70:       end
71:     end

[Source]

    # File lib/active_ldap/object_class.rb, line 48
48:     def assert_valid_object_class_value_type(new_classes)
49:       invalid_classes = new_classes.reject do |new_class|
50:         new_class.is_a?(String)
51:       end
52:       unless invalid_classes.empty?
53:         format = _("Value in objectClass array is not a String: %s")
54:         invalid_classes_info = invalid_classes.collect do |invalid_class|
55:           "#{invalid_class.class}: #{invalid_class.inspect}"
56:         end.join(", ")
57:         raise TypeError, format % invalid_classes_info
58:       end
59:     end

[Validate]