diff --git a/app/Http/Controllers/ManageUserController.php b/app/Http/Controllers/ManageUserController.php index 107f456..430474f 100644 --- a/app/Http/Controllers/ManageUserController.php +++ b/app/Http/Controllers/ManageUserController.php @@ -13,7 +13,7 @@ class ManageUserController extends Controller { public function index() { - $users = User::all(); + $users = User::where('role', '!=', 'admin')->get(); return view('users-management.index', ['users' => $users]); } @@ -26,14 +26,14 @@ class ManageUserController extends Controller { $user = new User(); $user->fill([ + 'nip' => $request->nip, 'name' => $request->name, - 'email' => $request->email, 'password' => Hash::make($request->password), ]); $user->save(); - return redirect()->route('users-management.index')->with('success', 'Akun Baru berhasil dibuat!'); + return redirect()->route('users-management.index')->with('success', 'Akun Pegawai Baru berhasil dibuat!'); } public function edit($id) @@ -54,7 +54,7 @@ class ManageUserController extends Controller $user->save(); - return redirect()->route('users-management.index')->with('success', 'Akun berhasil diperbarui!'); + return redirect()->route('users-management.index')->with('success', 'Akun Pegawai berhasil diperbarui!'); } public function disable($id) @@ -65,9 +65,9 @@ class ManageUserController extends Controller $user->is_active = !$user->is_active; $user->save(); if ($user->is_active) { - return redirect()->route('users-management.index')->with('success', 'Akun berhasil diaktifkan!'); + return redirect()->route('users-management.index')->with('success', 'Akun Pegawai berhasil diaktifkan!'); } - return redirect()->route('users-management.index')->with('success', 'Akun berhasil dinonaktifkan!'); + return redirect()->route('users-management.index')->with('success', 'Akun Pegawai berhasil dinonaktifkan!'); } return redirect()->route('users-management.index')->with('error', 'Terjadi kesalahan!'); @@ -79,7 +79,7 @@ class ManageUserController extends Controller if ($user) { $user->delete(); - return redirect()->route('users-management.index')->with('success', 'Akun berhasil dihapus!'); + return redirect()->route('users-management.index')->with('success', 'Akun Pegawai berhasil dihapus!'); } return redirect()->route('users-management.index')->with('error', 'Terjadi kesalahan!'); diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 52bae46..12b322b 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -64,6 +64,7 @@ class Kernel extends HttpKernel 'signed' => \App\Http\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, - 'is_super_admin' => \App\Http\Middleware\VerifyIsSuperAdmin::class, + 'isAdmin' => \App\Http\Middleware\VerifyIsAdmin::class, + 'isWorker' => \App\Http\Middleware\VerifyIsWorker::class, ]; } diff --git a/app/Http/Middleware/VerifyIsSuperAdmin.php b/app/Http/Middleware/VerifyIsAdmin.php similarity index 87% rename from app/Http/Middleware/VerifyIsSuperAdmin.php rename to app/Http/Middleware/VerifyIsAdmin.php index 7840557..002d2dc 100644 --- a/app/Http/Middleware/VerifyIsSuperAdmin.php +++ b/app/Http/Middleware/VerifyIsAdmin.php @@ -7,7 +7,7 @@ use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; use Illuminate\Support\Facades\Auth; -class VerifyIsSuperAdmin +class VerifyIsAdmin { /** * Handle an incoming request. @@ -16,7 +16,7 @@ class VerifyIsSuperAdmin */ public function handle(Request $request, Closure $next): Response { - if (Auth::user()->is_superuser) { + if (Auth::user()->role === 'admin') { return $next($request); } diff --git a/app/Http/Middleware/VerifyIsWorker.php b/app/Http/Middleware/VerifyIsWorker.php new file mode 100644 index 0000000..3140db2 --- /dev/null +++ b/app/Http/Middleware/VerifyIsWorker.php @@ -0,0 +1,25 @@ +role === 'worker') { + return $next($request); + } + + return redirect('/'); + } +} diff --git a/app/Http/Requests/LoginRequest.php b/app/Http/Requests/LoginRequest.php index c266934..ac991d5 100644 --- a/app/Http/Requests/LoginRequest.php +++ b/app/Http/Requests/LoginRequest.php @@ -28,7 +28,7 @@ class LoginRequest extends FormRequest public function rules(): array { return [ - 'email' => ['required', 'string', 'email'], + 'nip' => ['required', 'string', 'min:12', 'max:12'], 'password' => ['required', 'string'], ]; } @@ -43,9 +43,9 @@ class LoginRequest extends FormRequest $this->ensureIsNotRateLimited(); // Check user is_active status and not soft deleted - $user = User::where('email', $this->string('email'))->first(); + $user = User::where('nip', $this->string('nip'))->first(); - if (!$user || !$user->is_active || $user->trashed() || !Auth::attempt($this->only('email', 'password'), $this->boolean('remember'))) { + if (!$user || !$user->is_active || $user->trashed() || !Auth::attempt($this->only('nip', 'password'), $this->boolean('remember'))) { RateLimiter::hit($this->throttleKey()); throw ValidationException::withMessages([ diff --git a/app/Http/Requests/ManageUser/StoreNewAkun.php b/app/Http/Requests/ManageUser/StoreNewAkun.php index 7a989bb..1e8793d 100644 --- a/app/Http/Requests/ManageUser/StoreNewAkun.php +++ b/app/Http/Requests/ManageUser/StoreNewAkun.php @@ -25,7 +25,7 @@ class StoreNewAkun extends FormRequest { return [ 'name' => ['required', 'string', 'max:255'], - 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', Rule::unique(User::class)->ignore($this->user()->id)], + 'nip' => ['required', 'string', 'min:12', 'max:12', Rule::unique(User::class)], 'password' => ['required', 'min:8', 'confirmed'], ]; } diff --git a/app/Models/User.php b/app/Models/User.php index 5038e19..e0bc442 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -20,10 +20,10 @@ class User extends Authenticatable */ protected $fillable = [ 'name', - 'email', + 'nip', 'password', + 'role', 'is_active', - 'is_superuser', ]; /** diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index 8728e43..17b8ae8 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -14,9 +14,9 @@ return new class extends Migration Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); - $table->string('email')->unique(); + $table->string('nip')->unique(); $table->string('password'); - $table->boolean('is_superuser')->default(false); + $table->enum('role', ['admin', 'worker', 'patient'])->default('patient'); $table->boolean('is_active')->default(true); $table->rememberToken(); $table->timestamps(); diff --git a/database/seeders/AdminSeeder.php b/database/seeders/AdminSeeder.php index e560ed1..9c4300a 100644 --- a/database/seeders/AdminSeeder.php +++ b/database/seeders/AdminSeeder.php @@ -15,13 +15,24 @@ class AdminSeeder extends Seeder public function run(): void { $user = [ - 'name' => 'Admin SIM Surat', - 'email' => 'admin@simsurat.com', - 'password' => Hash::make('admin123'), - 'is_superuser' => true, - 'is_active' => true, + [ + 'name' => 'Admin RSABHK', + 'nip' => '202510001234', + 'password' => Hash::make('admin123'), + 'role' => 'admin', + 'is_active' => true, + 'created_at' => now(), + ], + [ + 'name' => 'Pegawai RSABHK', + 'nip' => '202510001235', + 'password' => Hash::make('worker123'), + 'role' => 'worker', + 'is_active' => true, + 'created_at' => now(), + ], ]; - User::create($user); + User::insert($user); } } diff --git a/resources/views/layouts/partials/sidebar.blade.php b/resources/views/layouts/partials/sidebar.blade.php index e7bc7bb..412503a 100644 --- a/resources/views/layouts/partials/sidebar.blade.php +++ b/resources/views/layouts/partials/sidebar.blade.php @@ -40,7 +40,7 @@ ], (object) [ 'icon' => 'fas fa-user', - 'name' => 'Pengguna', + 'name' => 'Pegawai', 'link' => '/manajemen-akun', 'childs' => [], 'is_superuser' => true, // Menambahkan field ini untuk mengontrol akses @@ -82,7 +82,7 @@ @continue @endif - @if (isset($menu->is_superuser) && $menu->is_superuser && !Auth::user()->is_superuser) + @if (isset($menu->is_superuser) && $menu->is_superuser && !Auth::user()->role === 'admin') @continue {{-- Menghentikan iterasi jika bukan superuser --}} @endif diff --git a/resources/views/login.blade.php b/resources/views/login.blade.php index ce3d9db..55a2110 100644 --- a/resources/views/login.blade.php +++ b/resources/views/login.blade.php @@ -24,7 +24,7 @@
-

Laravel Boilerplate

+

RSABHK - REGISTRASI

@@ -33,15 +33,15 @@ @csrf
- +
- +
- @error('email') + @error('nip') {{ $message }} @enderror
diff --git a/resources/views/profile.blade.php b/resources/views/profile.blade.php index 4581379..9be4682 100644 --- a/resources/views/profile.blade.php +++ b/resources/views/profile.blade.php @@ -34,9 +34,9 @@ @method('PUT')
- - + +
diff --git a/resources/views/users-management/add.blade.php b/resources/views/users-management/add.blade.php index e16e3bf..d6a6e3e 100644 --- a/resources/views/users-management/add.blade.php +++ b/resources/views/users-management/add.blade.php @@ -33,10 +33,10 @@ @csrf
- - - @error('email') + + + @error('nip') {{ $message }} @enderror
diff --git a/resources/views/users-management/edit.blade.php b/resources/views/users-management/edit.blade.php index e705514..cdc2173 100644 --- a/resources/views/users-management/edit.blade.php +++ b/resources/views/users-management/edit.blade.php @@ -34,9 +34,9 @@ @method('PUT')
- - + +
diff --git a/resources/views/users-management/index.blade.php b/resources/views/users-management/index.blade.php index f864d5b..57adbce 100644 --- a/resources/views/users-management/index.blade.php +++ b/resources/views/users-management/index.blade.php @@ -12,7 +12,7 @@
-

Manajemen Data Akun

+

Manajemen Data Pegawai