client_management/app/controllers/c_panel_sessions_controller.rb

82 lines
2.0 KiB
Ruby

class CPanelSessionsController < CPanelController
def login
if session[:cpanel_user_login_errors].present?
@errors = session[:cpanel_user_login_errors]
session.delete(:cpanel_user_login_errors)
end
end
def logout
destroy_cpanel_session
redirect_to cpanel_login_path
end
def signup
@cpaneluser = CPanelUser.new
end
def create_user
cpaneluser = CPanelUser.new(c_panel_user_params)
cpaneluser.first_time_run = false
cpaneluser.registered = true
cpaneluser.save
cpaneluser.generate_confirmation_token
end
def confirm_email
@user = CPanelUser.find(params[:id]) rescue nil
if !@user.nil?
CPanelUser.confirm_email(params[:token])
end
end
def requestpassword
end
def loguserin
user = CPanelUser.where(:email => params[:username]).first rescue nil
if user && user.authenticate(params[:password])
if user.is_confirmed?
create_cpanel_session(user)
redirect_to :sites
else
session[:cpanel_user_login_errors] = "User is not confirmed. Please confirm the email before you login."
redirect_to :cpanel_login
end
else
session[:cpanel_user_login_errors] = "Invalid username or password."
redirect_to :cpanel_login
end
end
def instructions
user = CPanelUser.where(:email => params[:email]).first rescue nil
@user_found = false
if !user.nil?
@user_found = true
user.send_password_reset_email
end
end
def reset_password
@user_found = CPanelUser.check_password_token(params[:token])
@user_id = CPanelUser.where(reset_token: params[:token]).first.id rescue nil
end
def update_cpanel_user_password
user = CPanelUser.find(params[:user_id]) rescue nil
if user.update_password(params[:password], params[:confirmation_password])
redirect_to :cpanel_login
else
redirect_to reset_password_path(:token => user.reset_token, :id => user.id.to_s)
end
end
private
def c_panel_user_params
params.require(:c_panel_user).permit!
end
end