bug fixes and new additions

This commit is contained in:
Kwesi Banson Jnr
2025-08-13 00:10:17 +00:00
parent cf39ff2682
commit eabf61b7da
133 changed files with 4231 additions and 590 deletions

View File

@@ -5,6 +5,9 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models;
use Spatie\Activitylog\Models\Activity;
use Illuminate\Support\Str;
use App\Jobs\SendOtpEmailAlert;
class LoginController extends Controller
{
@@ -15,33 +18,113 @@ class LoginController extends Controller
];
return view('login.index', $data);
}
public function resendOtp(){
if(!request()->session()->has('current_otpuser')){
return redirect(url('login'))->withErrors("No session found. You need to be logged in!");
}
$otp_code = Str::random(6);
\Log::info($otp_code);
request()->session()->put('current_otpuser.otp', $otp_code);
$otp_user = session('current_otpuser');
public function handleLogin(Request $request){
$this->validate($request, ['email' => 'required', 'password' => 'required']);
$otp_set = [
'otp' => $otp_code,
'email' => $otp_user['email'],
'auth_name' => $otp_user['name']
];
dispatch(new SendOtpEmailAlert($otp_set));
$data = [
'otp_user_id' => $otp_user['id'],
'page_title' => 'Login OTP',
'auth_name' => $otp_user['name']
];
return view('login.otp', $data);
}
public function showOtpPage(){
if(!request()->session()->has('current_otpuser')){
$random = uniqid();
return redirect(url('login'))->withErrors("$random | You need to be logged in ");
}
$otp_user = session('current_otpuser');
$data = [
'otp_user_id' => $otp_user['id'],
'page_title' => 'Login OTP',
'auth_name' => $otp_user['name']
];
return view('login.otp', $data);
}
public function handleLoginOtp(Request $request){
$this->validate($request, ['email' => 'required', 'password' => 'required']);
//system user : $table = "auth_users";
$logged_in = Models\SystemUser::with('designation_info')->where('email', $request->email)->where('password', md5($request->password))->first();
$logged_in = Models\SystemUser::with('designation_info')->where('email', $request->email)->where('password', md5($request->password))->first();
if(empty($logged_in)){
return redirect("/")->withErrors(array("Incorrect Email/Password. Check and try again!"))->withInput();
}
$otp_code = Str::random(6);
$request->session()->regenerate(true);
$request->session()->put('current_otpuser.id', $logged_in->id);
$request->session()->put('current_otpuser.otp', $otp_code);
$request->session()->put('current_otpuser.name', $logged_in->name);
$request->session()->put('current_otpuser.email', $logged_in->email);
$request->session()->put('current_otpuser.phone', $logged_in->phone);
$request->session()->put('current_otpuser.datetime_sent', date('Y-m-d H:i:s'));
$request->session()->put('current_otpuser.designation', $logged_in->designation_info->name);
$otp_set = ['otp' => $otp_code, 'email' => $logged_in->email, 'auth_name' => $logged_in->name];
dispatch(new SendOtpEmailAlert($otp_set));
return redirect(url('showotp'));
}
public function handleLogin(Request $request){
// dump($request->all());
$this->validate($request, ['otp' => 'required', 'otp_user_id' => 'required']);
//system user : $table = "auth_users";
$current_date = date('Y-m-d H:i:s');
$otp_user = session('current_otpuser');
$date1 = new \DateTime($otp_user['datetime_sent']);
$date2 = new \DateTime($current_date);
$interval = $date1->diff($date2);
$minutes = ($interval->h * 60) + $interval->i;
// dd($minutes);
if($minutes > 2 ){
return redirect("showotp")->withErrors(array("OTP Time Out. Resend and try again!"));
}
$otp_user = session('current_otpuser');
if(strtoupper($otp_user['otp']) !== strtoupper($request->otp)){
return redirect("showotp")->withErrors(array("Incorrect OTP. Check and try again!"))->withInput();
}
#$logged_in = Models\SystemUser::with('designation_info')->where('email', $request->email)->where('password', md5($request->password))->first();
/*
if(empty($logged_in)){
return redirect("/")->withErrors(array("Incorrect Email/Password. Check and try again!"))->withInput();
}
*/
$request->session()->regenerate(true);
$request->session()->put('current_user.id', $logged_in->id);
$request->session()->put('current_user.name', $logged_in->name);
$request->session()->put('current_user.email', $logged_in->email);
$request->session()->put('current_user.phone', $logged_in->phone);
$request->session()->put('current_user.designation', $logged_in->designation_info->name);
$request->session()->put('current_user.id', $otp_user['id']);
$request->session()->put('current_user.name', $otp_user['name']);
$request->session()->put('current_user.email', $otp_user['email']);
$request->session()->put('current_user.phone', $otp_user['phone']);
$request->session()->put('current_user.designation', $otp_user['designation']);
\Log::info($logged_in->name . ' Successfully logged in at : ' . date('Y-m-d H:i:s'));
$content = $logged_in->name . " Successfully Logged In";
activity()->log($logged_in->name . ' Successfully logged in at : ' . date('Y-m-d H:i:s'));
\Log::info($otp_user['name']. ' Successfully logged in at : ' . date('Y-m-d H:i:s'));
$this->logUsersActivity($type = 'staff', $content, $logged_in->id);
$content = $otp_user['name'] . " Successfully Logged In";
// dd($content);
#activity()->log($otp_user['name']. ' Successfully logged in at : ' . date('Y-m-d H:i:s'));
$this->logUsersActivity($type = 'staff', $content, $otp_user['id']);
$this->deleteLoggedUser();
$this->storeLoggedUser();
switch ($logged_in->designation_info->name) {
return redirect(url('/'));
/*
switch ($otp_user['designation_info']) {
case 'Administrator':
return redirect(url('finance')); // change it to a combined dashboard
break;
@@ -53,6 +136,7 @@ class LoginController extends Controller
return redirect(url('/'));
break;
}
*/
}
public function handle_logout(Request $request) {
@@ -65,8 +149,8 @@ class LoginController extends Controller
$request->session()->flush();
$request->session()->regenerate(true);
activity()->log($username . " Logged Out : " . date('Y-m-d H:i:s'));
// $this->logUsersActivity($type = 'staff', $content, $user_id);
#activity()->log($username . " Logged Out : " . date('Y-m-d H:i:s'));
$this->logUsersActivity($type = 'staff', $content, $user_id);
return redirect("/");
}