devise_ldap_authenticatable 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,14 +13,6 @@ module Devise
13
13
  resource = LdapConnect.new(options)
14
14
  resource.authorized?
15
15
  end
16
-
17
- def self.valid_login?(login)
18
- options = {:login => login,
19
- :ldap_auth_username_builder => ::Devise.ldap_auth_username_builder,
20
- :admin => ::Devise.ldap_use_admin_to_bind}
21
- resource = LdapConnect.new(options)
22
- resource.valid_login?
23
- end
24
16
 
25
17
  def self.update_password(login, new_password)
26
18
  options = {:login => login,
@@ -31,32 +23,36 @@ module Devise
31
23
  resource = LdapConnect.new(options)
32
24
  resource.change_password! if new_password.present?
33
25
  end
34
-
35
- def self.get_groups(login)
26
+
27
+ def self.ldap_connect(login)
36
28
  options = {:login => login,
37
29
  :ldap_auth_username_builder => ::Devise.ldap_auth_username_builder,
38
30
  :admin => ::Devise.ldap_use_admin_to_bind}
39
31
 
40
- ldap = LdapConnect.new(options)
41
- ldap.user_groups
32
+ resource = LdapConnect.new(options)
33
+ end
34
+
35
+ def self.valid_login?(login)
36
+ self.ldap_connect(login).valid_login?
37
+ end
38
+
39
+ def self.get_groups(login)
40
+ self.ldap_connect(login).user_groups
42
41
  end
43
42
 
44
43
  def self.get_dn(login)
45
- options = {:login => login,
46
- :ldap_auth_username_builder => ::Devise.ldap_auth_username_builder,
47
- :admin => ::Devise.ldap_use_admin_to_bind}
48
- resource = LdapConnect.new(options)
49
- resource.dn
44
+ self.ldap_connect(login).dn
50
45
  end
51
46
 
52
47
  def self.get_ldap_param(login,param)
53
- options = {:login => login,
54
- :ldap_auth_username_builder => ::Devise.ldap_auth_username_builder,
55
- :admin => ::Devise.ldap_use_admin_to_bind}
56
- resource = LdapConnect.new(options)
48
+ resource = self.ldap_connect(login)
57
49
  resource.ldap_param_value(param)
58
50
  end
59
51
 
52
+ def self.get_ldap_entry(login)
53
+ self.ldap_connect(login).search_for_login
54
+ end
55
+
60
56
  class LdapConnect
61
57
 
62
58
  attr_reader :ldap, :login
@@ -100,8 +96,19 @@ module Devise
100
96
  ldap_entry = nil
101
97
  @ldap.search(:filter => filter) {|entry| ldap_entry = entry}
102
98
 
103
- DeviseLdapAuthenticatable::Logger.send("Requested param #{param} has value #{ldap_entry.send(param)}")
104
- ldap_entry.send(param)
99
+ if ldap_entry
100
+ if ldap_entry[param]
101
+ DeviseLdapAuthenticatable::Logger.send("Requested param #{param} has value #{ldap_entry.send(param)}")
102
+ value = ldap_entry.send(param)
103
+ value = value.first if value.is_a?(Array) and value.count == 1
104
+ else
105
+ DeviseLdapAuthenticatable::Logger.send("Requested param #{param} does not exist")
106
+ value = nil
107
+ end
108
+ else
109
+ DeviseLdapAuthenticatable::Logger.send("Requested ldap entry does not exist")
110
+ value = nil
111
+ end
105
112
  end
106
113
 
107
114
  def authenticate!
@@ -189,6 +196,17 @@ module Devise
189
196
  def valid_login?
190
197
  !search_for_login.nil?
191
198
  end
199
+
200
+ # Searches the LDAP for the login
201
+ #
202
+ # @return [Object] the LDAP entry found; nil if not found
203
+ def search_for_login
204
+ DeviseLdapAuthenticatable::Logger.send("LDAP search for login: #{@attribute}=#{@login}")
205
+ filter = Net::LDAP::Filter.eq(@attribute.to_s, @login.to_s)
206
+ ldap_entry = nil
207
+ @ldap.search(:filter => filter) {|entry| ldap_entry = entry}
208
+ ldap_entry
209
+ end
192
210
 
193
211
  private
194
212
 
@@ -207,17 +225,6 @@ module Devise
207
225
  DeviseLdapAuthenticatable::Logger.send("Finding user: #{dn}")
208
226
  ldap.search(:base => dn, :scope => Net::LDAP::SearchScope_BaseObject).try(:first)
209
227
  end
210
-
211
- # Searches the LDAP for the login
212
- #
213
- # @return [Object] the LDAP entry found; nil if not found
214
- def search_for_login
215
- DeviseLdapAuthenticatable::Logger.send("LDAP search for login: #{@attribute}=#{@login}")
216
- filter = Net::LDAP::Filter.eq(@attribute.to_s, @login.to_s)
217
- ldap_entry = nil
218
- @ldap.search(:filter => filter) {|entry| ldap_entry = entry}
219
- ldap_entry
220
- end
221
228
 
222
229
  def update_ldap(ops)
223
230
  operations = []
@@ -1,3 +1,3 @@
1
1
  module DeviseLdapAuthenticatable
2
- VERSION = "0.5.0".freeze
2
+ VERSION = "0.5.1".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_ldap_authenticatable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2011-11-25 00:00:00.000000000Z
14
+ date: 2011-12-09 00:00:00.000000000Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: devise
18
- requirement: &13886720 !ruby/object:Gem::Requirement
18
+ requirement: &70110522209540 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ~>
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: 1.5.0
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *13886720
26
+ version_requirements: *70110522209540
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: net-ldap
29
- requirement: &13884260 !ruby/object:Gem::Requirement
29
+ requirement: &70110522208060 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ~>
@@ -34,7 +34,7 @@ dependencies:
34
34
  version: 0.2.2
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *13884260
37
+ version_requirements: *70110522208060
38
38
  description: Devise extension to allow authentication via LDAP
39
39
  email: curtis.schiewek@gmail.com
40
40
  executables: []
@@ -156,8 +156,85 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  version: '0'
157
157
  requirements: []
158
158
  rubyforge_project:
159
- rubygems_version: 1.8.11
159
+ rubygems_version: 1.8.10
160
160
  signing_key:
161
161
  specification_version: 3
162
162
  summary: Devise extension to allow authentication via LDAP
163
- test_files: []
163
+ test_files:
164
+ - test/devise_ldap_authenticatable_test.rb
165
+ - test/ldap/base.ldif
166
+ - test/ldap/clear.ldif
167
+ - test/ldap/local.schema
168
+ - test/ldap/openldap-data/run/.gitkeep
169
+ - test/ldap/run-server.sh
170
+ - test/ldap/server.pem
171
+ - test/ldap/slapd-ssl-test.conf
172
+ - test/ldap/slapd-test.conf
173
+ - test/rails_app/Gemfile
174
+ - test/rails_app/Gemfile.lock
175
+ - test/rails_app/Rakefile
176
+ - test/rails_app/app/controllers/application_controller.rb
177
+ - test/rails_app/app/controllers/posts_controller.rb
178
+ - test/rails_app/app/helpers/application_helper.rb
179
+ - test/rails_app/app/helpers/posts_helper.rb
180
+ - test/rails_app/app/models/post.rb
181
+ - test/rails_app/app/models/user.rb
182
+ - test/rails_app/app/views/layouts/application.html.erb
183
+ - test/rails_app/app/views/posts/index.html.erb
184
+ - test/rails_app/config.ru
185
+ - test/rails_app/config/application.rb
186
+ - test/rails_app/config/boot.rb
187
+ - test/rails_app/config/cucumber.yml
188
+ - test/rails_app/config/database.yml
189
+ - test/rails_app/config/environment.rb
190
+ - test/rails_app/config/environments/development.rb
191
+ - test/rails_app/config/environments/production.rb
192
+ - test/rails_app/config/environments/test.rb
193
+ - test/rails_app/config/initializers/backtrace_silencers.rb
194
+ - test/rails_app/config/initializers/devise.rb
195
+ - test/rails_app/config/initializers/inflections.rb
196
+ - test/rails_app/config/initializers/mime_types.rb
197
+ - test/rails_app/config/initializers/secret_token.rb
198
+ - test/rails_app/config/initializers/session_store.rb
199
+ - test/rails_app/config/ldap.yml
200
+ - test/rails_app/config/ldap_with_boolean_ssl.yml
201
+ - test/rails_app/config/ldap_with_erb.yml
202
+ - test/rails_app/config/ldap_with_uid.yml
203
+ - test/rails_app/config/locales/devise.en.yml
204
+ - test/rails_app/config/locales/en.yml
205
+ - test/rails_app/config/routes.rb
206
+ - test/rails_app/config/ssl_ldap.yml
207
+ - test/rails_app/config/ssl_ldap_with_erb.yml
208
+ - test/rails_app/config/ssl_ldap_with_uid.yml
209
+ - test/rails_app/db/migrate/20100708120302_create_posts.rb
210
+ - test/rails_app/db/migrate/20100708120448_devise_create_users.rb
211
+ - test/rails_app/db/schema.rb
212
+ - test/rails_app/db/seeds.rb
213
+ - test/rails_app/features/manage_logins.feature
214
+ - test/rails_app/features/step_definitions/login_steps.rb
215
+ - test/rails_app/features/step_definitions/web_steps.rb
216
+ - test/rails_app/features/support/env.rb
217
+ - test/rails_app/features/support/paths.rb
218
+ - test/rails_app/lib/tasks/.gitkeep
219
+ - test/rails_app/lib/tasks/cucumber.rake
220
+ - test/rails_app/public/404.html
221
+ - test/rails_app/public/422.html
222
+ - test/rails_app/public/500.html
223
+ - test/rails_app/public/images/rails.png
224
+ - test/rails_app/public/javascripts/application.js
225
+ - test/rails_app/public/javascripts/controls.js
226
+ - test/rails_app/public/javascripts/dragdrop.js
227
+ - test/rails_app/public/javascripts/effects.js
228
+ - test/rails_app/public/javascripts/prototype.js
229
+ - test/rails_app/public/javascripts/rails.js
230
+ - test/rails_app/public/stylesheets/.gitkeep
231
+ - test/rails_app/script/cucumber
232
+ - test/rails_app/script/rails
233
+ - test/rails_app/test/factories/users.rb
234
+ - test/rails_app/test/functional/posts_controller_test.rb
235
+ - test/rails_app/test/performance/browsing_test.rb
236
+ - test/rails_app/test/test_helper.rb
237
+ - test/rails_app/test/unit/helpers/posts_helper_test.rb
238
+ - test/rails_app/test/unit/post_test.rb
239
+ - test/rails_app/test/unit/user_test.rb
240
+ - test/test_helper.rb