Class: Wobaduser::Base
- Inherits:
-
Object
- Object
- Wobaduser::Base
- Defined in:
- lib/wobaduser/base.rb
Direct Known Subclasses
Constant Summary collapse
- SearchResult =
ImmutableStruct.new( :success?, :errors, :entries )
- ATTR_SV =
ATTR_SV is for single valued attributes only. result is a string. ATTR_MV is for multi valued attributes. result is an array. Concrete values should be set in subclasses. See Wobaduser::User for an example.
{}
- ATTR_MV =
{}
Instance Attribute Summary collapse
-
#entry ⇒ Object
readonly
Returns the value of attribute entry.
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Base
constructor
Create an new Wobaduser object not to be intended to call directly, but possible.
- #valid? ⇒ Boolean
Constructor Details
#initialize(options = {}) ⇒ Base
Create an new Wobaduser object not to be intended to call directly, but possible. Better to use Wobaduser::User.new or Wobaduser::Group.new. There are to modes: 1) use Wobaduser::LDAP + LDAP-Filter 2) use a retrieved LDAP entry, i.e. used in Wobaduser::Base.search
[:entry
] ldap entry [:ldap
] instance of Wobaduser::LDAP [:filter
] ldap filter (as string, not as Net::LDAP::Filter) [:ldap_options
] additional ldap options for search
:entry and (:ldap, :filter) are mutually exclusive
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/wobaduser/base.rb', line 39 def initialize( = {}) .symbolize_keys! keys = .keys if keys.include?(:entry) && (keys & [:ldap, :filter, :ldap_options]).any? raise ArgumentError, ":entry and one of (:ldap, :filter, :ldap_options) are mutually exclusive!" end reset_errors get_ldap_entry() unless entry.nil? self.class.class_eval do generate_single_value_readers generate_multi_value_readers end end end |
Instance Attribute Details
#entry ⇒ Object (readonly)
Returns the value of attribute entry.
24 25 26 |
# File 'lib/wobaduser/base.rb', line 24 def entry @entry end |
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
24 25 26 |
# File 'lib/wobaduser/base.rb', line 24 def errors @errors end |
Class Method Details
.filter ⇒ Object
65 66 67 |
# File 'lib/wobaduser/base.rb', line 65 def self.filter Net::LDAP::Filter.present('objectClass') end |
.search(options = {}) ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/wobaduser/base.rb', line 55 def self.search( = {}) search = search_ldap_entries() if search.success? entries = search.entries.map {|entry| self.new(entry: entry)} result = SearchResult.new(success: true, errors: [], entries: entries) else result = SearchResult.new(success: false, errors: search.errors, entries: []) end end |
Instance Method Details
#valid? ⇒ Boolean
69 70 71 |
# File 'lib/wobaduser/base.rb', line 69 def valid? @entry.kind_of? Net::LDAP::Entry end |