Some more updates to the installer and env file stuff
This commit is contained in:
@@ -1,96 +1,10 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Google Analytics Tracking / Web Property ID [REQUIRED]
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Your Google Analytics tracking ID / web property ID. The format is UA-XXXX-Y.
|
||||
| All collected data is associated by this ID.
|
||||
|
|
||||
| Refer:
|
||||
| https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#tid
|
||||
|
|
||||
*/
|
||||
'tracking_id' => 'UA-100567975-1',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Measurement Protocol Version [REQUIRED]
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The Protocol version. The current value is '1'.
|
||||
| This will only change when there are changes made that are not backwards compatible.
|
||||
|
|
||||
| Refer:
|
||||
| https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#v
|
||||
|
|
||||
| Default: 1
|
||||
|
|
||||
*/
|
||||
'protocol_version' => 1,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| URL Endpoint - SSL Support: Send Data over SSL [Optional]
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option controls the URL endpoint of the Measurement Protocol.
|
||||
| To send data over SSL, set true.
|
||||
|
|
||||
| Refer:
|
||||
| https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#tid
|
||||
|
|
||||
| Default: false
|
||||
| Valid Values: (Boolean) "true" OR "false"
|
||||
|
|
||||
*/
|
||||
'is_ssl' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Disable Hits [Optional]
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option controls enabling or disabling the library.
|
||||
| Useful in Staging/Dev environments when you don't want to actually send hits to GA.
|
||||
| When disabled, it returns a AnalyticsResponseInterface object that returns empty values.
|
||||
|
|
||||
| To disable library hits, set true.
|
||||
|
|
||||
| Default: false
|
||||
| Valid Values: (Boolean) "true" OR "false"
|
||||
|
|
||||
*/
|
||||
'is_disabled' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Anonymize IP [Optional]
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When set to True, the IP address of the sender will be anonymized.
|
||||
|
|
||||
| Refer:
|
||||
| https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#aip
|
||||
|
|
||||
| Default: false
|
||||
| Valid Values: (Boolean) "true" OR "false"
|
||||
|
|
||||
*/
|
||||
'is_disabled' => env('APP_ANALYTICS_DISABLED', false),
|
||||
'anonymize_ip' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Asynchronous Requests [Optional]
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| When set to True, All the requests would be made non-blocking (Async).
|
||||
|
|
||||
| Default: false
|
||||
| Valid Values: (Boolean) "true" OR "false"
|
||||
|
|
||||
*/
|
||||
'async_requests' => false,
|
||||
];
|
||||
|
||||
@@ -15,6 +15,7 @@ APP_SKIN=default
|
||||
APP_KEY=base64:zdgcDqu9PM8uGWCtMxd74ZqdGJIrnw812oRMmwDF6KY=
|
||||
APP_DEBUG=true
|
||||
APP_LOCALE=en
|
||||
APP_ANALYTICS_DISABLED=false
|
||||
|
||||
PHPVMS_INSTALLED=true
|
||||
VACENTRAL_API_KEY=
|
||||
@@ -23,8 +24,6 @@ APP_LOG=daily
|
||||
APP_LOG_LEVEL=debug
|
||||
APP_LOG_MAX_FILES=3
|
||||
|
||||
APP_ENABLE_ANALYTICS=true
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=localhost
|
||||
DB_PORT=3306
|
||||
|
||||
@@ -2,15 +2,14 @@
|
||||
|
||||
namespace Modules\Installer\Http\Controllers;
|
||||
|
||||
use Irazasyed\LaravelGAMP\Facades\GAMP;
|
||||
use Log;
|
||||
use Irazasyed\LaravelGAMP\Facades\GAMP;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Database\QueryException;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Setting;
|
||||
use App\Repositories\AirlineRepository;
|
||||
use App\Facades\Utils;
|
||||
use App\Services\UserService;
|
||||
@@ -53,11 +52,6 @@ class InstallerController extends Controller
|
||||
return view('installer::errors/already-installed');
|
||||
}
|
||||
|
||||
/*$gamp = GAMP::setClientId(uniqid('', true));
|
||||
$gamp->setDocumentPath('/install');
|
||||
$gamp->setCustomDimension(PHP_VERSION, 1);
|
||||
$gamp->sendPageview();*/
|
||||
|
||||
return view('installer::index-start');
|
||||
}
|
||||
|
||||
@@ -127,7 +121,7 @@ class InstallerController extends Controller
|
||||
];
|
||||
|
||||
# Make sure there are no false values
|
||||
$passed = ! in_array(false, $statuses, true);
|
||||
$passed = !\in_array(false, $statuses, true);
|
||||
|
||||
return view('installer::steps/step1-requirements', [
|
||||
'php' => $php_version,
|
||||
@@ -150,6 +144,8 @@ class InstallerController extends Controller
|
||||
|
||||
/**
|
||||
* Step 2a. Create the .env
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
|
||||
*/
|
||||
public function envsetup(Request $request)
|
||||
{
|
||||
@@ -186,6 +182,8 @@ class InstallerController extends Controller
|
||||
|
||||
/**
|
||||
* Step 2b. Setup the database
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View
|
||||
*/
|
||||
public function dbsetup(Request $request)
|
||||
{
|
||||
@@ -210,10 +208,6 @@ class InstallerController extends Controller
|
||||
*/
|
||||
public function step3(Request $request)
|
||||
{
|
||||
/*$this->envService->updateKeyInFile([
|
||||
'APP_ENABLE_ANALYTICS' => 'false'
|
||||
]);*/
|
||||
|
||||
return view('installer::steps/step3-user', []);
|
||||
}
|
||||
|
||||
@@ -221,6 +215,7 @@ class InstallerController extends Controller
|
||||
* Step 3 submit
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
|
||||
* @throws \RuntimeException
|
||||
* @throws \Prettus\Validator\Exceptions\ValidatorException
|
||||
*/
|
||||
public function usersetup(Request $request)
|
||||
@@ -273,6 +268,18 @@ class InstallerController extends Controller
|
||||
# Set the intial admin e-mail address
|
||||
setting('general.admin_email', $user->email);
|
||||
|
||||
$gamp = GAMP::setClientId(uniqid('', true));
|
||||
$gamp->setDocumentPath('/install');
|
||||
$gamp->setCustomDimension(PHP_VERSION, 1);
|
||||
$gamp->sendPageview();
|
||||
|
||||
# If analytics are disabled
|
||||
if((int) $request->post('analytics') === 0) {
|
||||
$this->envService->updateKeysInEnv([
|
||||
'APP_ANALYTICS_DISABLED' => 'true',
|
||||
]);
|
||||
}
|
||||
|
||||
return view('installer::steps/step3a-completed', []);
|
||||
}
|
||||
|
||||
|
||||
@@ -80,11 +80,11 @@
|
||||
<td><p>Analytics</p></td>
|
||||
<td>
|
||||
<div class="form-group">
|
||||
{!! Form::hidden('hidden', 0) !!}
|
||||
{!! Form::hidden('analytics', 0) !!}
|
||||
{!! Form::checkbox('analytics', 1, true, ['class' => 'form-control']) !!}
|
||||
<br />
|
||||
<p>
|
||||
Allow collection of analytics. They're anonymized, and helps us track
|
||||
Allows collection of analytics. They won't identify you, and helps us to track
|
||||
the PHP and database versions that are used, and help to figure out problems
|
||||
and slowdowns when vaCentral integration is enabled.
|
||||
</p>
|
||||
|
||||
@@ -9,6 +9,7 @@ APP_SKIN=default
|
||||
APP_KEY=base64:{!! $APP_KEY !!}
|
||||
APP_DEBUG=true
|
||||
APP_LOCALE=en
|
||||
APP_ANALYTICS_DISABLED=false
|
||||
|
||||
PHPVMS_INSTALLED=true
|
||||
PHPVMS_VA_NAME="phpvms"
|
||||
@@ -19,8 +20,6 @@ APP_LOG=daily
|
||||
APP_LOG_LEVEL=debug
|
||||
APP_LOG_MAX_FILES=3
|
||||
|
||||
APP_ENABLE_ANALYTICS=true
|
||||
|
||||
DB_CONNECTION={!! $DB_CONN !!}
|
||||
DB_HOST={!! $DB_HOST !!}
|
||||
DB_PORT={!! $DB_PORT !!}
|
||||
|
||||
@@ -15,10 +15,16 @@ class EnvironmentService
|
||||
{
|
||||
/**
|
||||
* Create the .env file
|
||||
* @param $driver
|
||||
* @param $host
|
||||
* @param $port
|
||||
* @param $name
|
||||
* @param $user
|
||||
* @param $pass
|
||||
* @return boolean
|
||||
* @throws \Symfony\Component\HttpFoundation\File\Exception\FileException
|
||||
*/
|
||||
public function createEnvFile($driver, $host, $port, $name, $user, $pass)
|
||||
public function createEnvFile($driver, $host, $port, $name, $user, $pass): bool
|
||||
{
|
||||
$opts = [
|
||||
'APP_ENV' => 'dev',
|
||||
@@ -53,11 +59,20 @@ class EnvironmentService
|
||||
$env_file = file_get_contents($app->environmentFilePath());
|
||||
foreach($kvp as $key => $value) {
|
||||
|
||||
# cast
|
||||
$key = strtoupper($key);
|
||||
|
||||
# cast for any boolean values
|
||||
if(\is_bool($value)) {
|
||||
$value = $value === true ? 'true' : 'false';
|
||||
}
|
||||
|
||||
# surround by quotes if there are any spaces in the value
|
||||
if(strpos($value, ' ') !== false) {
|
||||
$value = '"'.$value.'"';
|
||||
}
|
||||
|
||||
Log::info('Replacing "' . $key . '" with ' . $value);
|
||||
|
||||
$env_file = preg_replace(
|
||||
'/^' . $key . '(.*)?/m',
|
||||
$key . '=' . $value,
|
||||
@@ -72,7 +87,7 @@ class EnvironmentService
|
||||
* Generate a fresh new APP_KEY
|
||||
* @return string
|
||||
*/
|
||||
protected function createAppKey()
|
||||
protected function createAppKey(): string
|
||||
{
|
||||
return base64_encode(Encrypter::generateKey(config('app.cipher')));
|
||||
}
|
||||
@@ -142,30 +157,6 @@ class EnvironmentService
|
||||
return $opts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a key/value pair in the env file
|
||||
* @param $key
|
||||
* @param $value
|
||||
*/
|
||||
public static function changeEnvironmentVariable($key, $value, $quoted=false)
|
||||
{
|
||||
$env_file = \App::environmentFilePath();
|
||||
|
||||
if (\is_bool(env($key))) {
|
||||
$old = env($key) ? 'true' : 'false';
|
||||
}
|
||||
|
||||
if($quoted) {
|
||||
$value = '"'.$value.'"';
|
||||
}
|
||||
|
||||
if (file_exists($env_file)) {
|
||||
file_put_contents($env_file, str_replace(
|
||||
"$key=" . $old, "$key=" . $value, file_get_contents($env_file)
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the template file name and write it out
|
||||
* @param $opts
|
||||
|
||||
Reference in New Issue
Block a user