X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/ffc1aa873ed8912c1400d83191d2b1485e59fca3..refs/pull/3039/head:/app/Console/Commands/CreateAdmin.php diff --git a/app/Console/Commands/CreateAdmin.php b/app/Console/Commands/CreateAdmin.php index 6bfc54469..149444420 100644 --- a/app/Console/Commands/CreateAdmin.php +++ b/app/Console/Commands/CreateAdmin.php @@ -4,6 +4,7 @@ namespace BookStack\Console\Commands; use BookStack\Auth\UserRepo; use Illuminate\Console\Command; +use Symfony\Component\Console\Command\Command as SymfonyCommand; class CreateAdmin extends Command { @@ -28,8 +29,6 @@ class CreateAdmin extends Command /** * Create a new command instance. - * - * @param UserRepo $userRepo */ public function __construct(UserRepo $userRepo) { @@ -40,8 +39,9 @@ class CreateAdmin extends Command /** * Execute the console command. * - * @return mixed * @throws \BookStack\Exceptions\NotFoundException + * + * @return mixed */ public function handle() { @@ -49,37 +49,46 @@ class CreateAdmin extends Command if (empty($email)) { $email = $this->ask('Please specify an email address for the new admin user'); } - if (strlen($email) < 5 || !filter_var($email, FILTER_VALIDATE_EMAIL)) { - return $this->error('Invalid email address provided'); + if (mb_strlen($email) < 5 || !filter_var($email, FILTER_VALIDATE_EMAIL)) { + $this->error('Invalid email address provided'); + + return SymfonyCommand::FAILURE; } if ($this->userRepo->getByEmail($email) !== null) { - return $this->error('A user with the provided email already exists!'); + $this->error('A user with the provided email already exists!'); + + return SymfonyCommand::FAILURE; } $name = trim($this->option('name')); if (empty($name)) { $name = $this->ask('Please specify an name for the new admin user'); } - if (strlen($name) < 2) { - return $this->error('Invalid name provided'); + if (mb_strlen($name) < 2) { + $this->error('Invalid name provided'); + + return SymfonyCommand::FAILURE; } $password = trim($this->option('password')); if (empty($password)) { $password = $this->secret('Please specify a password for the new admin user'); } - if (strlen($password) < 5) { - return $this->error('Invalid password provided, Must be at least 5 characters'); - } + if (mb_strlen($password) < 5) { + $this->error('Invalid password provided, Must be at least 5 characters'); + return SymfonyCommand::FAILURE; + } $user = $this->userRepo->create(['email' => $email, 'name' => $name, 'password' => $password]); $this->userRepo->attachSystemRole($user, 'admin'); - $this->userRepo->downloadGravatarToUserAvatar($user); + $this->userRepo->downloadAndAssignUserAvatar($user); $user->email_confirmed = true; $user->save(); $this->info("Admin account with email \"{$user->email}\" successfully created!"); + + return SymfonyCommand::SUCCESS; } }