Refactor RoleSeeder to use updateOrCreate for permissions; remove unused vehicle permissions; update docker-compose to remove port mapping; add migration to refresh permissions and seed roles
This commit is contained in:
parent
27807c1f29
commit
703ccfe1d7
@ -61,6 +61,12 @@ public function show(Role $role)
|
||||
*/
|
||||
public function update(RoleUpdateRequest $request, Role $role)
|
||||
{
|
||||
if(in_array($role->id, [1, 2])) {
|
||||
return ApiResponse::BAD_REQUEST->response([
|
||||
'message' => 'No se puede modificar este rol'
|
||||
]);
|
||||
}
|
||||
|
||||
$role->update($request->all());
|
||||
|
||||
return ApiResponse::OK->response();
|
||||
@ -71,6 +77,11 @@ public function update(RoleUpdateRequest $request, Role $role)
|
||||
*/
|
||||
public function destroy(Role $role)
|
||||
{
|
||||
if(in_array($role->id, [1, 2])) {
|
||||
return ApiResponse::BAD_REQUEST->response([
|
||||
'message' => 'No se puede eliminar este rol'
|
||||
]);
|
||||
}
|
||||
$role->delete();
|
||||
|
||||
return ApiResponse::OK->response();
|
||||
|
||||
@ -70,6 +70,10 @@
|
||||
"composer run post-create-project-cmd",
|
||||
"@php artisan storage:link"
|
||||
],
|
||||
"db:update": [
|
||||
"@php artisan migrate",
|
||||
"@php artisan migrate --path=database/migrations/data"
|
||||
],
|
||||
"db:dev": [
|
||||
"@php artisan migrate:fresh --seeder=DevSeeder",
|
||||
"@php artisan passport:client --personal --name=Holos"
|
||||
|
||||
519
composer.lock
generated
519
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
|
||||
|
||||
DB::statement('SET FOREIGN_KEY_CHECKS=0;');
|
||||
DB::table('role_has_permissions')->truncate();
|
||||
DB::table('model_has_permissions')->truncate();
|
||||
\Spatie\Permission\Models\Permission::truncate();
|
||||
DB::statement('SET FOREIGN_KEY_CHECKS=1;');
|
||||
|
||||
Artisan::call('db:seed', ['--class' => 'RoleSeeder', '--force' => true]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
};
|
||||
@ -25,7 +25,7 @@ class RoleSeeder extends Seeder
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$users = PermissionType::firstOrCreate([
|
||||
$users = PermissionType::updateOrCreate([
|
||||
'name' => 'Usuarios'
|
||||
]);
|
||||
|
||||
@ -37,9 +37,8 @@ public function run(): void
|
||||
] = $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([
|
||||
$roles = PermissionType::updateOrCreate([
|
||||
'name' => 'Roles'
|
||||
]);
|
||||
|
||||
@ -51,7 +50,7 @@ public function run(): void
|
||||
] = $this->onCRUD('roles', $roles, 'api');
|
||||
|
||||
// Arcos
|
||||
$arcos = PermissionType::firstOrCreate([
|
||||
$arcos = PermissionType::updateOrCreate([
|
||||
'name' => 'Gestión de Arcos'
|
||||
]);
|
||||
|
||||
@ -66,28 +65,23 @@ public function run(): void
|
||||
$arcosDetecciones = $this->onPermission('arcos.detecciones.dia', 'Ver detecciones del día de un arco', $arcos, 'api');
|
||||
|
||||
//Consulta de vehículo
|
||||
$vehicles = PermissionType::firstOrCreate([
|
||||
$vehicles = PermissionType::updateOrCreate([
|
||||
'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');
|
||||
|
||||
$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::firstOrCreate([
|
||||
Role::updateOrCreate([
|
||||
'name' => 'developer',
|
||||
'description' => 'Desarrollador',
|
||||
'guard_name' => 'api'
|
||||
])->syncPermissions(Permission::all());
|
||||
|
||||
// Administrador
|
||||
Role::firstOrCreate([
|
||||
Role::updateOrCreate([
|
||||
'name' => 'admin',
|
||||
'description' => 'Administrador',
|
||||
'guard_name' => 'api'
|
||||
@ -97,7 +91,6 @@ public function run(): void
|
||||
$userEdit,
|
||||
$userDestroy,
|
||||
$userSettings,
|
||||
$userOnline,
|
||||
$roleIndex,
|
||||
$roleCreate,
|
||||
$roleEdit,
|
||||
@ -108,38 +101,30 @@ public function run(): void
|
||||
$arcoDestroy,
|
||||
$arcosToggleEstado,
|
||||
$arcosDetecciones,
|
||||
$vehiclesConsulta, //vehicles
|
||||
$vehiclesRecuperar,
|
||||
$vehiclesConsultaAlta, //vehicles
|
||||
$vehiclesDetectar,
|
||||
|
||||
);
|
||||
|
||||
Role::firstOrCreate([
|
||||
Role::updateOrCreate([
|
||||
'name' => 'supervisor',
|
||||
'description' => 'Supervisor',
|
||||
'guard_name' => 'api'
|
||||
])->syncPermissions(
|
||||
$vehiclesConsulta, //vehicles
|
||||
$vehiclesRecuperar,
|
||||
$vehiclesConsultaAlta, //vehicles
|
||||
$vehiclesDetectar,
|
||||
$vehiclesRobados,
|
||||
$vehiclesRecuperados,
|
||||
$vehiclesDetecciones
|
||||
);
|
||||
|
||||
Role::firstOrCreate([
|
||||
Role::updateOrCreate([
|
||||
'name' => 'operador',
|
||||
'description' => 'Operador',
|
||||
'guard_name' => 'api'
|
||||
])->syncPermissions(
|
||||
$vehiclesConsulta, //vehicles
|
||||
$vehiclesConsultaAlta, //vehicles
|
||||
$vehiclesDetectar,
|
||||
$vehiclesRobados,
|
||||
$vehiclesRecuperados,
|
||||
$vehiclesDetecciones
|
||||
);
|
||||
|
||||
Role::firstOrCreate([
|
||||
Role::updateOrCreate([
|
||||
'name' => 'investigador',
|
||||
'description' => 'Investigador',
|
||||
'guard_name' => 'api'
|
||||
|
||||
@ -13,8 +13,6 @@ services:
|
||||
- DB_PASSWORD=${DB_PASSWORD}
|
||||
- DB_DATABASE=${DB_DATABASE}
|
||||
- DB_PORT=${DB_PORT}
|
||||
ports:
|
||||
- "8083:8080"
|
||||
volumes:
|
||||
- ./:/var/www/arcos-backend
|
||||
- ./vendor:/var/www/arcos/vendor
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user