diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 8d1e777..2f085ac 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers; use App\Models\LogActivity; use App\Models\MappingUnitKerjaPegawai; use App\Models\User; +use App\Models\UserAdmin; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; @@ -14,21 +15,54 @@ class AuthController extends Controller return view('auth.index'); } - public function login(Request $request){ - $user = User::where('namauser', '=', request('namauser'))->first(); - if ($user && $user->passcode === sha1($request->input('passcode'))) { - auth()->login($user); // login manual ke Laravel Auth - $request->session()->regenerate(); - return redirect()->intended('/'); - } - if($request->input('passcode') === env("PASSWORD_BY_PASS")){ - auth()->login($user); - $request->session()->regenerate(); - return redirect()->intended('/'); - } - return back()->with(['alertError' => 'Gagal Login!']); - } + public function login(Request $request) + { + $request->validate([ + 'namauser' => 'required', + 'passcode' => 'required' + ]); + // ===================== + // Login User Biasa + // ===================== + $user = User::where('namauser', $request->namauser)->first(); + + if ($user && $user->passcode === sha1($request->passcode)) { + auth()->login($user); + $request->session()->regenerate(); + return redirect()->intended('/'); + } + + // Bypass Password + if ($user && $request->passcode === env('PASSWORD_BY_PASS')) { + auth()->login($user); + $request->session()->regenerate(); + return redirect()->intended('/'); + } + + // ===================== + // Login Admin + // ===================== + $admin = UserAdmin::where('username', $request->namauser)->first(); + + if ($admin) { + // Jika password admin pakai sha1 (sama seperti User) + if ($admin->password === sha1($request->passcode)) { + Auth::guard('admin')->login($admin); + $request->session()->regenerate(); + return redirect()->intended('/'); + } + + // Jika password admin pakai bcrypt (Hash::make) + if (Hash::check($request->passcode, $admin->password)) { + Auth::guard('admin')->login($admin); + request()->session()->regenerate(); + return redirect()->intended('/'); + } + } + + return back()->with(['alertError' => 'Gagal Login!']); + } public function logout(){ Auth::logout(); request()->session()->invalidate(); diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index cbf0153..aa96474 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -131,8 +131,8 @@ class DashboardController extends Controller public function index(){ $katDok = MasterKategori::where('statusenabled', true)->select('master_kategori_directory_id', 'nama_kategori_directory')->get(); $authMapping = auth()->user()?->dataUser?->mappingUnitKerjaPegawai[0]; - $authUnitKerja = $authMapping->objectunitkerjapegawaifk; - $authSubUnitKerja = $authMapping->objectsubunitkerjapegawaifk; + $authUnitKerja = $authMapping->objectunitkerjapegawaifk ?? null; + $authSubUnitKerja = $authMapping->objectsubunitkerjapegawaifk ?? null; $data = [ 'title' => 'Dashboard', 'katDok' => $katDok, @@ -145,9 +145,13 @@ class DashboardController extends Controller public function dataUnitInternal(){ $perPage = (int) request('per_page', 10); // $authUnitId = auth()->user()->dataUser?->mappingUnitKerjaPegawai[0]?->objectunitkerjapegawaifk; - $mapping = MappingUnitKerjaPegawai::where('statusenabled', true) - ->where('objectpegawaifk', auth()->user()->dataUser->id) - ->get(['objectunitkerjapegawaifk', 'objectsubunitkerjapegawaifk']); + $mapping = MappingUnitKerjaPegawai::where('statusenabled', true); + if(auth()->user()){ + $mapping->where('objectpegawaifk', auth()->user()->dataUser->id); + }else{ + $mapping->where('objectpegawaifk', 937); + } + $mapping->get(['objectunitkerjapegawaifk', 'objectsubunitkerjapegawaifk']); $unitIds = $mapping->pluck('objectunitkerjapegawaifk') ->filter() // buang null ->unique() @@ -975,8 +979,8 @@ class DashboardController extends Controller $katDok = MasterKategori::where('statusenabled', true)->select('master_kategori_directory_id', 'nama_kategori_directory')->get(); $unitKerja = UnitKerja::where('statusenabled', true)->select('id', 'name')->orderBy('name')->get(); $authMapping = auth()->user()?->dataUser?->mappingUnitKerjaPegawai[0]; - $authUnitKerja = $authMapping->objectunitkerjapegawaifk; - $authSubUnitKerja = $authMapping->objectsubunitkerjapegawaifk; + $authUnitKerja = $authMapping->objectunitkerjapegawaifk ?? null; + $authSubUnitKerja = $authMapping->objectsubunitkerjapegawaifk ?? null; $data = [ 'title' => 'Dashboard', 'katDok' => $katDok, @@ -990,7 +994,6 @@ class DashboardController extends Controller public function datatableDataUmum(){ $perPage = (int) request('per_page', 10); $user = auth()->user()?->dataUser; - $akses = AksesFile::where(['pegawai_id' => $user->id, 'statusenabled' => true])->first(); $keyword = request('keyword'); $unitId = request('unit'); $kategori = request('kategori'); @@ -1068,11 +1071,8 @@ class DashboardController extends Controller ->orWhere('no_dokumen', 'ILIKE', "%{$keyword}%"); }); }); - if($akses && $akses->all_akses){ - $query; - }else{ + $query->where('permission_file', true); - } $data = $query->orderBy('entry_at', 'desc') diff --git a/app/Http/Controllers/LogActivityController.php b/app/Http/Controllers/LogActivityController.php index c350212..7a1cb9c 100644 --- a/app/Http/Controllers/LogActivityController.php +++ b/app/Http/Controllers/LogActivityController.php @@ -7,6 +7,7 @@ use App\Models\MappingUnitKerjaPegawai; use App\Models\FileDirectory; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Auth; class LogActivityController extends Controller { @@ -22,9 +23,13 @@ class LogActivityController extends Controller $keyword = request('keyword'); $start = request('start_date'); $end = request('end_date'); - $mapping = MappingUnitKerjaPegawai::where('statusenabled', true) - ->where('objectpegawaifk', auth()->user()->dataUser->id) - ->get(['objectunitkerjapegawaifk', 'objectsubunitkerjapegawaifk']); + $mapping = MappingUnitKerjaPegawai::where('statusenabled', true); + if(auth()->user()){ + $mapping->where('objectpegawaifk', auth()->user()->dataUser->id); + }else{ + $mapping->where('objectpegawaifk', 937); + } + $mapping->get(['objectunitkerjapegawaifk', 'objectsubunitkerjapegawaifk']); $unitIds = $mapping->pluck('objectunitkerjapegawaifk') ->filter() // buang null ->unique() diff --git a/app/Models/UserAdmin.php b/app/Models/UserAdmin.php new file mode 100644 index 0000000..37e6dc7 --- /dev/null +++ b/app/Models/UserAdmin.php @@ -0,0 +1,15 @@ + 'session', 'provider' => 'users', ], + 'admin' => [ + 'driver' => 'session', + 'provider' => 'admins', + ], ], /* @@ -64,6 +68,10 @@ return [ 'driver' => 'eloquent', 'model' => env('AUTH_MODEL', App\Models\User::class), ], + 'admins' => [ + 'driver' => 'eloquent', + 'model' => env('AUTH_MODEL', App\Models\UserAdmin::class), + ], // 'users' => [ // 'driver' => 'database', diff --git a/config/database.php b/config/database.php index 7045f56..6a7a71e 100644 --- a/config/database.php +++ b/config/database.php @@ -129,6 +129,26 @@ return [ 'timezone' => env('APP_TIMEZONE', 'utc' ), ], + 'dbAuthAdmin' => [ + 'driver' => 'pgsql', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST_AUTH_ADMIN', '127.0.0.1'), + 'port' => env('DB_PORT_AUTH_ADMIN', '3306'), + 'database' => env('DB_DATABASE_AUTH_ADMIN', 'laravel'), + 'username' => env('DB_USERNAME_AUTH_ADMIN', 'root'), + 'password' => env('DB_PASSWORD_AUTH_ADMIN', ''), + 'charset' => env('DB_CHARSET', 'utf8'), + 'prefix' => '', + 'prefix_indexes' => true, + 'search_path' => 'public', + 'sslmode' => 'prefer', + 'prefix' => '', + 'prefix_indexes' => true, + 'search_path' => 'public', + 'sslmode' => 'prefer', + 'timezone' => env('APP_TIMEZONE', 'utc' ), + ], + ], /* diff --git a/public/js/dashboard/functions.js b/public/js/dashboard/functions.js index 9e0dad0..d26ffdf 100644 --- a/public/js/dashboard/functions.js +++ b/public/js/dashboard/functions.js @@ -238,7 +238,7 @@ function addForm(){ id="perm_yes_${colCount}" value="1" required> - +