150 lines
4.5 KiB
PHP
150 lines
4.5 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::firstOrCreate([
|
|
'name' => 'Usuarios'
|
|
]);
|
|
|
|
[
|
|
$userIndex,
|
|
$userCreate,
|
|
$userEdit,
|
|
$userDestroy
|
|
] = $this->onCRUD('users', $users, 'api');
|
|
|
|
$userSettings = $this->onPermission('users.settings', 'Configuración de usuarios', $users, 'api');
|
|
$userOnline = $this->onPermission('users.online', 'Usuarios en linea', $users, 'api');
|
|
|
|
$roles = PermissionType::firstOrCreate([
|
|
'name' => 'Roles'
|
|
]);
|
|
|
|
[
|
|
$roleIndex,
|
|
$roleCreate,
|
|
$roleEdit,
|
|
$roleDestroy
|
|
] = $this->onCRUD('roles', $roles, 'api');
|
|
|
|
// Arcos
|
|
$arcos = PermissionType::firstOrCreate([
|
|
'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::firstOrCreate([
|
|
'name' => 'Gestión de Vehículos'
|
|
]);
|
|
|
|
$vehiclesConsulta = $this->onPermission('vehicles.consultar', 'Consultar vehículo por placa o VIN', $vehicles, 'api');
|
|
$vehiclesRecuperar = $this->onPermission('vehicles.recuperar', 'Marcar vehículo como recuperado', $vehicles, 'api');
|
|
$vehiclesDetectar = $this->onPermission('vehicles.detectar', 'Buscar vehículo por placa o VIN', $vehicles, 'api');
|
|
$vehiclesRobados = $this->onPermission('vehicles.robados', 'Listar vehículos robados', $vehicles, 'api');
|
|
$vehiclesRecuperados = $this->onPermission('vehicles.recuperados', 'Listar vehículos recuperados', $vehicles, 'api');
|
|
$vehiclesDetecciones = $this->onPermission('vehicles.detecciones', 'Listar todas las detecciones', $vehicles, 'api');
|
|
|
|
|
|
|
|
// Desarrollador
|
|
Role::firstOrCreate([
|
|
'name' => 'developer',
|
|
'description' => 'Desarrollador',
|
|
'guard_name' => 'api'
|
|
])->syncPermissions(Permission::all());
|
|
|
|
// Administrador
|
|
Role::firstOrCreate([
|
|
'name' => 'admin',
|
|
'description' => 'Administrador',
|
|
'guard_name' => 'api'
|
|
])->syncPermissions(
|
|
$userIndex,
|
|
$userCreate,
|
|
$userEdit,
|
|
$userDestroy,
|
|
$userSettings,
|
|
$userOnline,
|
|
$roleIndex,
|
|
$roleCreate,
|
|
$roleEdit,
|
|
$roleDestroy,
|
|
$arcoIndex, //arcos
|
|
$arcoCreate,
|
|
$arcoEdit,
|
|
$arcoDestroy,
|
|
$arcosToggleEstado,
|
|
$arcosDetecciones,
|
|
$vehiclesConsulta, //vehicles
|
|
$vehiclesRecuperar,
|
|
$vehiclesDetectar,
|
|
|
|
);
|
|
|
|
Role::firstOrCreate([
|
|
'name' => 'supervisor',
|
|
'description' => 'Supervisor',
|
|
'guard_name' => 'api'
|
|
])->syncPermissions(
|
|
$vehiclesConsulta, //vehicles
|
|
$vehiclesRecuperar,
|
|
$vehiclesDetectar,
|
|
$vehiclesRobados,
|
|
$vehiclesRecuperados,
|
|
$vehiclesDetecciones
|
|
);
|
|
|
|
Role::firstOrCreate([
|
|
'name' => 'operador',
|
|
'description' => 'Operador',
|
|
'guard_name' => 'api'
|
|
])->syncPermissions(
|
|
$vehiclesConsulta, //vehicles
|
|
$vehiclesDetectar,
|
|
$vehiclesRobados,
|
|
$vehiclesRecuperados,
|
|
$vehiclesDetecciones
|
|
);
|
|
|
|
Role::firstOrCreate([
|
|
'name' => 'investigador',
|
|
'description' => 'Investigador',
|
|
'guard_name' => 'api'
|
|
])->syncPermissions(
|
|
);
|
|
}
|
|
}
|