laravel-vuexy-admin/Services/RBACService.php

29 lines
855 B
PHP
Raw Normal View History

2025-03-07 00:29:07 -06:00
<?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']);
}
}
}