Module: Devise::LDAP::Adapter
- Defined in:
- lib/devise_ldap_multiple/ldap/adapter.rb
Overview
Establishes connections and interacts with LDAP. Uses Connection objects to do this.
Can interact with these methods in rails
Class Method Summary collapse
-
.default_scope ⇒ Object
The default scope to use if none is specified.
-
.delete_ldap_param(login, param, password = nil, scope = default_scope) ⇒ Object
Deletes the LDAP attribute for an account.
-
.expired_valid_credentials?(login, password_plaintext, scope = default_scope) ⇒ Boolean
Returns true or false depending on if the users credentials have expired or not.
-
.get_dn(login, scope = default_scope) ⇒ Object
Returns the DistinguishedName of an account (regardless of if it exists or not).
-
.get_groups(login, scope = default_scope) ⇒ Object
Returns a list of group memberships for a user.
-
.get_ldap_entry(login, scope = default_scope) ⇒ Object
Returns all attributes for an account from LDAP.
-
.get_ldap_param(login, param, scope = default_scope) ⇒ Object
Get the value of an attribute for an account from LDAP.
-
.in_ldap_group?(login, group_name, group_attribute = nil, scope = default_scope) ⇒ Boolean
Checks if a user is a member of a specific group.
-
.ldap_connect(login, scope = default_scope) ⇒ Object
Creates a new connection to an LDAP database and returns the connection object to run methods against.
- .password_updatable?(login, scope = default_scope) ⇒ Boolean
-
.set_ldap_param(login, param, new_value, password = nil, scope = default_scope) ⇒ Object
Sets an LDAP attribute for an account to a new value.
-
.update_own_password(login, new_password, current_password) ⇒ Object
Also updates the password.
-
.update_password(login, new_password, scope = default_scope) ⇒ Object
Updates a users password in LDAP.
- .user_creatable?(login, scope = default_scope) ⇒ Boolean
-
.valid_credentials?(login, password_plaintext, scope = default_scope) ⇒ Boolean
Tries to authenticate credentails to LDAP.
-
.valid_login?(login, scope = default_scope) ⇒ Boolean
Boolean returned for if an account in the LDAP exists (doesn’t check authentication / authorization): false if a valid match can’t be obtained from ldap.
Class Method Details
.default_scope ⇒ Object
The default scope to use if none is specified
103 104 105 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 103 def self.default_scope ::Devise.ldap_default_scope end |
.delete_ldap_param(login, param, password = nil, scope = default_scope) ⇒ Object
Deletes the LDAP attribute for an account
90 91 92 93 94 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 90 def self.delete_ldap_param(login, param, password = nil, scope = default_scope) = { login: login, password: password, scope: scope } resource = Devise::LDAP::Connection.new() resource.delete_param(param) end |
.expired_valid_credentials?(login, password_plaintext, scope = default_scope) ⇒ Boolean
Returns true or false depending on if the users credentials have expired or not
54 55 56 57 58 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 54 def self.expired_valid_credentials?(login, password_plaintext, scope = default_scope) = { login: login, password: password_plaintext, scope: scope } resource = Devise::LDAP::Connection.new() resource.expired_valid_credentials? end |
.get_dn(login, scope = default_scope) ⇒ Object
Returns the DistinguishedName of an account (regardless of if it exists or not)
25 26 27 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 25 def self.get_dn(login, scope = default_scope) self.ldap_connect(login, scope).dn end |
.get_groups(login, scope = default_scope) ⇒ Object
Returns a list of group memberships for a user
73 74 75 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 73 def self.get_groups(login, scope = default_scope) self.ldap_connect(login, scope).user_groups end |
.get_ldap_entry(login, scope = default_scope) ⇒ Object
Returns all attributes for an account from LDAP
14 15 16 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 14 def self.get_ldap_entry(login, scope = default_scope) self.ldap_connect(login, scope).search_for_login end |
.get_ldap_param(login, param, scope = default_scope) ⇒ Object
Get the value of an attribute for an account from LDAP
19 20 21 22 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 19 def self.get_ldap_param(login, param, scope = default_scope) resource = self.ldap_connect(login, scope) resource.ldap_param_value(param) end |
.in_ldap_group?(login, group_name, group_attribute = nil, scope = default_scope) ⇒ Boolean
Checks if a user is a member of a specific group
78 79 80 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 78 def self.in_ldap_group?(login, group_name, group_attribute = nil, scope = default_scope) self.ldap_connect(login, scope).in_group?(group_name, group_attribute) end |
.ldap_connect(login, scope = default_scope) ⇒ Object
Creates a new connection to an LDAP database and returns the connection object to run methods against
97 98 99 100 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 97 def self.ldap_connect(login, scope = default_scope) = { login: login, scope: scope } Devise::LDAP::Connection.new() end |
.password_updatable?(login, scope = default_scope) ⇒ Boolean
29 30 31 32 33 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 29 def self.password_updatable? (login, scope = default_scope) = { login: login, scope: scope } resource = Devise::LDAP::Connection.new() resource.password_updatable? end |
.set_ldap_param(login, param, new_value, password = nil, scope = default_scope) ⇒ Object
Sets an LDAP attribute for an account to a new value
83 84 85 86 87 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 83 def self.set_ldap_param(login, param, new_value, password = nil, scope = default_scope) = { login: login, password: password, scope: scope } resource = Devise::LDAP::Connection.new() resource.set_param(param, new_value) end |
.update_own_password(login, new_password, current_password) ⇒ Object
Also updates the password. Unsure what differentiates this from update_password currently.
68 69 70 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 68 def self.update_own_password(login, new_password, current_password) set_ldap_param(login, :userPassword, new_password, current_password, true) end |
.update_password(login, new_password, scope = default_scope) ⇒ Object
Updates a users password in LDAP
61 62 63 64 65 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 61 def self.update_password(login, new_password, scope = default_scope) = { login: login, new_password: new_password, scope: scope } resource = Devise::LDAP::Connection.new() resource.change_password! if new_password.present? end |
.user_creatable?(login, scope = default_scope) ⇒ Boolean
35 36 37 38 39 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 35 def self.user_creatable? (login, scope = default_scope) = { login: login, scope: scope } resource = Devise::LDAP::Connection.new() resource.user_creatable? end |
.valid_credentials?(login, password_plaintext, scope = default_scope) ⇒ Boolean
Tries to authenticate credentails to LDAP. Returns true or false appropriately.
47 48 49 50 51 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 47 def self.valid_credentials?(login, password_plaintext, scope = default_scope) = { login: login, password: password_plaintext, scope: scope } resource = Devise::LDAP::Connection.new() resource. end |
.valid_login?(login, scope = default_scope) ⇒ Boolean
Boolean returned for if an account in the LDAP exists (doesn’t check authentication / authorization): false if a valid match can’t be obtained from ldap.
42 43 44 |
# File 'lib/devise_ldap_multiple/ldap/adapter.rb', line 42 def self.valid_login?(login, scope = default_scope) self.ldap_connect(login, scope).valid_login? end |