forked from thoughtbot/clearance
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Moved the passwords, sessions, and users controllers into app
- Loading branch information
Showing
11 changed files
with
153 additions
and
216 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
class PasswordsController < ActionController::Base | ||
|
||
include Clearance::App::Controllers::ApplicationController | ||
|
||
before_filter :forbid_missing_token, :only => [:edit, :update] | ||
before_filter :forbid_non_existant_user, :only => [:edit, :update] | ||
filter_parameter_logging :password, :password_confirmation | ||
|
||
def new | ||
end | ||
|
||
def create | ||
if user = User.find_by_email(params[:password][:email]) | ||
user.forgot_password! | ||
ClearanceMailer.deliver_change_password user | ||
flash[:notice] = "You will receive an email within the next few minutes. " << | ||
"It contains instructions for changing your password." | ||
redirect_to url_after_create | ||
else | ||
flash.now[:notice] = "Unknown email" | ||
render :action => :new | ||
end | ||
end | ||
|
||
def edit | ||
@user = User.find_by_id_and_token(params[:user_id], params[:token]) | ||
end | ||
|
||
def update | ||
@user = User.find_by_id_and_token(params[:user_id], params[:token]) | ||
|
||
if @user.update_password(params[:user][:password], | ||
params[:user][:password_confirmation]) | ||
@user.confirm_email! unless @user.email_confirmed? | ||
sign_user_in(@user) | ||
redirect_to url_after_update | ||
else | ||
render :action => :edit | ||
end | ||
end | ||
|
||
private | ||
|
||
def forbid_missing_token | ||
if params[:token].blank? | ||
raise ActionController::Forbidden, "missing token" | ||
end | ||
end | ||
|
||
def forbid_non_existant_user | ||
unless User.find_by_id_and_token(params[:user_id], params[:token]) | ||
raise ActionController::Forbidden, "non-existant user" | ||
end | ||
end | ||
|
||
def url_after_create | ||
new_session_url | ||
end | ||
|
||
def url_after_update | ||
root_url | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
class SessionsController < ActionController::Base | ||
|
||
include Clearance::App::Controllers::ApplicationController | ||
|
||
protect_from_forgery :except => :create | ||
filter_parameter_logging :password | ||
|
||
def create | ||
@user = User.authenticate(params[:session][:email], | ||
params[:session][:password]) | ||
if @user.nil? | ||
flash.now[:notice] = "Bad email or password." | ||
render :action => :new, :status => :unauthorized | ||
else | ||
if @user.email_confirmed? | ||
remember(@user) if remember? | ||
sign_user_in(@user) | ||
flash[:notice] = "Signed in successfully." | ||
redirect_back_or url_after_create | ||
else | ||
ClearanceMailer.deliver_confirmation(@user) | ||
deny_access("User has not confirmed email. Confirmation email will be resent.") | ||
end | ||
end | ||
end | ||
|
||
def destroy | ||
forget(current_user) | ||
reset_session | ||
flash[:notice] = "You have been signed out." | ||
redirect_to url_after_destroy | ||
end | ||
|
||
private | ||
|
||
def remember? | ||
params[:session] && params[:session][:remember_me] == "1" | ||
end | ||
|
||
def remember(user) | ||
user.remember_me! | ||
cookies[:remember_token] = { :value => user.token, | ||
:expires => user.token_expires_at } | ||
end | ||
|
||
def forget(user) | ||
user.forget_me! if user | ||
cookies.delete :remember_token | ||
end | ||
|
||
def url_after_create | ||
root_url | ||
end | ||
|
||
def url_after_destroy | ||
new_session_url | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
class UsersController < ActionController::Base | ||
|
||
include Clearance::App::Controllers::ApplicationController | ||
|
||
before_filter :redirect_to_root, :only => [:new, :create], :if => :signed_in? | ||
filter_parameter_logging :password | ||
|
||
def new | ||
@user = User.new(params[:user]) | ||
end | ||
|
||
def create | ||
@user = User.new params[:user] | ||
if @user.save | ||
ClearanceMailer.deliver_confirmation @user | ||
flash[:notice] = "You will receive an email within the next few minutes. " << | ||
"It contains instructions for confirming your account." | ||
redirect_to url_after_create | ||
else | ||
render :action => "new" | ||
end | ||
end | ||
|
||
private | ||
|
||
def url_after_create | ||
new_session_url | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
3 changes: 0 additions & 3 deletions
3
generators/clearance/templates/app/controllers/passwords_controller.rb
This file was deleted.
Oops, something went wrong.
3 changes: 0 additions & 3 deletions
3
generators/clearance/templates/app/controllers/sessions_controller.rb
This file was deleted.
Oops, something went wrong.
3 changes: 0 additions & 3 deletions
3
generators/clearance/templates/app/controllers/users_controller.rb
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.