fix(auth): scope email uniqueness to active users

This commit is contained in:
2026-09-03 09:59:21 -03:00
parent ddb8c3743f
commit 0baad641d5
7 changed files with 73 additions and 6 deletions

View File

@@ -19,7 +19,7 @@ use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
#[Fillable(['nombre_apellido', 'email', 'password', 'dni', 'telefono', 'google_id', 'rol_codigo', 'tenant_codigo'])]
#[Hidden(['password', 'remember_token'])]
#[Hidden(['password', 'remember_token', 'active_email'])]
class User extends Authenticatable
{
/** @use HasFactory<UserFactory> */

View File

@@ -21,7 +21,13 @@ class RegisterUserRequest extends FormRequest
return [
'tenant_codigo' => ['nullable', 'string', Rule::exists('tenants', 'codigo')],
'nombre_apellido' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', Rule::unique('users', 'email')],
'email' => [
'required',
'string',
'email',
'max:255',
Rule::unique('users', 'email')->whereNull('deleted_at'),
],
'password' => ['required', 'string', 'confirmed', Password::min(8)->mixedCase()->symbols()],
'dni' => ['nullable', 'string', 'max:255'],
'telefono' => ['nullable', 'string', 'max:255'],

View File

@@ -4,6 +4,7 @@ namespace App\Domains\Auth\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
use Illuminate\Validation\Rules\Password;
class UpdateProfileRequest extends FormRequest
{
@@ -19,11 +20,13 @@ class UpdateProfileRequest extends FormRequest
'email' => [
'required',
'email',
Rule::unique('users', 'email')->ignore($this->user()->id),
Rule::unique('users', 'email')
->whereNull('deleted_at')
->ignore($this->user()->id),
],
'dni' => ['nullable', 'string', 'regex:/^[0-9]{7,8}$/'],
'telefono' => ['nullable', 'string', 'regex:/^\+?[0-9\s\-]+$/'],
'password' => ['nullable', 'string', \Illuminate\Validation\Rules\Password::min(8)->mixedCase()->symbols()],
'password' => ['nullable', 'string', Password::min(8)->mixedCase()->symbols()],
];
}
}

View File

@@ -23,7 +23,12 @@ class StoreStaffRequest extends FormRequest
return [
'nombre_apellido' => ['required', 'string', 'max:255'],
'dni' => ['required', 'string', 'max:50'],
'email' => ['required', 'email', 'max:255', 'unique:users,email'],
'email' => [
'required',
'email',
'max:255',
Rule::unique('users', 'email')->whereNull('deleted_at'),
],
'category_ids' => $categoryRules,
'category_ids.*' => ['integer', 'distinct', Rule::exists('categorias', 'id')],
];

View File

@@ -28,7 +28,9 @@ class UpdateStaffRequest extends FormRequest
'required',
'email',
'max:255',
Rule::unique('users', 'email')->ignore($staffId),
Rule::unique('users', 'email')
->whereNull('deleted_at')
->ignore($staffId),
],
'category_ids' => $categoryRules,
'category_ids.*' => ['integer', 'distinct', Rule::exists('categorias', 'id')],