diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index ae22a4c..f658255 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -4,7 +4,6 @@ namespace App\Providers;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\Blade;
-use Illuminate\Support\Facades\Cache;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
@@ -30,17 +29,22 @@ class AppServiceProvider extends ServiceProvider
if (! $user) {
return false;
}
- if ($user->role === 'admin') {
- return true;
+
+ return $user->canPermission($permission);
+ });
+
+ // Blade directive: @canAnyPermission('a', 'b', ...) — true jika user punya SALAH SATU permission
+ Blade::if('canAnyPermission', function (string ...$permissions) {
+ $user = auth()->user();
+ if (! $user) {
+ return false;
}
- $rolePermissions = Cache::remember('role_permissions:' . $user->role, 3600, function () use ($user) {
- return \DB::table('role_permissions')
- ->join('permissions', 'role_permissions.permission_id', '=', 'permissions.id')
- ->where('role_permissions.role', $user->role)
- ->pluck('permissions.key')
- ->toArray();
- });
- return in_array($permission, $rolePermissions);
+ foreach ($permissions as $permission) {
+ if ($user->canPermission($permission)) {
+ return true;
+ }
+ }
+ return false;
});
}
}
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index 5034a8b..4fbedf6 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -171,17 +171,23 @@
Master Data