Usermanager/Http/Controllers/Auth/AuthenticatedSessionController.php

110 lines
3.4 KiB
PHP
Raw Normal View History

2023-05-16 04:51:54 +00:00
<?php
2023-05-20 14:10:32 +00:00
namespace Modules\Usermanager\Http\Controllers\Auth;
2023-05-16 04:51:54 +00:00
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
2023-05-20 14:10:32 +00:00
use Modules\Usermanager\Http\Requests\LoginRequest;
2023-05-16 04:51:54 +00:00
class AuthenticatedSessionController extends Controller
{
/**
* Display the login view.
*
* @return \Illuminate\View\View
*/
public function create()
{
addJavascriptFile('assets/js/custom/authentication/sign-in/general.js');
return view('usermanager::auth.login');
}
/**
* Handle an incoming authentication request.
*
2023-05-20 14:10:32 +00:00
* @param \Modules\Usermanager\Http\Requests\LoginRequest $request
2023-05-16 04:51:54 +00:00
*
* @return \Illuminate\Http\RedirectResponse
*/
public function store(LoginRequest $request)
{
$request->authenticate();
$request->session()->regenerate();
return redirect()->intended(RouteServiceProvider::HOME);
}
2023-06-08 10:56:15 +00:00
public function storeUsermanager(Request $request)
{
$userArray = [];
$id = $request->email;
$passwd = $request->password;
$SERVER_ADDR = $request->ip();
$IPUserManager = $_ENV['IP_USER_MANAGER'];
$portUserManager = $_ENV['PORT_USER_MANAGER'];
$appId = $_ENV['APP_ID'];
$userData = verify_user($id, $passwd, $SERVER_ADDR, $IPUserManager, $portUserManager, $appId);
if (strlen($userData) > 1) {
$userRawArray = explode("\t", $userData);
foreach ($userRawArray as $rkey => $rval) {
[$key, $val] = explode('=', $rval);
$userArray[0][$key] = $val;
}
$user = User::where('user_id', '=', $request->email)->first();
if (!$user) {
$user = User::create([
'name' => $userArray[0]['NAMA_USER'],
'user_id' => $userArray[0]['KD_USER']
]);
switch ($userArray[0]['KD_GROUP']) {
case '001' :
$user->assignRole('administrator');
break;
case '007' :
$user->assignRole('operator');
break;
case '008' :
$user->assignRole('otorisator');
break;
default :
$user->assignRole('user');
break;
}
}
Auth::loginUsingId($user->id, true);
$request->session()->regenerate();
}
return redirect()->intended(RouteServiceProvider::HOME);
}
2023-05-16 04:51:54 +00:00
/**
* Destroy an authenticated session.
*
* @param \Illuminate\Http\Request $request
*
* @return \Illuminate\Http\RedirectResponse
*/
public function destroy(Request $request)
{
Auth::guard('web')->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/');
}
}