devise_ldap_authenticatable 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -19,7 +19,11 @@ You must use the net-ldap gem and _NOT_ the ruby-net-ldap gem.
19
19
  Installation
20
20
  ------------
21
21
 
22
- script/plugin install git@github.com:cschiewek/devise\_ldap\_authenticatable.git
22
+ gem install devise_ldap_authenticatable
23
+
24
+ and
25
+
26
+ config.gem 'devise_ldap_authenticatable'
23
27
 
24
28
  Setup
25
29
  -----
@@ -85,6 +89,8 @@ In initializer `config/initializers/devise.rb` :
85
89
  # Required
86
90
  config.ldap_host = 'ldap.mydomain.com'
87
91
  config.ldap_port = 389
92
+ config.ldap_base_dn = 'ou=People,dc=local'
93
+ config.ldap_login_attribute = 'uid'
88
94
 
89
95
  # Optional, these will default to false or nil if not set
90
96
  config.ldap_ssl = true
@@ -93,10 +99,26 @@ In initializer `config/initializers/devise.rb` :
93
99
 
94
100
  * ldap\_host
95
101
  * The host of your LDAP server
102
+
96
103
  * ldap\_port
97
- * The port your LDAP service is listening on. No default are set.
104
+ * The port your LDAP service is listening on.
105
+
106
+ * ldap\_base_dn
107
+ * The DN that is appended to the login before the LDAP bind is performed.
108
+
109
+ * ldap\_login_attribute
110
+ * The attribute that is prepended to the login and the base dn to form the
111
+ full DN that is used for the bind.
112
+ * Example:
113
+ * config.ldap\_base_dn = 'ou=People,dc=local'
114
+ * config.ldap\_login_attribute = 'uid'
115
+ * So when trying to login with 'admin' for example, 'admin' would be
116
+ the value stored in login field, but the actual DN used for the bind
117
+ would be 'uid=admin,ou=People,dc=local'
118
+
98
119
  * ldap\_ssl
99
120
  * Enables SSL (ldaps) encryption. START_TLS encryption will be added when the net-ldap gem adds support for it.
121
+
100
122
  * ldap\_create\_user
101
123
  * If set to true, all valid LDAP users will be allowed to login and an appropriate user record will be created.
102
124
  If set to false, you will have to create the user record before they will be allowed to login.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -14,13 +14,21 @@ module Devise
14
14
  mattr_accessor :ldap_port
15
15
  @@ldap_port = nil
16
16
 
17
+ # Base DN
18
+ mattr_accessor :ldap_base_dn
19
+ @@ldap_base_dn = nil
20
+
21
+ # Attribute for login
22
+ mattr_accessor :ldap_login_attribute
23
+ @@ldap_login_attribute = nil
24
+
17
25
  # Use SSL
18
26
  mattr_accessor :ldap_ssl
19
27
  @@ldap_ssl = false
20
28
 
21
29
  # Add valid users to database
22
30
  mattr_accessor :ldap_create_user
23
- @ldap_create_user = false
31
+ @@ldap_create_user = false
24
32
  end
25
33
 
26
34
  # Add ldap_authenticatable strategy to defaults.
@@ -7,6 +7,7 @@ module Devise
7
7
  module LdapAdapter
8
8
 
9
9
  def self.valid_credentials?(login, password)
10
+ login = ::Devise.ldap_login_attribute+'='+login+','+::Devise.ldap_base_dn
10
11
  @encryption = ::Devise.ldap_ssl ? :simple_tls : nil
11
12
  ldap = Net::LDAP.new(:encryption => @encryption)
12
13
  ldap.host = ::Devise.ldap_host
@@ -32,7 +32,7 @@ module Devise
32
32
  # Authenticate a user based on configured attribute keys. Returns the
33
33
  # authenticated user if it's valid or nil.
34
34
  def authenticate_with_ldap(attributes={})
35
- return unless attributes[:login].present?
35
+ return unless attributes[:login].present?
36
36
  conditions = attributes.slice(:login)
37
37
 
38
38
  unless conditions[:login]
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 2
9
- version: 0.1.2
8
+ - 3
9
+ version: 0.1.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Curtis Schiewek