* * @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'); $roles = PermissionType::firstOrCreate([ 'name' => 'Roles' ]); [ $roleIndex, $roleCreate, $roleEdit, $roleDestroy ] = $this->onCRUD('roles', $roles, 'api'); $modules = PermissionType::firstOrCreate([ // Modulos 'name' => 'Módulos' ]); [ $moduleIndex, $moduleCreate, $moduleEdit, $moduleDestroy ] = $this->onCRUD('module', $modules, 'api'); $moduleToggleStatus = $this->onPermission( 'module.toggle-status', 'Cambiar estado del módulo', $modules, 'api' ); $devices = PermissionType::firstOrCreate([ //Dispositivos 'name' => 'Dispositivos Móviles' ]); [ $deviceIndex, $deviceCreate, $deviceEdit, $deviceDestroy ] = $this->onCRUD('devices', $devices, 'api'); $inscriptions = PermissionType::firstOrCreate([ // Inscripciones de vehículos 'name' => 'Proceso de Sustitución por primera vez' ]); $inscriptionVehicle = $this->onPermission( 'inscription.vehicle', 'Inscribir vehículo', $inscriptions, 'api' ); $inscriptionSearch = $this->onPermission( 'inscription.search', 'Buscar registros', $inscriptions, 'api' ); $inscriptionStolen = $this->onPermission( 'inscription.stolen', 'Marcar como robado', $inscriptions, 'api' ); $cancellations = PermissionType::firstOrCreate([ 'name' => 'Cancelaciones' ]); $cancellationCancel = $this->onPermission( 'cancellations.cancel', 'Cancelar constancia', $cancellations, 'api' ); $updates = PermissionType::firstOrCreate([ 'name' => 'Actualizar Registro' ]); $updateVehicleData = $this->onPermission( 'updates.vehicle-data', 'Consultar datos de vehículo', $updates, 'api' ); $updateVehicleUpdate = $this->onPermission( 'updates.vehicle-update', 'Actualizar datos de vehículo', $updates, 'api' ); $records = PermissionType::firstOrCreate([ 'name' => 'Generar Formatos' ]); $recordGeneratePdf = $this->onPermission( 'records.generate-pdf', 'Generar PDF de expediente', $records, 'api' ); $recordGeneratePdfVerification = $this->onPermission( 'records.generate-pdf-verification', 'Generar PDF de verificación', $records, 'api' ); $recordGeneratePdfConstancia = $this->onPermission( 'records.generate-pdf-constancia', 'Generar PDF de constancia', $records, 'api' ); $recordGeneratePdfSubtitution = $this->onPermission( 'records.generate-pdf-substitution', 'Generar PDF constancia sustitución', $records, 'api' ); $recordGeneratePdfDamaged = $this->onPermission( 'records.generate-pdf-damaged', 'Generar PDF constancia dañada', $records, 'api' ); $packages = PermissionType::firstOrCreate([ 'name' => 'Cajas' ]); [ $packageIndex, $packageCreate, $packageEdit, $packageDestroy ] = $this->onCRUD('packages', $packages, 'api'); $tags = PermissionType::firstOrCreate([ 'name' => 'Constancias de Inscripción' ]); [ $tagIndex, $tagCreate, $tagEdit, $tagDestroy, ] = $this->onCRUD('tags', $tags, 'api'); $tagAssignToModule = $this->onPermission( 'tags.assign-to-module', 'Asignar etiquetas a módulo', $tags, '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, $moduleIndex, //Módulos $moduleCreate, $moduleEdit, $moduleDestroy, $moduleToggleStatus, $deviceIndex, //Dispositivos $deviceCreate, $deviceEdit, $deviceDestroy, $inscriptionVehicle, //Inscripcion de vehículos $inscriptionSearch, $inscriptionStolen, $cancellationCancel, //Cancelacion de constancia $updateVehicleData, //Actualizaciones de vehículo $updateVehicleUpdate, $recordGeneratePdf, //Expedientes $recordGeneratePdfVerification, $recordGeneratePdfConstancia, $recordGeneratePdfSubtitution, $recordGeneratePdfDamaged, $packageIndex, //Paquetes $packageCreate, $packageEdit, $packageDestroy, $tagIndex, //Etiquetas $tagCreate, $tagEdit, $tagDestroy ); // Encargado Role::updateOrCreate([ 'name' => 'encargado', 'description' => 'Encargado', 'guard_name' => 'api' ])->syncPermissions( $userIndex, $roleIndex, $deviceIndex, //Dispositivos $deviceCreate, $deviceEdit, $deviceDestroy, $inscriptionVehicle, //Inscripcion de vehículos $inscriptionSearch, $inscriptionStolen, $cancellationCancel, //Cancelacion de constancia $updateVehicleData, //Actualizaciones de vehículo $updateVehicleUpdate, $recordGeneratePdf, //Expedientes $recordGeneratePdfVerification, $recordGeneratePdfConstancia, $recordGeneratePdfSubtitution, $recordGeneratePdfDamaged, $packageIndex, //Paquetes $packageCreate, $packageEdit, $packageDestroy, $tagIndex, //Etiquetas $tagCreate, $tagEdit, $tagDestroy, $tagAssignToModule ); // Capturista Role::updateOrCreate([ 'name' => 'capturista', 'description' => 'Capturista', 'guard_name' => 'api' ])->syncPermissions( $userIndex, $inscriptionVehicle, //Inscripcion de vehículos $inscriptionSearch, $inscriptionStolen, $updateVehicleData, //Actualizaciones de vehículo $updateVehicleUpdate, ); // Perito Role::updateOrCreate([ 'name' => 'perito', 'description' => 'Perito', 'guard_name' => 'api' ])->syncPermissions( $userIndex, $inscriptionVehicle, //Inscripcion de vehículos $inscriptionSearch, $inscriptionStolen, $updateVehicleData, //Actualizaciones de vehículo $updateVehicleUpdate, ); } }