. */ declare(strict_types=1); namespace FireflyIII\Http\Controllers\System; use Artisan; use FireflyIII\Http\Controllers\Controller; use Laravel\Passport\Passport; use phpseclib\Crypt\RSA; use Log; use Symfony\Component\Console\Output\BufferedOutput; /** * Class InstallController */ class InstallController extends Controller { /** * InstallController constructor. */ public function __construct() { // empty on purpose. } /** * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function migrate() { Log::debug('Am now calling migrate routine...'); $output = new BufferedOutput(); Artisan::call('migrate', ['--seed' => true]); $result = $output->fetch(); Log::debug($result); // create keys manually because for some reason the passport namespace // does not exist $rsa = new RSA(); $keys = $rsa->createKey(4096); list($publicKey, $privateKey) = [ Passport::keyPath('oauth-public.key'), Passport::keyPath('oauth-private.key'), ]; if ((file_exists($publicKey) || file_exists($privateKey))) { return redirect(route('index')); } file_put_contents($publicKey, array_get($keys, 'publickey')); file_put_contents($privateKey, array_get($keys, 'privatekey')); return redirect(route('index')); } }