118 lines
5.1 KiB
PHP
118 lines
5.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
use App\Utilities\ApiCalls;
|
|
use Session;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Cookie;
|
|
use Illuminate\Support\Str;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class UserloginController extends Controller
|
|
{
|
|
public function index(){
|
|
$data = [
|
|
'page_title' => 'User Login'
|
|
];
|
|
return view('user-auth.login', $data);
|
|
|
|
}
|
|
|
|
public function handleLogin(Request $request){
|
|
|
|
$this->validate($request, ['username' => 'required', 'password' => 'required']);
|
|
$logged_in = '';
|
|
|
|
// dd(config('database.connections.sqlite.database'));
|
|
|
|
$check_user_url = 'auth/auth_user.php';
|
|
$data = ['user' => $request->username, 'pass' => $request->password, 'api_token' => env('LUPMISAPIKEY')];
|
|
$check_user = ApiCalls::CurlPost(json_encode($data), $check_user_url);
|
|
/*
|
|
"success" : true, "data" : {
|
|
"ua_id":28,"user_id":"71c1f2bd-e85b-4c2a-b559-536731ea1a92",
|
|
"username":"kwesilupmis",
|
|
"title":"Mr","full_name":"Kwesi banson jnr",
|
|
"ua_position":"luspa-it-head",
|
|
"email":"kwesibanson@yahoo.com",
|
|
"phone":"0204040805","gender":null,
|
|
"is_disabled":"true",
|
|
"is_logged_in":0,"is_password_changed":"false","password_hint":"none",
|
|
"created_by_id":null,"created_date":"2026-03-10T07:09:38.815762",
|
|
"updated_by_id":"71c1f2bd-e85b-4c2a-b559-536731ea1a92",
|
|
"updated_date":"2026-05-06T10:26:09.191289",
|
|
"allowed_apps":"drawing-tools, permit-tools, admin-gui",
|
|
"region_id":10,
|
|
"district_id":122
|
|
}
|
|
*/
|
|
|
|
|
|
if($check_user == false){
|
|
return redirect("user-login")->withErrors(array("System not available at the moment. Try again later!"))->withInput();
|
|
}
|
|
$result = json_decode($check_user, true);
|
|
if($result['success'] == false){
|
|
return redirect("user-login")->withErrors(array("Incorrect Email/Password. Check and try again!"))->withInput();
|
|
}
|
|
if($result['data']['is_disabled'] == true){
|
|
##return redirect("user-login")->withErrors(array("Your Account has been disabled. Contact your administrator!"))->withInput();
|
|
}
|
|
$logged_in = $result['data'];
|
|
$plainToken = Str::random(60);
|
|
|
|
// $hashedToken = hash('sha256', $plainToken);
|
|
DB::table('sso_sessions')->insert([
|
|
'user_id' => $logged_in['user_id'],
|
|
'token' => hash('sha256', $plainToken),
|
|
'created_at' => now(),
|
|
]);
|
|
|
|
$request->session()->regenerate(true);
|
|
$request->session()->put('current_user.ua_id', $logged_in['ua_id']);
|
|
$request->session()->put('current_user.user_id', $logged_in['user_id']);
|
|
$request->session()->put('current_user.username', $logged_in['username']);
|
|
$request->session()->put('current_user.title', $logged_in['title']);
|
|
$request->session()->put('current_user.full_name', $logged_in['full_name']);
|
|
$request->session()->put('current_user.email', $logged_in['email']);
|
|
$request->session()->put('current_user.user_type', $logged_in['user_type']);
|
|
$request->session()->put('current_user.phone', $logged_in['phone']);
|
|
$request->session()->put('current_user.allowed_apps', $logged_in['allowed_apps']);
|
|
$request->session()->put('current_user.ua_position', $logged_in['ua_position']);
|
|
$request->session()->put('current_user.region_id', $logged_in['region_id']);
|
|
$request->session()->put('current_user.is_password_changed', $logged_in['is_password_changed']);
|
|
$request->session()->put('current_user.district_id', $logged_in['district_id']);
|
|
// $request->session()->put('current_user.hashedToken', $hashedToken);
|
|
$request->session()->put('current_user.plainToken', $plainToken);
|
|
|
|
|
|
// $request->session()->put('current_user.permissions', $logged_in['permissions']);
|
|
Cookie::queue('sso_auth_token', $plainToken, 60, '/', '.lupmis4luspa.org');
|
|
\Log::info($logged_in['full_name']. ' Successfully logged in at : ' . date('Y-m-d H:i:s'));
|
|
return redirect(url('/'));
|
|
}
|
|
public function handle_logout(Request $request) {
|
|
$user_id = session('current_user.id');
|
|
$username = session('current_user.name');
|
|
|
|
$plainToken = request()->cookie('sso_auth_token');
|
|
if ($plainToken) {
|
|
Cookie::queue(Cookie::forget('sso_auth_token', '/', '.lupmis4luspa.org'));
|
|
}
|
|
|
|
$logout_user_url = 'auth/logout_user.php';
|
|
$data = ['user_id' => $user_id, 'api_token' => env('LUPMISAPIKEY')];
|
|
$result = ApiCalls::CurlPost(json_encode($data), $logout_user_url);
|
|
// dd($result);
|
|
|
|
$request->session()->forget('current_user');
|
|
$request->session()->flush();
|
|
$request->session()->regenerate(true);
|
|
|
|
\Log::info($username . ' Successfully logged out at : ' . date('Y-m-d H:i:s'));
|
|
Session::flash('success_message', 'You have successfully logged out!');
|
|
return redirect("/");
|
|
}
|
|
|
|
}
|