Class | ActiveLdap::Schema::ObjectClass |
In: |
lib/active_ldap/schema.rb
|
Parent: | Entry |
UNWRITABLE_MUST_ATTRIBUTES | = | ["nTSecurityDescriptor"] |
super_classes | [R] |
# File lib/active_ldap/schema.rb, line 599 599: def initialize(name, schema) 600: super(name, schema, "objectClasses") 601: end
# 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
# 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
# File lib/active_ldap/schema.rb, line 603 603: def super_class?(object_class) 604: @super_classes.include?(object_class) 605: end
# 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
# 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
# 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
# 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