fix parent, teacher and admin pages
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Http\Requests\Users;
|
||||
|
||||
use App\Http\Requests\ApiFormRequest;
|
||||
use App\Models\User;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class UserUpdateRequest extends ApiFormRequest
|
||||
@@ -14,14 +15,30 @@ class UserUpdateRequest extends ApiFormRequest
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$userId = (int) ($this->route('userId') ?? 0);
|
||||
$userId = (int) (
|
||||
$this->route('userId')
|
||||
?? $this->route('id')
|
||||
?? $this->input('id')
|
||||
?? 0
|
||||
);
|
||||
$currentEmail = '';
|
||||
|
||||
if ($userId > 0) {
|
||||
$currentEmail = strtolower(trim((string) (User::query()->whereKey($userId)->value('email') ?? '')));
|
||||
}
|
||||
|
||||
$emailRules = ['sometimes', 'email', 'max:255'];
|
||||
$incomingEmail = strtolower(trim((string) $this->input('email', '')));
|
||||
if ($incomingEmail !== '' && $incomingEmail !== $currentEmail) {
|
||||
$emailRules[] = Rule::unique('users', 'email')->ignore($userId);
|
||||
}
|
||||
|
||||
return [
|
||||
'firstname' => ['sometimes', 'string', 'max:255'],
|
||||
'lastname' => ['sometimes', 'string', 'max:255'],
|
||||
'gender' => ['sometimes', 'nullable', 'string', Rule::in(['Male', 'Female', 'male', 'female', 'MALE', 'FEMALE'])],
|
||||
'cellphone' => ['sometimes', 'string', 'max:25'],
|
||||
'email' => ['sometimes', 'email', 'max:255', Rule::unique('users', 'email')->ignore($userId)],
|
||||
'email' => $emailRules,
|
||||
'address_street' => ['sometimes', 'string', 'max:255'],
|
||||
'apt' => ['sometimes', 'nullable', 'string', 'max:25'],
|
||||
'city' => ['sometimes', 'string', 'max:255'],
|
||||
|
||||
Reference in New Issue
Block a user