diff options
author | Robert Speicher <rspeicher@gmail.com> | 2015-10-02 04:47:27 +0300 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2015-10-02 04:47:27 +0300 |
commit | b8ff38b1d47e4323f799b593b95821ed4a8c11f7 (patch) | |
tree | 2ec67bfce7d95409efba65b07ce81bc7be2c1612 /app/controllers/passwords_controller.rb | |
parent | c7b43126bd7f5ef1b76a546029754ee44d68288e (diff) |
Refactor PasswordsController to use before_actions
Diffstat (limited to 'app/controllers/passwords_controller.rb')
-rw-r--r-- | app/controllers/passwords_controller.rb | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/app/controllers/passwords_controller.rb b/app/controllers/passwords_controller.rb index a2d152addc9..2025158d065 100644 --- a/app/controllers/passwords_controller.rb +++ b/app/controllers/passwords_controller.rb @@ -1,21 +1,7 @@ class PasswordsController < Devise::PasswordsController - - def create - email = resource_params[:email] - self.resource = resource_class.find_by_email(email) - - if resource && resource.ldap_user? - flash[:alert] = "Cannot reset password for LDAP user." - respond_with({}, location: after_sending_reset_password_instructions_path_for(resource_name)) and return - end - - unless can_send_reset_email? - flash[:alert] = "Instructions about how to reset your password have already been sent recently. Please wait a few minutes to try again." - respond_with({}, location: new_password_path(resource_name)) and return - end - - super - end + before_action :resource_from_email, only: [:create] + before_action :prevent_ldap_reset, only: [:create] + before_action :throttle_reset, only: [:create] def edit super @@ -37,10 +23,24 @@ class PasswordsController < Devise::PasswordsController end end - private + protected + + def resource_from_email + email = resource_params[:email] + self.resource = resource_class.find_by_email(email) + end + + def prevent_ldap_reset + return unless resource && resource.ldap_user? + + redirect_to after_sending_reset_password_instructions_path_for(resource_name), + alert: "Cannot reset password for LDAP user." + end + + def throttle_reset + return unless resource && resource.recently_sent_password_reset? - def can_send_reset_email? - resource && (resource.reset_password_sent_at.blank? || - resource.reset_password_sent_at < 1.minute.ago) + redirect_to new_password_path(resource_name), + alert: I18n.t('devise.passwords.recently_reset') end end |