mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-26 03:58:45 +02:00
N°8796 - Add PHP code style validation in iTop and extensions - format whole code base
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Copyright (C) 2013-2024 Combodo SAS
|
||||
*
|
||||
@@ -42,10 +43,10 @@ use ZipArchive;
|
||||
|
||||
abstract class Controller extends AbstractController
|
||||
{
|
||||
const ENUM_PAGE_TYPE_HTML = 'html';
|
||||
const ENUM_PAGE_TYPE_BASIC_HTML = 'basic_html';
|
||||
const ENUM_PAGE_TYPE_AJAX = 'ajax';
|
||||
const ENUM_PAGE_TYPE_SETUP = 'setup';
|
||||
public const ENUM_PAGE_TYPE_HTML = 'html';
|
||||
public const ENUM_PAGE_TYPE_BASIC_HTML = 'basic_html';
|
||||
public const ENUM_PAGE_TYPE_AJAX = 'ajax';
|
||||
public const ENUM_PAGE_TYPE_SETUP = 'setup';
|
||||
|
||||
/** @var \Twig\Environment */
|
||||
private $m_oTwig;
|
||||
@@ -101,8 +102,7 @@ abstract class Controller extends AbstractController
|
||||
if ($sModuleName != 'core') {
|
||||
try {
|
||||
$this->m_aDefaultParams = ['sIndexURL' => utils::GetAbsoluteUrlModulePage($this->m_sModule, 'index.php')];
|
||||
}
|
||||
catch (Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
IssueLog::Error($e->getMessage());
|
||||
}
|
||||
}
|
||||
@@ -117,12 +117,9 @@ abstract class Controller extends AbstractController
|
||||
$sModulePath = dirname(dirname($this->GetDir()));
|
||||
$this->SetModuleName(basename($sModulePath));
|
||||
$this->SetViewPath($sModulePath.'/view');
|
||||
try
|
||||
{
|
||||
$this->m_aDefaultParams = array('sIndexURL' => utils::GetAbsoluteUrlModulePage($this->m_sModule, 'index.php'));
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
try {
|
||||
$this->m_aDefaultParams = ['sIndexURL' => utils::GetAbsoluteUrlModulePage($this->m_sModule, 'index.php')];
|
||||
} catch (Exception $e) {
|
||||
IssueLog::Error($e->getMessage());
|
||||
}
|
||||
}
|
||||
@@ -164,8 +161,7 @@ abstract class Controller extends AbstractController
|
||||
*/
|
||||
public function HandleOperation()
|
||||
{
|
||||
try
|
||||
{
|
||||
try {
|
||||
$this->CheckAccess();
|
||||
$this->m_sOperation = utils::ReadParam('operation', $this->m_sDefaultOperation);
|
||||
|
||||
@@ -182,9 +178,7 @@ abstract class Controller extends AbstractController
|
||||
}
|
||||
|
||||
$this->DisplayBadRequest();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
} catch (Exception $e) {
|
||||
http_response_code(500);
|
||||
$oP = new ErrorPage(Dict::S('UI:PageTitle:FatalError'));
|
||||
$oP->add("<h1>".Dict::S('UI:FatalErrorMessage')."</h1>\n");
|
||||
@@ -202,8 +196,7 @@ abstract class Controller extends AbstractController
|
||||
*/
|
||||
public function HandleAjaxOperation()
|
||||
{
|
||||
try
|
||||
{
|
||||
try {
|
||||
$this->CheckAccess();
|
||||
$this->m_sOperation = utils::ReadParam('operation', $this->m_sDefaultOperation);
|
||||
|
||||
@@ -217,11 +210,9 @@ abstract class Controller extends AbstractController
|
||||
}
|
||||
|
||||
$this->DisplayPageNotFound();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
} catch (Exception $e) {
|
||||
http_response_code(500);
|
||||
$aResponse = array('sError' => $e->getMessage());
|
||||
$aResponse = ['sError' => $e->getMessage()];
|
||||
echo json_encode($aResponse);
|
||||
}
|
||||
}
|
||||
@@ -261,8 +252,7 @@ abstract class Controller extends AbstractController
|
||||
*/
|
||||
protected function CheckAccess()
|
||||
{
|
||||
if ($this->m_bCheckDemoMode && MetaModel::GetConfig()->Get('demo_mode'))
|
||||
{
|
||||
if ($this->m_bCheckDemoMode && MetaModel::GetConfig()->Get('demo_mode')) {
|
||||
throw new Exception("Sorry, iTop is in <b>demonstration mode</b>: this feature is disabled.");
|
||||
}
|
||||
|
||||
@@ -270,31 +260,32 @@ abstract class Controller extends AbstractController
|
||||
|
||||
$sConfiguredAccessTokenValue = empty($this->m_sAccessTokenConfigParamId) ? "" : trim(MetaModel::GetConfig()->GetModuleSetting($sExecModule, $this->m_sAccessTokenConfigParamId));
|
||||
|
||||
if (empty($sExecModule) || empty($sConfiguredAccessTokenValue)){
|
||||
if (empty($sExecModule) || empty($sConfiguredAccessTokenValue)) {
|
||||
LoginWebPage::DoLogin($this->m_bMustBeAdmin);
|
||||
} else {
|
||||
//token mode without login required
|
||||
//N°7147 - Error HTTP 500 due to access_token not URL decoded
|
||||
$sPassedToken = utils::ReadPostedParam($this->m_sAccessTokenConfigParamId, null, false, 'raw_data');
|
||||
if (is_null($sPassedToken)){
|
||||
if (is_null($sPassedToken)) {
|
||||
$sPassedToken = utils::ReadParam($this->m_sAccessTokenConfigParamId, null, false, 'raw_data');
|
||||
}
|
||||
|
||||
$sDecodedPassedToken = urldecode($sPassedToken);
|
||||
if ($sDecodedPassedToken !== $sConfiguredAccessTokenValue){
|
||||
if ($sDecodedPassedToken !== $sConfiguredAccessTokenValue) {
|
||||
$sMsg = "Invalid token passed under '$this->m_sAccessTokenConfigParamId' http param to reach '$sExecModule' page.";
|
||||
IssueLog::Error($sMsg, null,
|
||||
IssueLog::Error(
|
||||
$sMsg,
|
||||
null,
|
||||
[
|
||||
'sHtmlDecodedToken' => $sDecodedPassedToken,
|
||||
'conf param ID' => $this->m_sAccessTokenConfigParamId
|
||||
'conf param ID' => $this->m_sAccessTokenConfigParamId,
|
||||
]
|
||||
);
|
||||
throw new Exception("Invalid token");
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($this->m_sMenuId))
|
||||
{
|
||||
if (!empty($this->m_sMenuId)) {
|
||||
ApplicationMenu::CheckMenuIdEnabled($this->m_sMenuId);
|
||||
}
|
||||
}
|
||||
@@ -384,7 +375,7 @@ abstract class Controller extends AbstractController
|
||||
*
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function DisplayAjaxPage($aParams = array(), $sTemplateName = null)
|
||||
public function DisplayAjaxPage($aParams = [], $sTemplateName = null)
|
||||
{
|
||||
$this->DisplayPage($aParams, $sTemplateName, 'ajax');
|
||||
}
|
||||
@@ -399,7 +390,7 @@ abstract class Controller extends AbstractController
|
||||
*
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function DisplaySetupPage($aParams = array(), $sTemplateName = null)
|
||||
public function DisplaySetupPage($aParams = [], $sTemplateName = null)
|
||||
{
|
||||
$this->DisplayPage($aParams, $sTemplateName, 'setup');
|
||||
}
|
||||
@@ -415,7 +406,7 @@ abstract class Controller extends AbstractController
|
||||
*
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function DisplayPage($aParams = array(), $sTemplateName = null, $sPageType = 'html')
|
||||
public function DisplayPage($aParams = [], $sTemplateName = null, $sPageType = 'html')
|
||||
{
|
||||
if (empty($sTemplateName)) {
|
||||
$sTemplateName = $this->m_sOperation;
|
||||
@@ -472,13 +463,12 @@ abstract class Controller extends AbstractController
|
||||
* @param int $iResponseCode HTTP response code
|
||||
* @param array $aHeaders additional HTTP headers
|
||||
*/
|
||||
public function DisplayJSONPage($aParams = array(), $iResponseCode = 200, $aHeaders = array())
|
||||
public function DisplayJSONPage($aParams = [], $iResponseCode = 200, $aHeaders = [])
|
||||
{
|
||||
$oKpi = new ExecutionKPI();
|
||||
http_response_code($iResponseCode);
|
||||
header('Content-Type: application/json');
|
||||
foreach ($aHeaders as $sHeader)
|
||||
{
|
||||
foreach ($aHeaders as $sHeader) {
|
||||
header($sHeader);
|
||||
}
|
||||
$sJSON = json_encode($aParams);
|
||||
@@ -501,7 +491,7 @@ abstract class Controller extends AbstractController
|
||||
*
|
||||
* @since 3.0.1 3.1.0 Add $sReportFileName parameter
|
||||
*/
|
||||
public function DownloadZippedPage($aParams = array(), $sTemplateName = null, $sReportFileName = 'itop-system-information-report')
|
||||
public function DownloadZippedPage($aParams = [], $sTemplateName = null, $sReportFileName = 'itop-system-information-report')
|
||||
{
|
||||
if (empty($sTemplateName)) {
|
||||
$sTemplateName = $this->m_sOperation;
|
||||
@@ -516,7 +506,7 @@ abstract class Controller extends AbstractController
|
||||
file_put_contents($sHTMLReport, ob_get_contents());
|
||||
ob_end_clean();
|
||||
|
||||
$this->ZipDownloadRemoveFile(array($sHTMLReport), $sZIPReportFile, true);
|
||||
$this->ZipDownloadRemoveFile([$sHTMLReport], $sZIPReportFile, true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -531,16 +521,13 @@ abstract class Controller extends AbstractController
|
||||
$sArchiveFileFullPath = tempnam(SetupUtils::GetTmpDir(), 'itop_download-').'.zip';
|
||||
$oArchive = new ZipArchive();
|
||||
$oArchive->open($sArchiveFileFullPath, ZipArchive::CREATE);
|
||||
foreach ($aFiles as $sFile)
|
||||
{
|
||||
foreach ($aFiles as $sFile) {
|
||||
$oArchive->addFile($sFile, basename($sFile));
|
||||
}
|
||||
$oArchive->close();
|
||||
|
||||
if ($bUnlinkFiles)
|
||||
{
|
||||
foreach ($aFiles as $sFile)
|
||||
{
|
||||
if ($bUnlinkFiles) {
|
||||
foreach ($aFiles as $sFile) {
|
||||
unlink($sFile);
|
||||
}
|
||||
}
|
||||
@@ -548,13 +535,12 @@ abstract class Controller extends AbstractController
|
||||
$this->SendFileContent($sArchiveFileFullPath, $sDownloadArchiveName.'.zip', true, true);
|
||||
}
|
||||
|
||||
final protected function SendFileContent($sFilePath, $sDownloadArchiveName = null, $bFileTransfer = true, $bRemoveFile = false, $aHeaders = array())
|
||||
final protected function SendFileContent($sFilePath, $sDownloadArchiveName = null, $bFileTransfer = true, $bRemoveFile = false, $aHeaders = [])
|
||||
{
|
||||
$sFileMimeType = utils::GetFileMimeType($sFilePath);
|
||||
header('Content-Type: '.$sFileMimeType);
|
||||
|
||||
if ($bFileTransfer)
|
||||
{
|
||||
if ($bFileTransfer) {
|
||||
header('Content-Disposition: attachment; filename="'.$sDownloadArchiveName.'"');
|
||||
}
|
||||
|
||||
@@ -570,8 +556,7 @@ abstract class Controller extends AbstractController
|
||||
|
||||
readfile($sFilePath);
|
||||
|
||||
if ($bRemoveFile)
|
||||
{
|
||||
if ($bRemoveFile) {
|
||||
unlink($sFilePath);
|
||||
}
|
||||
exit(0);
|
||||
@@ -631,7 +616,7 @@ abstract class Controller extends AbstractController
|
||||
if (is_null($sLabel)) {
|
||||
$sLabel = Dict::S($sCode);
|
||||
}
|
||||
$this->m_aAjaxTabs[$sCode] = array('label' => $sLabel, 'url' => $sURL, 'cache' => $bCache);
|
||||
$this->m_aAjaxTabs[$sCode] = ['label' => $sLabel, 'url' => $sURL, 'cache' => $bCache];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -647,7 +632,8 @@ abstract class Controller extends AbstractController
|
||||
* @since 2.7.7 3.0.1 3.1.0 N°4760 method creation
|
||||
* @see Controller::SetBreadCrumbEntry() to set breadcrumb content (by default will be title)
|
||||
*/
|
||||
public function DisableBreadCrumb() {
|
||||
public function DisableBreadCrumb()
|
||||
{
|
||||
$this->m_bIsBreadCrumbEnabled = false;
|
||||
}
|
||||
|
||||
@@ -655,7 +641,8 @@ abstract class Controller extends AbstractController
|
||||
* @since 2.7.7 3.0.1 3.1.0 N°4760 method creation
|
||||
* @see iTopWebPage::SetBreadCrumbEntry()
|
||||
*/
|
||||
public function SetBreadCrumbEntry($sId, $sLabel, $sDescription, $sUrl = '', $sIcon = '') {
|
||||
public function SetBreadCrumbEntry($sId, $sLabel, $sDescription, $sUrl = '', $sIcon = '')
|
||||
{
|
||||
$this->m_aBreadCrumbEntry = [$sId, $sLabel, $sDescription, $sUrl, $sIcon];
|
||||
}
|
||||
|
||||
@@ -669,20 +656,15 @@ abstract class Controller extends AbstractController
|
||||
*/
|
||||
private function RenderTemplate($aParams, $sName, $sTemplateFileExtension)
|
||||
{
|
||||
if (empty($this->m_oTwig))
|
||||
{
|
||||
if (empty($this->m_oTwig)) {
|
||||
throw new Exception('Not initialized. Call Controller::InitFromModule() or Controller::SetViewPath() before any display');
|
||||
}
|
||||
try
|
||||
{
|
||||
try {
|
||||
return $this->m_oTwig->render($sName.'.'.$sTemplateFileExtension.'.twig', $aParams);
|
||||
}
|
||||
catch (SyntaxError $e) {
|
||||
} catch (SyntaxError $e) {
|
||||
IssueLog::Error($e->getMessage().' - file: '.$e->getFile().'('.$e->getLine().')');
|
||||
}
|
||||
catch (Error $e) {
|
||||
if (strpos($e->getMessage(), 'Unable to find template') === false)
|
||||
{
|
||||
} catch (Error $e) {
|
||||
if (strpos($e->getMessage(), 'Unable to find template') === false) {
|
||||
IssueLog::Error($e->getMessage());
|
||||
}
|
||||
}
|
||||
@@ -697,8 +679,7 @@ abstract class Controller extends AbstractController
|
||||
*/
|
||||
private function CreatePage($sPageType)
|
||||
{
|
||||
switch ($sPageType)
|
||||
{
|
||||
switch ($sPageType) {
|
||||
case self::ENUM_PAGE_TYPE_HTML:
|
||||
$this->m_oPage = new iTopWebPage($this->GetOperationTitle(), false);
|
||||
$this->m_oPage->add_http_headers();
|
||||
|
||||
Reference in New Issue
Block a user