Class: Clearance::PasswordsController
- Inherits:
-
BaseController
- Object
- ApplicationController
- BaseController
- Clearance::PasswordsController
- Defined in:
- app/controllers/clearance/passwords_controller.rb
Instance Method Summary collapse
- #create ⇒ Object
- #deliver_email(user) ⇒ Object private
- #edit ⇒ Object
- #email_from_password_params ⇒ Object private
- #ensure_email_present ⇒ Object private
- #ensure_existing_user ⇒ Object private
- #find_user_by_id_and_confirmation_token ⇒ Object private
- #find_user_for_create ⇒ Object private
- #find_user_for_edit ⇒ Object private
- #find_user_for_update ⇒ Object private
- #flash_failure_after_update ⇒ Object private
- #flash_failure_when_forbidden ⇒ Object private
- #flash_failure_when_missing_email ⇒ Object private
- #new ⇒ Object
- #password_from_password_reset_params ⇒ Object private
- #update ⇒ Object
- #url_after_update ⇒ Object private
Instance Method Details
#create ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'app/controllers/clearance/passwords_controller.rb', line 12 def create if user = find_user_for_create user.forgot_password! deliver_email(user) end render template: "passwords/create", status: :accepted end |
#deliver_email(user) ⇒ Object (private)
47 48 49 |
# File 'app/controllers/clearance/passwords_controller.rb', line 47 def deliver_email(user) ::ClearanceMailer.change_password(user).deliver_now end |
#edit ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'app/controllers/clearance/passwords_controller.rb', line 21 def edit @user = find_user_for_edit if params[:token] session[:password_reset_token] = params[:token] redirect_to url_for else render template: "passwords/edit" end end |
#email_from_password_params ⇒ Object (private)
63 64 65 |
# File 'app/controllers/clearance/passwords_controller.rb', line 63 def email_from_password_params params.dig(:password, :email) end |
#ensure_email_present ⇒ Object (private)
80 81 82 83 84 85 |
# File 'app/controllers/clearance/passwords_controller.rb', line 80 def ensure_email_present if email_from_password_params.blank? flash_failure_when_missing_email render template: "passwords/new", status: :unprocessable_entity end end |
#ensure_existing_user ⇒ Object (private)
87 88 89 90 91 92 |
# File 'app/controllers/clearance/passwords_controller.rb', line 87 def ensure_existing_user unless find_user_by_id_and_confirmation_token flash_failure_when_forbidden render template: "passwords/new", status: :unprocessable_entity end end |
#find_user_by_id_and_confirmation_token ⇒ Object (private)
55 56 57 58 59 60 61 |
# File 'app/controllers/clearance/passwords_controller.rb', line 55 def find_user_by_id_and_confirmation_token user_param = Clearance.configuration.user_id_parameter token = params[:token] || session[:password_reset_token] Clearance.configuration.user_model. find_by(id: params[user_param], confirmation_token: token.to_s) end |
#find_user_for_create ⇒ Object (private)
67 68 69 70 |
# File 'app/controllers/clearance/passwords_controller.rb', line 67 def find_user_for_create Clearance.configuration.user_model. find_by_normalized_email(email_from_password_params) end |
#find_user_for_edit ⇒ Object (private)
72 73 74 |
# File 'app/controllers/clearance/passwords_controller.rb', line 72 def find_user_for_edit find_user_by_id_and_confirmation_token end |
#find_user_for_update ⇒ Object (private)
76 77 78 |
# File 'app/controllers/clearance/passwords_controller.rb', line 76 def find_user_for_update find_user_by_id_and_confirmation_token end |
#flash_failure_after_update ⇒ Object (private)
100 101 102 103 104 |
# File 'app/controllers/clearance/passwords_controller.rb', line 100 def flash_failure_after_update flash.now[:alert] = translate(:blank_password, scope: [:clearance, :controllers, :passwords], default: t("flashes.failure_after_update")) end |
#flash_failure_when_forbidden ⇒ Object (private)
94 95 96 97 98 |
# File 'app/controllers/clearance/passwords_controller.rb', line 94 def flash_failure_when_forbidden flash.now[:alert] = translate(:forbidden, scope: [:clearance, :controllers, :passwords], default: t("flashes.failure_when_forbidden")) end |
#flash_failure_when_missing_email ⇒ Object (private)
106 107 108 109 110 |
# File 'app/controllers/clearance/passwords_controller.rb', line 106 def flash_failure_when_missing_email flash.now[:alert] = translate(:missing_email, scope: [:clearance, :controllers, :passwords], default: t("flashes.failure_when_missing_email")) end |
#new ⇒ Object
8 9 10 |
# File 'app/controllers/clearance/passwords_controller.rb', line 8 def new render template: "passwords/new" end |
#password_from_password_reset_params ⇒ Object (private)
51 52 53 |
# File 'app/controllers/clearance/passwords_controller.rb', line 51 def password_from_password_reset_params params.dig(:password_reset, :password) end |
#update ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/controllers/clearance/passwords_controller.rb', line 32 def update @user = find_user_for_update if @user.update_password(password_from_password_reset_params) sign_in @user if Clearance.configuration.sign_in_on_password_reset? redirect_to url_after_update, status: :see_other session[:password_reset_token] = nil else flash_failure_after_update render template: "passwords/edit", status: :unprocessable_entity end end |
#url_after_update ⇒ Object (private)
112 113 114 |
# File 'app/controllers/clearance/passwords_controller.rb', line 112 def url_after_update Clearance.configuration.redirect_url end |