Module: Authlogic::ActsAsAuthentic::Login::Config
- Defined in:
- lib/authlogic/acts_as_authentic/login.rb
Overview
Configuration for the login field.
Instance Method Summary collapse
-
#find_by_smart_case_login_field(login) ⇒ Object
This method allows you to find a record with the given login.
-
#login_field(value = nil) ⇒ Object
(also: #login_field=)
The name of the login field in the database.
Instance Method Details
#find_by_smart_case_login_field(login) ⇒ Object
This method allows you to find a record with the given login. If you notice, with Active Record you have the UniquenessValidator class. They give you a :case_sensitive option. I handle this in the same manner that they handle that. If you are using the login field, set false for the :case_sensitive option in validates_uniqueness_of_login_field_options and the column doesn’t have a case-insensitive collation, this method will modify the query to look something like:
"LOWER(#{quoted_table_name}.#{login_field}) = LOWER(#{login})"
If you don’t specify this it just uses a regular case-sensitive search (with the binary modifier if necessary):
"BINARY #{login_field} = #{login}"
The above also applies for using email as your login, except that you need to set the :case_sensitive in validates_uniqueness_of_email_field_options to false.
48 49 50 51 52 |
# File 'lib/authlogic/acts_as_authentic/login.rb', line 48 def find_by_smart_case_login_field(login) field = login_field || email_field sensitive = Queries::CaseSensitivity.new(self, field).sensitive? find_with_case(field, login, sensitive) end |
#login_field(value = nil) ⇒ Object Also known as: login_field=
The name of the login field in the database.
-
Default:
:login or :username, if they exist -
Accepts:
Symbol
22 23 24 |
# File 'lib/authlogic/acts_as_authentic/login.rb', line 22 def login_field(value = nil) rw_config(:login_field, value, first_column_to_exist(nil, :login, :username)) end |