diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 665c12c..81a0e52 100755 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,7 +1,19 @@ +require class UsersController < ApplicationController skip_before_filter :has_info - skip_before_filter :authenticated, :only => [:new, :create] + skip_before_filter :authenticated, :only => [:new, :create, :forgot_password] + + def forgot_password + @user = User.find_by_email(params[:email]) unless params[:email].nil? + + if @user && password_reset_mailer_setup(@user) + flash[:success] = "Password reset email sent to #{params[:email]}" + redirect_to :login + else + flash[:error] = "There was an issue sending password reset email to #{params[:email]}".html_safe unless params[:email].nil? + end + end def new @user = User.new @@ -52,4 +64,16 @@ class UsersController < ApplicationController end end + private + + def password_reset_mailer_setup(user) + token = generate_token(user.id, user.email) + #reset_password_mailer(user.email, token) + end + + def generate_token(id, email) + hash = Digest::MD5.hexdigest(email) + "#{id}~#{hash}" + end + end \ No newline at end of file diff --git a/app/views/sessions/new.html.erb b/app/views/sessions/new.html.erb index 481763a..a7c9932 100755 --- a/app/views/sessions/new.html.erb +++ b/app/views/sessions/new.html.erb @@ -22,6 +22,7 @@
+ <%= link_to "Forgot Password", forgot_password_path, {:class => "btn btn-warning btn-small"} %> <%= submit_tag "Login", {:class => "btn btn-info btn-large pull-right"} %>
diff --git a/app/views/users/forgot_password.html.erb b/app/views/users/forgot_password.html.erb new file mode 100644 index 0000000..061181b --- /dev/null +++ b/app/views/users/forgot_password.html.erb @@ -0,0 +1,30 @@ +
+

MetaCorp

+

A GoatGroup Company

+
+
+
+ +
+
+
\ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index dac6707..441d118 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -3,6 +3,7 @@ Railsgoat::Application.routes.draw do get "login" => "sessions#new" get "signup" => "users#new" get "logout" => "sessions#destroy" + match "forgot_password" => "users#forgot_password" resources :sessions do