fix: Fix AppUser Bo Requests email validation

This commit is contained in:
Vincent BRIDIER 2025-06-12 16:50:56 +02:00
parent 8696765b7e
commit 3b93c4c49b
No known key found for this signature in database
GPG key ID: 8571BFA20420D512
3 changed files with 5 additions and 19 deletions

View file

@ -4,6 +4,7 @@ namespace App\Http\Requests\Bo\AppUser;
use App\Enums\AppUserRolesEnum;
use App\Models\AppUser;
use Illuminate\Database\Query\Builder;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Str;
@ -49,7 +50,7 @@ class StoreAppUserRequest extends FormRequest
'email' => [
'required',
'email:rfc,strict,dns,spoof,filter',
Rule::unique('app_users', 'email')->where('tenant_id', tenant('id'))
Rule::unique('app_users', 'email')->where(fn (Builder $query) => $query->where('tenant_id', tenant('id')))
],
'password' => [
'required',

View file

@ -5,6 +5,7 @@ namespace App\Http\Requests\Bo\AppUser;
use Illuminate\Support\Facades\Gate;
use Illuminate\Validation\Rule;
use Illuminate\Validation\Rules\Password;
use Illuminate\Database\Query\Builder;
class UpdateAppUserRequest extends StoreAppUserRequest
{
@ -32,8 +33,8 @@ class UpdateAppUserRequest extends StoreAppUserRequest
'max:255',
'email:rfc,dns',
Rule::unique('app_users', 'email')
->where('tenant_id', tenant('id'))
->ignore($this->route('app_user')->getKey()),
->where(fn (Builder $query) => $query->where('tenant_id', tenant('id')))
->ignore($this->route('app_user')->getKey())
],
'password' => [
'sometimes', 'nullable', 'required_with:password_confirmation', 'confirmed', 'max:255',

View file

@ -7,7 +7,6 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Hash;
use Stancl\Tenancy\Database\Concerns\BelongsToTenant;
use Uwil\LaravelCommon\Helpers\ToolboxHelper;
/**
* @property integer $id App user id.
@ -70,7 +69,6 @@ class AppUser extends Model
protected static function booted(): void
{
static::creating(function (self $model) {
self::assertFieldIsUnique('email', $model->email);
self::setOrder($model);
self::updatePassword($model);
});
@ -94,20 +92,6 @@ class AppUser extends Model
}
}
/**
* Asserts using validation that the field is unique.
*
* @param string $nameField
* @param string $valueField
* @param integer|null $id
* @return void
*/
private static function assertFieldIsUnique(string $nameField, string $valueField, ?int $id = null): void
{
$table = (new self())->getTable();
ToolboxHelper::assertFieldIsUnique($table, $nameField, $valueField, $id);
}
/**
* Set order after the last element of the list.
*