. */ declare(strict_types=1); namespace FireflyIII\Http\Controllers\System; use Artisan; use FireflyIII\Http\Controllers\Controller; use Laravel\Passport\Passport; use phpseclib\Crypt\RSA; /** * Class InstallController */ class InstallController extends Controller { /** * InstallController constructor. */ public function __construct() { // empty on purpose. } /** * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function migrate() { Artisan::call('migrate', ['--seed' => true]); // 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')); } }