Class ActiveLdap::Schema::ObjectClass
In: lib/active_ldap/schema.rb
Parent: Entry
Error AttributeAssignmentError AdapterNotSpecified OperationNotPermitted RequiredObjectClassMissed ConnectionError RequiredAttributeMissed LdifInvalid LdapError DistinguishedNameNotSetError EntryNotFound SaveError StrongAuthenticationRequired 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] 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 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 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_46_0.png

Methods

Constants

UNWRITABLE_MUST_ATTRIBUTES = ["nTSecurityDescriptor"]

Attributes

super_classes  [R] 

Public Class methods

[Source]

     # File lib/active_ldap/schema.rb, line 599
599:       def initialize(name, schema)
600:         super(name, schema, "objectClasses")
601:       end

Public Instance methods

[Source]

     # File lib/active_ldap/schema.rb, line 615
615:       def may(include_super_class=true)
616:         if include_super_class
617:           @all_may
618:         else
619:           @may
620:         end
621:       end

[Source]

     # File lib/active_ldap/schema.rb, line 607
607:       def must(include_super_class=true)
608:         if include_super_class
609:           @all_must
610:         else
611:           @must
612:         end
613:       end

[Source]

     # File lib/active_ldap/schema.rb, line 603
603:       def super_class?(object_class)
604:         @super_classes.include?(object_class)
605:       end

Private Instance methods

[Source]

     # File lib/active_ldap/schema.rb, line 670
670:       def attribute(attribute_name, name=@name)
671:         @schema.object_class_attribute(name, attribute_name) +
672:           @schema.dit_content_rule_attribute(name, attribute_name)
673:       end

[Source]

     # File lib/active_ldap/schema.rb, line 649
649:       def collect_attributes
650:         must = attribute('MUST').reject do |name|
651:           UNWRITABLE_MUST_ATTRIBUTES.include?(name)
652:         end.uniq
653:         must = must.collect {|name| @schema.attribute(name)}
654:         may = attribute('MAY').uniq.collect {|name| @schema.attribute(name)}
655: 
656:         all_must = must.dup
657:         all_may = may.dup
658:         @super_classes.each do |super_class|
659:           all_must.concat(super_class.must(false))
660:           all_may.concat(super_class.may(false))
661:         end
662: 
663:         # Clean out the dupes.
664:         all_must.uniq!
665:         all_may.uniq!
666: 
667:         [must, may, all_must, all_may]
668:       end

[Source]

     # File lib/active_ldap/schema.rb, line 624
624:       def collect_info
625:         @description = attribute("DESC")[0]
626:         @super_classes = collect_super_classes
627:         @must, @may, @all_must, @all_may = collect_attributes
628:       end

[Source]

     # File lib/active_ldap/schema.rb, line 630
630:       def collect_super_classes
631:         super_classes = attribute('SUP')
632:         loop do
633:           start_size = super_classes.size
634:           new_super_classes = []
635:           super_classes.each do |super_class|
636:             new_super_classes.concat(attribute('SUP', super_class))
637:           end
638: 
639:           super_classes.concat(new_super_classes)
640:           super_classes.uniq!
641:           break if super_classes.size == start_size
642:         end
643:         super_classes.collect do |name|
644:           @schema.object_class(name)
645:         end
646:       end

[Validate]