|
26 | 26 | use DreamFactory\Core\Utility\UpdatesSender; |
27 | 27 | use Illuminate\Support\Facades\Http; |
28 | 28 | use Carbon\Carbon; |
29 | | - |
| 29 | +use Illuminate\Validation\ValidationException; |
| 30 | +use Illuminate\Support\Arr; |
30 | 31 | /** |
31 | 32 | * User |
32 | 33 | * |
@@ -613,49 +614,45 @@ public static function resetAdminExists() |
613 | 614 | public static function createFirstAdmin(array $data) |
614 | 615 | { |
615 | 616 | Log::debug('Creating first admin user'); |
616 | | - |
617 | | - if (empty($data['username'])) { |
618 | | - $data['username'] = $data['email']; |
619 | | - } |
620 | 617 |
|
621 | | - $validationRules = [ |
| 618 | + // Default username to email if not provided |
| 619 | + $data['username'] = $data['username'] ?? $data['email']; |
| 620 | + |
| 621 | + $validator = Validator::make($data, [ |
622 | 622 | 'name' => 'required|max:255', |
623 | 623 | 'first_name' => 'required|max:255', |
624 | 624 | 'last_name' => 'required|max:255', |
625 | 625 | 'email' => 'required|email|max:255|unique:user', |
626 | 626 | 'password' => 'required|confirmed|min:16', |
627 | | - 'username' => 'min:6|unique:user,username|regex:/^\S*$/u|required', |
| 627 | + 'username' => 'required|min:6|unique:user,username|regex:/^\S*$/u', |
628 | 628 | 'phone' => 'required|max:32', |
629 | | - ]; |
630 | | - |
631 | | - $validator = Validator::make($data, $validationRules); |
| 629 | + ]); |
632 | 630 |
|
633 | 631 | if ($validator->fails()) { |
634 | | - $errors = $validator->getMessageBag()->all(); |
635 | | - $data = array_merge($data, ['errors' => $errors, 'version' => \Config::get('app.version')]); |
| 632 | + Log::debug('Validation failed', ['errors' => $validator->errors()->all()]); |
| 633 | + throw new ValidationException($validator); |
| 634 | + } |
636 | 635 |
|
637 | | - return false; |
638 | | - } else { |
639 | | - /** @type User $user */ |
640 | | - $attributes = array_only($data, ['name', 'first_name', 'last_name', 'email', 'username', 'phone']); |
641 | | - $attributes['is_active'] = 1; |
642 | | - $user = static::create($attributes); |
| 636 | + $attributes = Arr::only($data, ['name', 'first_name', 'last_name', 'email', 'username', 'phone']); |
| 637 | + $attributes['is_active'] = 1; |
643 | 638 |
|
644 | | - $user->password = array_get($data, 'password'); |
645 | | - $user->is_sys_admin = 1; |
646 | | - $user->save(); |
| 639 | + /** @var User $user */ |
| 640 | + $user = static::create($attributes); |
| 641 | + $user->password = Arr::get($data, 'password'); |
| 642 | + $user->is_sys_admin = 1; |
| 643 | + $user->save(); |
647 | 644 |
|
648 | | - InstanceId::getInstanceIdOrGenerate(); |
| 645 | + InstanceId::getInstanceIdOrGenerate(); |
649 | 646 |
|
650 | | - // Register user |
651 | | - RegisterContact::registerUser($user); |
652 | | - // Reset admin_exists flag in cache. |
653 | | - \Cache::forever('admin_exists', true); |
| 647 | + // Register user |
| 648 | + RegisterContact::registerUser($user); |
654 | 649 |
|
655 | | - UpdatesSender::sendFreshInstanceData($data, true); |
| 650 | + // Reset admin_exists flag in cache |
| 651 | + \Cache::forever('admin_exists', true); |
656 | 652 |
|
657 | | - return $user; |
658 | | - } |
| 653 | + UpdatesSender::sendFreshInstanceData($data, true); |
| 654 | + |
| 655 | + return $user; |
659 | 656 | } |
660 | 657 |
|
661 | 658 | public function save(array $options = []) |
|
0 commit comments