135 lines
3.7 KiB
PHP
135 lines
3.7 KiB
PHP
<?php namespace Database\Seeders;
|
|
/**
|
|
* @copyright (c) 2025 Notsoweb Software (https://notsoweb.com) - All Rights Reserved
|
|
*/
|
|
|
|
use App\Models\PermissionType;
|
|
use App\Models\Role;
|
|
use Illuminate\Database\Seeder;
|
|
use Notsoweb\LaravelCore\Traits\MySql\RolePermission;
|
|
use Spatie\Permission\Models\Permission;
|
|
|
|
/**
|
|
* Roles y permisos
|
|
*
|
|
* @author Moisés Cortés C. <moises.cortes@notsoweb.com>
|
|
*
|
|
* @version 1.0.0
|
|
*/
|
|
class RoleSeeder extends Seeder
|
|
{
|
|
use RolePermission;
|
|
|
|
/**
|
|
* Run the database seeds.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
$users = PermissionType::updateOrCreate([
|
|
'name' => 'Usuarios'
|
|
]);
|
|
|
|
[
|
|
$userIndex,
|
|
$userCreate,
|
|
$userEdit,
|
|
$userDestroy
|
|
] = $this->onCRUD('users', $users, 'api');
|
|
|
|
$userSettings = $this->onPermission('users.settings', 'Configuración de usuarios', $users, 'api');
|
|
|
|
$roles = PermissionType::updateOrCreate([
|
|
'name' => 'Roles'
|
|
]);
|
|
|
|
[
|
|
$roleIndex,
|
|
$roleCreate,
|
|
$roleEdit,
|
|
$roleDestroy
|
|
] = $this->onCRUD('roles', $roles, 'api');
|
|
|
|
// Arcos
|
|
$arcos = PermissionType::updateOrCreate([
|
|
'name' => 'Gestión de Arcos'
|
|
]);
|
|
|
|
[
|
|
$arcoIndex,
|
|
$arcoCreate,
|
|
$arcoEdit,
|
|
$arcoDestroy
|
|
] = $this->onCRUD('arcos', $arcos, 'api');
|
|
|
|
$arcosToggleEstado = $this->onPermission('arcos.toggle-estado', 'Activar/Desactivar arcos', $arcos, 'api');
|
|
$arcosDetecciones = $this->onPermission('arcos.detecciones.dia', 'Ver detecciones del día de un arco', $arcos, 'api');
|
|
|
|
//Consulta de vehículo
|
|
$vehicles = PermissionType::updateOrCreate([
|
|
'name' => 'Gestión de Vehículos'
|
|
]);
|
|
|
|
$vehiclesConsultaAlta = $this->onPermission('vehicles.consultar', 'Buscar un vehiculo y darle alta como Robado', $vehicles, 'api');
|
|
$vehiclesDetectar = $this->onPermission('vehicles.detectar', 'Historial de búsqueda de vehículo por placa o VIN', $vehicles, 'api');
|
|
|
|
|
|
// Desarrollador
|
|
Role::updateOrCreate([
|
|
'name' => 'developer',
|
|
'description' => 'Desarrollador',
|
|
'guard_name' => 'api'
|
|
])->syncPermissions(Permission::all());
|
|
|
|
// Administrador
|
|
Role::updateOrCreate([
|
|
'name' => 'admin',
|
|
'description' => 'Administrador',
|
|
'guard_name' => 'api'
|
|
])->syncPermissions(
|
|
$userIndex,
|
|
$userCreate,
|
|
$userEdit,
|
|
$userDestroy,
|
|
$userSettings,
|
|
$roleIndex,
|
|
$roleCreate,
|
|
$roleEdit,
|
|
$roleDestroy,
|
|
$arcoIndex, //arcos
|
|
$arcoCreate,
|
|
$arcoEdit,
|
|
$arcoDestroy,
|
|
$arcosToggleEstado,
|
|
$arcosDetecciones,
|
|
$vehiclesConsultaAlta, //vehicles
|
|
$vehiclesDetectar,
|
|
|
|
);
|
|
|
|
Role::updateOrCreate([
|
|
'name' => 'supervisor',
|
|
'description' => 'Supervisor',
|
|
'guard_name' => 'api'
|
|
])->syncPermissions(
|
|
$vehiclesConsultaAlta, //vehicles
|
|
$vehiclesDetectar,
|
|
);
|
|
|
|
Role::updateOrCreate([
|
|
'name' => 'operador',
|
|
'description' => 'Operador',
|
|
'guard_name' => 'api'
|
|
])->syncPermissions(
|
|
$vehiclesConsultaAlta, //vehicles
|
|
$vehiclesDetectar,
|
|
);
|
|
|
|
Role::updateOrCreate([
|
|
'name' => 'investigador',
|
|
'description' => 'Investigador',
|
|
'guard_name' => 'api'
|
|
])->syncPermissions(
|
|
);
|
|
}
|
|
}
|