Module ActiveLdap::ObjectClass
In: lib/active_ldap/object_class.rb
Error AttributeAssignmentError AdapterNotSpecified OperationNotPermitted RequiredObjectClassMissed ConnectionError RequiredAttributeMissed LdifInvalid LdapError DistinguishedNameNotSetError EntryNotFound SaveError StrongAuthenticationRequired AdapterNotFound ConnectionNotEstablished TimeoutError AuthenticationError AttributeValueInvalid EntryNotSaved DistinguishedNameInputInvalid EntryAlreadyExist ObjectClassError UnknownAttribute EntryInvalid DeleteError ConfigurationError DistinguishedNameInvalid DistinguishedName Base Reloadable::Deprecated Reloadable::Subclasses Enumerable Ldif Collection EntryAttribute StandardError Children HasManyWrap HasMany BelongsToMany Proxy BelongsTo Common Find LDIF Delete Update Normalizable GetText Parser ActiveRecord::Callbacks ActiveRecord::Validations 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 Schema\n[lib/active_ldap/schema.rb\nlib/active_ldap/schema/syntaxes.rb] JndiConnection lib/active_ldap/distinguished_name.rb lib/active_ldap/base.rb lib/active_ldap/schema.rb lib/active_ldap/entry_attribute.rb lib/active_ldap/ldif.rb lib/active_ldap/ldap_error.rb 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 Update Common ModifyNameRecordLoadable AddOperationModifiable DeleteOperationModifiable ReplaceOperationModifiable ModifyRecordLoadable DeleteRecordLoadable AddRecordLoadable ContentRecordLoadable LDIF Delete Find Operations GetTextSupport Escape ClassMethods Normalizable Attributes ClassMethods Configuration ClassMethods ObjectClass lib/active_ldap/get_text/parser.rb GetText ClassMethods Callbacks Validations lib/active_ldap/adapter/jndi_connection.rb lib/active_ldap/adapter/net_ldap.rb lib/active_ldap/adapter/ldap.rb lib/active_ldap/adapter/jndi.rb Adapter Helper GetTextFallback ClassMethods HumanReadable Salt UserPassword ClassMethods Connection ActiveLdap dot/m_44_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]