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