]> BookStack Code Mirror - bookstack/blobdiff - app/Console/Commands/CreateAdmin.php
Applied StyleCI changes, added php/larastan to attribution
[bookstack] / app / Console / Commands / CreateAdmin.php
index 6bfc544698fdc2dba39ddae88f18ac4a154fc0c1..1494444205c734c31d8f493484f690ec4e472180 100644 (file)
@@ -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;
     }
 }