-
app/Console/Commands/CreateFirstUser.php
Open in GitHubuse FireflyIII\Repositories\User\UserRepositoryInterface; use Illuminate\Console\Command; use Illuminate\Support\Facades\Hash; use Str; class CreateFirstUser extends Command { protected $description = 'Creates a new user and gives admin rights. Outputs the password on the command line. Strictly for testing.'; protected $signature = 'firefly-iii:create-first-user {email}'; private UserRepositoryInterface $repository; public function handle(): int { if ('testing' !== env('APP_ENV', 'local')) { $this->error('This command only works in the testing environment.'); return 1; } $this->stupidLaravel(); $count = $this->repository->count(); if ($count > 0) { $this->error('Already have more than zero users in DB.'); return 1; } $data = [ 'blocked' => false, 'blocked_code' => null, 'email' => $this->argument('email'), 'role' => 'owner', ]; $password = Str::random(24); $user = $this->repository->store($data); $user->password = Hash::make($password); $user->save(); $user->setRememberToken(Str::random(60)); $this->info(sprintf('Created new admin user (ID #%d) with email address "%s" and password "%s".', $user->id, $user->email, $password)); $this->error('Change this password.'); return 0; } private function stupidLaravel(): void { $this->repository = app(UserRepositoryInterface::class); } }