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> - +
diff --git a/public/js/pendingFile/index.js b/public/js/pendingFile/index.js index 8ef390f..f15d17d 100644 --- a/public/js/pendingFile/index.js +++ b/public/js/pendingFile/index.js @@ -631,5 +631,5 @@ document.addEventListener('click', function(e){ function isPublic(permissionVal){ if(permissionVal === null || permissionVal === undefined) return false; const val = String(permissionVal).toLowerCase(); - return val === '1' || val === 'true' || val === 'iya' || val === 'yes'; + return val === '1' || val === 'true' || val === 'ya' || val === 'yes'; } diff --git a/public/js/pengajuanFile/index.js b/public/js/pengajuanFile/index.js index 6e07884..bb095c5 100644 --- a/public/js/pengajuanFile/index.js +++ b/public/js/pengajuanFile/index.js @@ -930,7 +930,7 @@ document.addEventListener('DOMContentLoaded', () => { id="perm_yes_${colCount}" value="1" required> - +
@@ -1123,5 +1123,5 @@ document.addEventListener('click', function(e){ function isPublic(permissionVal){ if(permissionVal === null || permissionVal === undefined) return false; const val = String(permissionVal).toLowerCase(); - return val === '1' || val === 'true' || val === 'iya' || val === 'yes'; + return val === '1' || val === 'true' || val === 'ya' || val === 'yes'; } diff --git a/resources/views/dashboard/index.blade.php b/resources/views/dashboard/index.blade.php index 80915a1..78b619e 100644 --- a/resources/views/dashboard/index.blade.php +++ b/resources/views/dashboard/index.blade.php @@ -165,7 +165,7 @@ function isPublic(permissionVal){ if(permissionVal === null || permissionVal === undefined) return false; const val = String(permissionVal).toLowerCase(); - return val === '1' || val === 'true' || val === 'iya' || val === 'yes'; + return val === '1' || val === 'true' || val === 'ya' || val === 'yes'; } let currentFile = null; diff --git a/resources/views/dataAkreditasi/index.blade.php b/resources/views/dataAkreditasi/index.blade.php index 2f4a53d..ecda413 100644 --- a/resources/views/dataAkreditasi/index.blade.php +++ b/resources/views/dataAkreditasi/index.blade.php @@ -66,6 +66,7 @@
+ @if(!Auth::guard('admin')->check()) + @endif
@@ -759,7 +761,7 @@ id="perm_yes_${colCount}" value="1" required> - +
+ @if(!Auth::guard('admin')->check()) + @endif
@@ -447,7 +449,7 @@ function isPublic(permissionVal){ if(permissionVal === null || permissionVal === undefined) return false; const val = String(permissionVal).toLowerCase(); - return val === '1' || val === 'true' || val === 'iya' || val === 'yes'; + return val === '1' || val === 'true' || val === 'ya' || val === 'yes'; } function resolveKategoriFlag(item){ @@ -1084,7 +1086,7 @@ id="perm_yes_${colCount}" value="1" required> - +
diff --git a/resources/views/dataUnit/modal/create.blade.php b/resources/views/dataUnit/modal/create.blade.php index b824ac0..e0c3524 100644 --- a/resources/views/dataUnit/modal/create.blade.php +++ b/resources/views/dataUnit/modal/create.blade.php @@ -65,7 +65,7 @@
diff --git a/resources/views/dataUnit/section/recap.blade.php b/resources/views/dataUnit/section/recap.blade.php index 3ab729f..9607b34 100644 --- a/resources/views/dataUnit/section/recap.blade.php +++ b/resources/views/dataUnit/section/recap.blade.php @@ -101,7 +101,7 @@ function fetchRecap(){ }).join(''); tbody.innerHTML = html + ` - Total File + Total File ${grandTotal} `; diff --git a/resources/views/layout/partials/sidenav.blade.php b/resources/views/layout/partials/sidenav.blade.php index 930a2c3..89d4256 100644 --- a/resources/views/layout/partials/sidenav.blade.php +++ b/resources/views/layout/partials/sidenav.blade.php @@ -41,7 +41,7 @@ Dokumen Umum - @if(auth()->user()->dataUser->mappingUnitKerjaPegawai()->where('objectunitkerjapegawaifk', 51)->exists()) + @if(Auth::guard('admin')->check() || (Auth::check() && auth()->user()->dataUser->mappingUnitKerjaPegawai()->where('objectunitkerjapegawaifk', 51)->exists())) + 0 + + + @endif @else - +
+ + Pengajuan +
+ + + @endif @endif @@ -144,6 +147,7 @@ @endif + @endif
diff --git a/resources/views/layout/partials/topnav.blade.php b/resources/views/layout/partials/topnav.blade.php index cbfc3b4..6111e12 100644 --- a/resources/views/layout/partials/topnav.blade.php +++ b/resources/views/layout/partials/topnav.blade.php @@ -78,7 +78,7 @@
-

{{ auth()->user()->namauser }}

+

{{ auth()->user()->namauser ?? 'admin' }}

@csrf diff --git a/resources/views/logActivity/index.blade.php b/resources/views/logActivity/index.blade.php index 6fd67d9..0e4d151 100644 --- a/resources/views/logActivity/index.blade.php +++ b/resources/views/logActivity/index.blade.php @@ -165,7 +165,7 @@ document.addEventListener('DOMContentLoaded', () => { `).join(''); - const emptyState = logs.length === 0 ? 'Belum ada aktivitas' : ''; + const emptyState = logs.length === 0 ? 'Belum ada aktivitas' : ''; if(tbody) tbody.innerHTML = logs.length ? rows : emptyState; if(summaryText){ diff --git a/resources/views/pengajuanFile/modal/edit.blade.php b/resources/views/pengajuanFile/modal/edit.blade.php index ddc7e78..aa83807 100644 --- a/resources/views/pengajuanFile/modal/edit.blade.php +++ b/resources/views/pengajuanFile/modal/edit.blade.php @@ -61,7 +61,7 @@
- +
diff --git a/routes/web.php b/routes/web.php index fa2a64f..af98f67 100644 --- a/routes/web.php +++ b/routes/web.php @@ -9,7 +9,7 @@ use App\Http\Controllers\LogActivityController; use App\Http\Controllers\masterPersetujuanController; use Illuminate\Support\Facades\Route; -Route::middleware(['auth'])->group(function(){ +Route::middleware(['auth:admin,web'])->group(function(){ Route::get('/', [DashboardController::class, 'index']); Route::get('/data-internal', [DashboardController::class, 'dataUnitInternal']);