<?php namespace Koneko\VuexyAdmin\Services; use Spatie\Permission\Models\Role; use Spatie\Permission\Models\Permission; use Illuminate\Support\Facades\File; class RBACService { public static function loadRolesAndPermissions() { $filePath = database_path('data/rbac-config.json'); if (!File::exists($filePath)) { throw new \Exception("Archivo de configuración RBAC no encontrado."); } $rbacData = json_decode(File::get($filePath), true); foreach ($rbacData['permissions'] as $perm) { Permission::updateOrCreate(['name' => $perm]); } foreach ($rbacData['roles'] as $name => $role) { $roleInstance = Role::updateOrCreate(['name' => $name, 'style' => $role['style']]); $roleInstance->syncPermissions($role['permissions']); } } }