diff --git a/app/controllers/pseudo_members_controller.rb b/app/controllers/pseudo_members_controller.rb index 68c37b3..f18d2c6 100644 --- a/app/controllers/pseudo_members_controller.rb +++ b/app/controllers/pseudo_members_controller.rb @@ -57,6 +57,40 @@ class PseudoMembersController < PseudoSessionController } end + def forgot + {} + end + + def resetsuccess + {} + end + + def forgot_pseudo_user + puser = PseudoUser.where(:email => params[:email]).first + page_url = "/" + I18n.locale.to_s + Page.where(:module => "pseudo_member").first.url + if !puser.nil? + puser.generate_reset_token("http://#{request.host_with_port}#{page_url}?method=confirm_reset_email") + redirect_to page_url + "?method=resetsuccess" + else + redirect_to page_url + "?method=resetfail" + end + end + + def confirm_reset_email + puser = PseudoUser.where(:reset_token => OrbitHelper.params[:reset_token]).first + { + "puser" => puser + } + end + + def update_pseudo_user + puser = PseudoUser.find(params[:puser_id]) + page_url = "/" + I18n.locale.to_s + Page.where(:module => "pseudo_member").first.url + puser.update_password(params[:pseudo_user][:password],params[:pseudo_user][:password_confirmation]) + redirect_to page_url + "?method=resetsuccessful" + + end + # def login # if !current_pseudo_user.nil? # redirect_to member_dash_path(current_pseudo_user.account) diff --git a/app/models/pseudo_user.rb b/app/models/pseudo_user.rb index 8131022..ce7d993 100644 --- a/app/models/pseudo_user.rb +++ b/app/models/pseudo_user.rb @@ -35,6 +35,22 @@ class PseudoUser email.deliver end + def generate_reset_token(url) + self.reset_token = SecureRandom.hex(5) + self.save + # PseudoMemberMailer.send_user_confirmation(self).deliver + email = Email.new + email.mail_to = self.email + email.mail_subject = "Click to reset your password." + email.template = "admin/pseudo_members/reset_password.html.erb" + email.template_data = { + "name" => self.name, + "url" => "#{url}&reset_token=#{self.reset_token}" + } + email.deliver + end + + def is_confirmed? self.confirmation_token.nil? end @@ -43,10 +59,10 @@ class PseudoUser self.first_name + " " + self.last_name rescue self.email end - def generate_reset_token - self.reset_token = SecureRandom.hex(5) - self.save - end + # def generate_reset_token + # self.reset_token = SecureRandom.hex(5) + # self.save + # end def self.check_password_token(reset_token = nil) user = self.find_by(reset_token: reset_token) rescue nil diff --git a/app/views/admin/pseudo_members/reset_password.html.erb b/app/views/admin/pseudo_members/reset_password.html.erb new file mode 100644 index 0000000..fb28141 --- /dev/null +++ b/app/views/admin/pseudo_members/reset_password.html.erb @@ -0,0 +1,7 @@ +
+ Please click on the link below to confirm your email address. +
++ ">Confirm Email +
\ No newline at end of file diff --git a/app/views/pseudo_members/confirm_reset_email.html.erb b/app/views/pseudo_members/confirm_reset_email.html.erb new file mode 100644 index 0000000..b725f6c --- /dev/null +++ b/app/views/pseudo_members/confirm_reset_email.html.erb @@ -0,0 +1,24 @@ +<% data = action_data %> +<%= form_for data["puser"], :url => update_pseudo_user_path, html: {class: "form-horizontal"} do |f|%> +