adauth 2.0.0pre → 2.0.0pre1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,8 @@
1
1
  module Adauth
2
+ def self.add_field(object, adauth_method, ldap_method)
3
+ object::Fields[adauth_method] = ldap_method
4
+ end
5
+
2
6
  # Active Directory Interface Object
3
7
  #
4
8
  # Objects inherit from this class.
@@ -81,6 +85,10 @@ module Adauth
81
85
  @dn_ous
82
86
  end
83
87
 
88
+ def modify(operations)
89
+ raise "Modify Operation Failed" unless Adauth.connection.modify :dn => @ldap_object.dn, :operations => operations
90
+ end
91
+
84
92
  private
85
93
 
86
94
  def convert_to_objects(array)
@@ -21,7 +21,7 @@ module Adauth
21
21
  end
22
22
 
23
23
  conn.auth "#{@config[:username]}@#{@config[:domain]}", @config[:password]
24
-
24
+
25
25
  begin
26
26
  Timeout::timeout(10){
27
27
  if conn.bind
@@ -33,7 +33,8 @@ module Adauth
33
33
  def update_from_adauth(adauth_model)
34
34
  self.class::AdauthMappings.each do |k, v|
35
35
  setter = "#{k.to_s}=".to_sym
36
- self.send(setter, adauth_model.send(v))
36
+ value = v.is_a?(Array) ? v.join(", ") : v
37
+ self.send(setter, adauth_model.send(value))
37
38
  end
38
39
  self.save
39
40
  end
@@ -1,4 +1,4 @@
1
1
  module Adauth
2
2
  # Adauths Version Number
3
- Version = "2.0.0pre"
3
+ Version = "2.0.0pre1"
4
4
  end
@@ -24,4 +24,19 @@ describe Adauth::AdObjects::User do
24
24
  user = administrator
25
25
  user.member_of?("Domain Admins").should be_true
26
26
  end
27
+
28
+ it "should allow for modification" do
29
+ default_config
30
+ Adauth.add_field(Adauth::AdObjects::User, :phone, :homePhone)
31
+ number = administrator.phone
32
+ administrator.modify([[:replace, :homephone, "8765"]])
33
+ administrator.phone.should eq "8765"
34
+ administrator.modify([[:replace, :homephone, number]])
35
+ end
36
+
37
+ it "should allow for additional methods" do
38
+ default_config
39
+ Adauth.add_field(Adauth::AdObjects::User, :description, :description)
40
+ administrator.description.should be_a String
41
+ end
27
42
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 2
7
7
  - 0
8
- - 0pre
9
- version: 2.0.0pre
8
+ - 0pre1
9
+ version: 2.0.0pre1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Adam "Arcath" Laycock
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2012-08-16 00:00:00 +01:00
17
+ date: 2012-08-20 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency