feat(usermanagement): tambahkan helper untuk cek role and permission

- Perbarui file `module.json`:
  - Menambahkan path baru pada array `files` untuk memuat helper: `app/Helpers/RolePermission.php`.

- Tambahkan helper baru `RolePermission.php`:
  - Fungsi `check_permission`:
    - Mengecek apakah pengguna yang terautentikasi memiliki permission tertentu.
    - Mendukung opsi untuk mengembalikan respons `abort(403)` jika permission tidak valid.
  - Fungsi `user_has_role`:
    - Mengecek apakah pengguna yang terautentikasi memiliki salah satu role dari daftar yang diberikan.
    - Membandingkan nama role pengguna dengan array input menggunakan mekanisme intersect.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
Daeng Deni Mardaeni
2025-06-22 10:59:30 +07:00
parent df2f91cc57
commit becbf8aee2
2 changed files with 33 additions and 1 deletions

View File

@@ -0,0 +1,30 @@
<?php
use Illuminate\Support\Facades\Auth;
if (!function_exists('check_permission')) {
function check_permission(string $permission, bool $abort = true): bool
{
$user = Auth::user();
if (!$user || !$user->can($permission)) {
if ($abort) {
abort(403, 'Unauthorized');
}
return false;
}
return true;
}
}
if (!function_exists('user_has_role')) {
function user_has_role(array $roles): bool
{
$user = Auth::user();
if (!$user) return false;
return $user->roles->pluck('name')->intersect($roles)->isNotEmpty();
}
}

View File

@@ -8,7 +8,9 @@
"providers": [
"Modules\\Usermanagement\\Providers\\UsermanagementServiceProvider"
],
"files": [],
"files": [
"app/Helpers/RolePermission.php"
],
"menu": {
"main": [],
"master": [],