From 3560965ffc0a4354df8371b7a911ee1f0a572c05 Mon Sep 17 00:00:00 2001 From: panabonic Date: Mon, 18 Dec 2023 09:51:22 +0300 Subject: [PATCH] minor fix --- app/Models/User.php | 15 +++++++++++---- app/Services/Forms/Users/UserForms.php | 1 - 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/Models/User.php b/app/Models/User.php index bb6d996..7575066 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -115,15 +115,17 @@ class User extends Authenticatable { public static function getByData($data, $triggerEvent = false) { $result = false; if ($email = trim($data['email'] ?? null)) { - $result = self::query()->where(['email' => $email])->first(); + $result = self::query()->where(['email' => $email])->withTrashed()->first(); if (!$result) { - $password = $data['password'] ?? (App::environment('local') ? 'Qwerty1!' : Str::random(8)); + $password = $data['password'] ?? self::makeDefaultPassword(); $result = self::create(['email' => $email, 'password' => $password]); - $result->update(['name' => trim($data['name'] ?? null), 'phone' => trim($data['phone'] ?? null)]); - $result->assignRole($data['role'] ?? 'User'); + $result->update(['name' => trim($data['name'] ?? null), 'phone' => trim($data['phone'] ?? null), 'position' => $data['position'] ?? null]); + $result->syncRoles($data['role'] ?? 'User'); if ($triggerEvent) event(new UserRegistered($result, $password)); } else { if ($val = trim($data['phone'] ?? null)) $result->update(['phone' => $val]); + if ($val = trim($data['position'] ?? null)) $result->update(['position' => $val]); + if ($result->trashed()) $result->restore(); } if ($val = $data['avatar'] ?? null) $result->setAvatar($val); } @@ -153,6 +155,11 @@ class User extends Authenticatable { return Hash::check($password, $this->password); } + public static function makeDefaultPassword(): string { + return App::environment('production') ? Str::random(8) : 'Qwerty1!'; + } + + public function sendPasswordResetNotification($token) { Mail::to($this->email)->send(new PasswordResetRequested($this, $token)); } diff --git a/app/Services/Forms/Users/UserForms.php b/app/Services/Forms/Users/UserForms.php index a7fe0be..06b5163 100644 --- a/app/Services/Forms/Users/UserForms.php +++ b/app/Services/Forms/Users/UserForms.php @@ -76,7 +76,6 @@ class UserForms extends FormsService { public function store(array $data): ?JsonResponse { $model = User::getByData($data, true); - $model->syncRoles($data['role'] ?? null); return fractal($model, new UserTransformer())->respond(); }