From fc367c05a3ad56d9fa2277d8f06a9241168cd165 Mon Sep 17 00:00:00 2001 From: ale Date: Thu, 15 May 2025 00:32:08 -0300 Subject: [PATCH] Agregado role_id a User --- app/User.php | 2 +- .../2025_05_15_023829_agregar_rol_a_user.php | 43 +++++++++++++++++++ database/seeds/GrupoDeCompraSeeder.php | 39 ++++++++--------- database/seeds/UserSeeder.php | 9 ++-- 4 files changed, 66 insertions(+), 27 deletions(-) create mode 100644 database/migrations/2025_05_15_023829_agregar_rol_a_user.php diff --git a/app/User.php b/app/User.php index 5f45a74..64ea860 100644 --- a/app/User.php +++ b/app/User.php @@ -16,7 +16,7 @@ class User extends Authenticatable * @var array */ protected $fillable = [ - 'name', 'email', 'password', + 'name', 'email', 'password', 'role_id', ]; /** diff --git a/database/migrations/2025_05_15_023829_agregar_rol_a_user.php b/database/migrations/2025_05_15_023829_agregar_rol_a_user.php new file mode 100644 index 0000000..d6e0673 --- /dev/null +++ b/database/migrations/2025_05_15_023829_agregar_rol_a_user.php @@ -0,0 +1,43 @@ +foreignId('role_id'); + }); + + $barrio = UserRole::where('nombre', 'barrio')->first(); + $admin_barrio = UserRole::where('nombre', 'admin_barrio')->first(); + $comision = UserRole::where('nombre', 'comision')->first(); + User::all()->each(function($user) use ($barrio, $comision, $admin_barrio) { + $user->role_id = $user->is_admin ? $admin_barrio->id : + ($user->is_compras ? $comision->id : $barrio->id); + $user->save(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('user', function (Blueprint $table) { + $table->dropForeign('role_id'); + }); + } +} diff --git a/database/seeds/GrupoDeCompraSeeder.php b/database/seeds/GrupoDeCompraSeeder.php index 9e163ef..b714316 100644 --- a/database/seeds/GrupoDeCompraSeeder.php +++ b/database/seeds/GrupoDeCompraSeeder.php @@ -1,8 +1,10 @@ orWhere('nombre', 'barrio_admin')->get(); foreach($registros as $key => $registro){ $gdcToInsert[] = [ @@ -27,29 +30,21 @@ class GrupoDeCompraSeeder extends Seeder 'referente_finanzas' => $registro['referente'] ]; - $usersToInsert[] = [ - 'name' => $registro['barrio'], - 'password' => Hash::make("123"), - "is_admin" => 0, - 'grupo_de_compra_id' => $key - ]; - - $usersToInsert[] = [ - 'name' => $registro['barrio'] . "_admin", - 'password' => Hash::make("123"), - "is_admin" => 1, - 'grupo_de_compra_id' => $key - ]; + foreach($roles as $role) { + $usersToInsert[] = [ + 'name' => $registro['barrio'], + 'password' => Hash::make("123"), + 'role_id' => $role->id, + 'grupo_de_compra_id' => $key, + 'is_admin' => $role->nombre != 'barrio' ? 0 : 1, + ]; + } } foreach (array_chunk($gdcToInsert,DatabaseSeeder::CHUNK_SIZE) as $chunk) - { - DB::table('grupos_de_compra')->insert($chunk); - } + GrupoDeCompra::insert($chunk); foreach (array_chunk($usersToInsert,DatabaseSeeder::CHUNK_SIZE) as $chunk) - { - DB::table('users')->insert($chunk); - } + User::insert($chunk); } } diff --git a/database/seeds/UserSeeder.php b/database/seeds/UserSeeder.php index f2164c1..4ed365d 100644 --- a/database/seeds/UserSeeder.php +++ b/database/seeds/UserSeeder.php @@ -1,5 +1,7 @@ 'compras', + 'name' => 'comi', 'password' => Hash::make("123"), + 'role_id' => UserRole::where('nombre', 'comision')->first()->id, 'is_admin' => 0, 'is_compras' => 1 ]; foreach (array_chunk($usersToInsert,DatabaseSeeder::CHUNK_SIZE) as $chunk) - { - DB::table('users')->insert($chunk); - } + User::insert($chunk); } }