* * @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( ); } }