Agregado role_id a User

This commit is contained in:
Alejandro Tasistro 2025-05-15 00:32:08 -03:00
parent bed975e944
commit fc367c05a3
4 changed files with 66 additions and 27 deletions

View file

@ -16,7 +16,7 @@ class User extends Authenticatable
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
'name', 'email', 'password', 'role_id',
];
/**

View file

@ -0,0 +1,43 @@
<?php
use App\User;
use App\UserRole;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AgregarRolAUser extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->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');
});
}
}

View file

@ -1,8 +1,10 @@
<?php
use App\Helpers\CsvHelper as CsvHelperAlias;
use App\Helpers\CsvHelper;
use App\GrupoDeCompra;
use App\User;
use App\UserRole;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
class GrupoDeCompraSeeder extends Seeder
@ -14,9 +16,10 @@ class GrupoDeCompraSeeder extends Seeder
*/
public function run()
{
$registros = CsvHelperAlias::getRecords('csv/barrios.csv');
$registros = CsvHelper::getRecords('csv/barrios.csv');
$gdcToInsert = [];
$usersToInsert = [];
$roles = UserRole::where('nombre', 'barrio')->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);
}
}

View file

@ -1,5 +1,7 @@
<?php
use App\User;
use App\UserRole;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
@ -16,16 +18,15 @@ class UserSeeder extends Seeder
$usersToInsert = [];
$usersToInsert[] = [
'name' => '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);
}
}