Improve session detection in install module

- 세션 작동여부 확인과 session.auto_start 확인을 하나로 합침.
- 세션에 기록된 플래그와 license_agreement 파일에 기록된 시간을 비교하도록 하여
  예전에 기록된 플래그를 잘못 인식하지 않도록 함.
This commit is contained in:
Kijin Sung 2019-07-27 20:21:05 +09:00
parent 0d2fde9da0
commit b5720557e8
11 changed files with 25 additions and 46 deletions

View file

@ -296,7 +296,7 @@ class installController extends install
}
// Check permission
if(is_writable('./')||is_writable('./files'))
if(is_writable(RX_BASEDIR) || is_writable(RX_BASEDIR . 'files'))
{
$checklist['permission'] = true;
}
@ -306,24 +306,22 @@ class installController extends install
}
// Check session availability
if(isset($_SESSION['license_agreement']))
$license_agreement_time = intval(trim(FileHandler::readFile($this->flagLicenseAgreement)));
if(isset($_SESSION['license_agreement']) && (!$license_agreement_time || ($license_agreement_time == $_SESSION['license_agreement'])))
{
$checklist['session'] = true;
if(ini_get('session.auto_start') == 0)
{
$checklist['session'] = true;
}
else
{
$checklist['session'] = false;
}
}
else
{
$checklist['session'] = false;
}
// Check session.auto_start
if(ini_get('session.auto_start') != 1)
{
$checklist['session_auto'] = true;
}
else
{
$checklist['session_auto'] = false;
}
// Check curl
if(function_exists('curl_init'))
@ -415,8 +413,9 @@ class installController extends install
throw new Rhymix\Framework\Exception('msg_must_accept_license_agreement');
}
$_SESSION['license_agreement'] = true;
FileHandler::writeFile($this->flagLicenseAgreement, $_SERVER['REQUEST_TIME']);
$license_agreement_time = time();
$_SESSION['license_agreement'] = $license_agreement_time;
FileHandler::writeFile($this->flagLicenseAgreement, $license_agreement_time . PHP_EOL);
$this->setRedirectUrl(getNotEncodedUrl('', 'act', 'dispInstallCheckEnv'));
}