Files
admin/app/Http/Controllers/InstallerController.php
Husanjonazamov e0f1989655 classify admin
2026-02-24 12:52:01 +05:00

78 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use dacoto\EnvSet\Facades\EnvSet;
use dacoto\LaravelWizardInstaller\Controllers\InstallFolderController;
use dacoto\LaravelWizardInstaller\Controllers\InstallServerController;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class InstallerController extends Controller {
public function purchaseCodeIndex() {
if (!(new InstallServerController())->check() || !(new InstallFolderController())->check()) {
return redirect()->route('LaravelWizardInstaller::install.folders');
}
return view('vendor.installer.steps.purchase-code');
}
public function checkPurchaseCode(Request $request) {
try {
$app_url = (string)url('/');
$app_url = preg_replace('#^https?://#i', '', $app_url);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://validator.wrteam.in/eclassify_validator?purchase_code=' . $request->input('purchase_code') . '&domain_url=' . $app_url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4
));
$response = curl_exec($curl);
curl_close($curl);
$response = json_decode($response, true, 512, JSON_THROW_ON_ERROR);
if ($response['error']) {
return view('installer::steps.purchase-code', ['error' => $response["message"]]);
}
EnvSet::setKey('APPSECRET', $request->input('purchase_code'));
EnvSet::save();
return redirect()->route('install.php-function.index');
} catch (Exception $e) {
$values = [
'purchase_code' => $request->get("purchase_code"),
];
return view('vendor.installer.steps.purchase-code', ['values' => $values, 'error' => $e->getMessage()]);
}
}
public function phpFunctionIndex() {
if (!(new InstallServerController())->check() || !(new InstallFolderController())->check()) {
return redirect()->route('LaravelWizardInstaller::install.purchase_code');
}
return view('vendor.installer.steps.symlink_basedir_check', [
'result' => $this->checkSymlink(),
'baseDir' =>$this->checkBaseDir()
]);
}
public function checkSymlink(): bool
{
return function_exists('symlink');
}
public function checkBaseDir(): bool
{
$openBaseDir = ini_get('open_basedir');
if ($openBaseDir) {
return false;
}
return true;
}
}