Class: Clearance::Configuration
- Inherits:
-
Object
- Object
- Clearance::Configuration
- Defined in:
- lib/clearance/configuration.rb
Instance Attribute Summary collapse
-
#allow_sign_up ⇒ Boolean
writeonly
Controls whether the sign up route is enabled.
-
#cookie_domain ⇒ String
The domain to use for the clearance remember token cookie.
-
#cookie_expiration ⇒ Lambda
A lambda called to set the remember token cookie expires attribute.
-
#cookie_name ⇒ String
The name of Clearance's remember token cookie.
-
#cookie_path ⇒ String
Controls which paths the remember token cookie is valid for.
-
#httponly ⇒ Boolean
Controls whether the HttpOnly flag should be set on the remember token cookie.
-
#mailer_sender ⇒ String
Controls the address the password reset email is sent from.
-
#password_strategy ⇒ Module #authenticated? #password=
The password strategy to use when authenticating and setting passwords.
-
#redirect_url ⇒ String
The default path Clearance will redirect signed in users to.
-
#routes ⇒ Boolean
writeonly
Set to
false
to disable Clearance's built-in routes. -
#secure_cookie ⇒ Boolean
Controls the secure setting on the remember token cookie.
-
#sign_in_guards ⇒ Array<#call>
The array of sign in guards to run when signing a user in.
-
#user_model ⇒ ActiveRecord::Base
The ActiveRecord class that represents users in your application.
Instance Method Summary collapse
-
#allow_sign_up? ⇒ Boolean
Is the user sign up route enabled?.
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
-
#routes_enabled? ⇒ Boolean
Are Clearance's built-in routes enabled?.
-
#user_actions ⇒ Array<Symbol>
Specifies which controller actions are allowed for user resources.
-
#user_id_parameter ⇒ Symbol
The name of foreign key parameter for the configured user model.
-
#user_parameter ⇒ Symbol
The name of user parameter for the configured user model.
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/clearance/configuration.rb', line 88 def initialize @allow_sign_up = true @cookie_expiration = ->() { 1.year.from_now.utc } @cookie_domain = nil @cookie_path = '/' @cookie_name = "remember_token" @httponly = false @mailer_sender = '[email protected]' @redirect_url = '/' @routes = true @secure_cookie = false @sign_in_guards = [] end |
Instance Attribute Details
#allow_sign_up=(value) ⇒ Boolean (writeonly)
Controls whether the sign up route is enabled.
Defaults to true
. Set to false
to disable user creation routes.
The setting is ignored if routes are disabled.
8 9 10 |
# File 'lib/clearance/configuration.rb', line 8 def allow_sign_up=(value) @allow_sign_up = value end |
#cookie_domain ⇒ String
The domain to use for the clearance remember token cookie.
Defaults to nil
, which causes the cookie domain to default to the
domain of the request. For more, see
RFC6265.
15 16 17 |
# File 'lib/clearance/configuration.rb', line 15 def @cookie_domain end |
#cookie_expiration ⇒ Lambda
A lambda called to set the remember token cookie expires attribute.
The lambda accepts the collection of cookies as an argument which
allows for changing the expiration according to those cookies.
This could be used, for example, to set a session cookie unless
a remember_me
cookie was also present. By default, cookie expiration
is one year. For more on cookie expiration see
RFC6265.
25 26 27 |
# File 'lib/clearance/configuration.rb', line 25 def @cookie_expiration end |
#cookie_name ⇒ String
The name of Clearance's remember token cookie.
Defaults to remember_token
.
30 31 32 |
# File 'lib/clearance/configuration.rb', line 30 def @cookie_name end |
#cookie_path ⇒ String
Controls which paths the remember token cookie is valid for.
Defaults to "/"
for the entire domain. For more, see
RFC6265.
36 37 38 |
# File 'lib/clearance/configuration.rb', line 36 def @cookie_path end |
#httponly ⇒ Boolean
Controls whether the HttpOnly flag should be set on the remember token
cookie. Defaults to false
. If true
, the cookie will not be made
available to JavaScript. For more see
RFC6265.
43 44 45 |
# File 'lib/clearance/configuration.rb', line 43 def httponly @httponly end |
#mailer_sender ⇒ String
Controls the address the password reset email is sent from. Defaults to [email protected].
48 49 50 |
# File 'lib/clearance/configuration.rb', line 48 def mailer_sender @mailer_sender end |
#password_strategy ⇒ Module #authenticated? #password=
The password strategy to use when authenticating and setting passwords. Defaults to PasswordStrategies::BCrypt.
53 54 55 |
# File 'lib/clearance/configuration.rb', line 53 def password_strategy @password_strategy end |
#redirect_url ⇒ String
The default path Clearance will redirect signed in users to.
Defaults to "/"
. This can often be overridden for specific scenarios by
overriding controller methods that rely on it.
59 60 61 |
# File 'lib/clearance/configuration.rb', line 59 def redirect_url @redirect_url end |
#routes=(value) ⇒ Boolean (writeonly)
Set to false
to disable Clearance's built-in routes.
Defaults to true
. When set to false, your app is responsible for all
routes. You can dump a copy of Clearance's default routes with
rails generate clearance:routes
.
66 67 68 |
# File 'lib/clearance/configuration.rb', line 66 def routes=(value) @routes = value end |
#secure_cookie ⇒ Boolean
Controls the secure setting on the remember token cookie.
Defaults to false
. When set, the browser will only send the
cookie to the server over HTTPS. You should set this value to true in
live environments to prevent session hijacking. For more, see
RFC6265.
74 75 76 |
# File 'lib/clearance/configuration.rb', line 74 def @secure_cookie end |
#sign_in_guards ⇒ Array<#call>
The array of sign in guards to run when signing a user in.
Defaults to an empty array. Sign in guards respond to call
and are
initialized with a session and the current stack. Each guard can decide
to fail the sign in, yield to the next guard, or allow the sign in.
81 82 83 |
# File 'lib/clearance/configuration.rb', line 81 def sign_in_guards @sign_in_guards end |
#user_model ⇒ ActiveRecord::Base
The ActiveRecord class that represents users in your application.
Defualts to ::User
.
86 87 88 |
# File 'lib/clearance/configuration.rb', line 86 def user_model @user_model end |
Instance Method Details
#allow_sign_up? ⇒ Boolean
Is the user sign up route enabled?
108 109 110 |
# File 'lib/clearance/configuration.rb', line 108 def allow_sign_up? @allow_sign_up end |
#routes_enabled? ⇒ Boolean
Returns are Clearance's built-in routes enabled?.
141 142 143 |
# File 'lib/clearance/configuration.rb', line 141 def routes_enabled? @routes end |
#user_actions ⇒ Array<Symbol>
Specifies which controller actions are allowed for user resources.
This will be [:create]
is allow_sign_up
is true (the default), and
empty otherwise.
116 117 118 119 120 121 122 |
# File 'lib/clearance/configuration.rb', line 116 def user_actions if allow_sign_up? [:create] else [] end end |
#user_id_parameter ⇒ Symbol
The name of foreign key parameter for the configured user model.
This is derived from the model_name
of the user_model
setting.
In the default configuration, this is user_id
.
136 137 138 |
# File 'lib/clearance/configuration.rb', line 136 def user_id_parameter "#{user_parameter}_id".to_sym end |
#user_parameter ⇒ Symbol
The name of user parameter for the configured user model.
This is derived from the model_name
of the user_model
setting.
In the default configuration, this is user
.
128 129 130 |
# File 'lib/clearance/configuration.rb', line 128 def user_parameter user_model.model_name.singular.to_sym end |