Nettoyage des sessions dans GET

This commit is contained in:
Fred Tempez 2023-06-20 19:57:27 +02:00
parent 982cf3bb9f
commit f19afc81ed
1 changed files with 24 additions and 45 deletions

View File

@ -186,115 +186,94 @@ class page extends common
public function delete() public function delete()
{ {
// $url prend l'adresse sans le token // $url prend l'adresse sans le token
$url = explode('&', $this->getUrl(2)); $page = $this->getUrl(2);
// La page n'existe pas // La page n'existe pas
if ($this->getData(['page', $url[0]]) === null) { if ($this->getData(['page', $page]) === null) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'access' => false 'access' => false
]); ]);
} // Jeton incorrect } // Jeton incorrect
elseif (!isset($_GET['csrf'])) { elseif ($this->checkCSRF()) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . 'page/edit/' . $url[0], 'redirect' => helper::baseUrl() . 'page/edit/' . $page,
'notification' => helper::translate('Jeton invalide') 'notification' => helper::translate('Jeton invalide')
]); ]);
} elseif ($_GET['csrf'] !== $_SESSION['csrf']) {
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . 'page/edit/' . $url[0],
'notification' => helper::translate('Suppression interdite')
]);
} }
// Impossible de supprimer la page d'accueil // Impossible de supprimer la page d'accueil
elseif ($url[0] === $this->getData(['locale', 'homePageId'])) { elseif ($page === $this->getData(['locale', 'homePageId'])) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . 'config', 'redirect' => helper::baseUrl() . 'config',
'notification' => helper::translate('Suppression interdite, page active dans la configuration du site') 'notification' => helper::translate('Suppression interdite, page active dans la configuration du site')
]); ]);
} }
// Impossible de supprimer la page de recherche affectée // Impossible de supprimer la page affectée
elseif ($url[0] === $this->getData(['locale', 'searchPageId'])) { elseif ($page === $this->getData(['locale', 'searchPageId'])) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . 'config', 'redirect' => helper::baseUrl() . 'config',
'notification' => helper::translate('Suppression interdite, page active dans la configuration du site') 'notification' => helper::translate('Suppression interdite, page active dans la configuration du site')
]); ]);
} }
// Impossible de supprimer la page des mentions légales affectée // Impossible de supprimer la page affectée
elseif ($url[0] === $this->getData(['locale', 'legalPageId'])) { elseif ($page === $this->getData(['locale', 'legalPageId'])) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . 'config', 'redirect' => helper::baseUrl() . 'config',
'notification' => helper::translate('Suppression interdite, page active dans la configuration du site') 'notification' => helper::translate('Suppression interdite, page active dans la configuration du site')
]); ]);
} }
// Impossible de supprimer la page des mentions légales affectée // Impossible de supprimer la page affectée
elseif ($url[0] === $this->getData(['locale', 'page404'])) { elseif ($page === $this->getData(['locale', 'page404'])) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . 'config', 'redirect' => helper::baseUrl() . 'config',
'notification' => helper::translate('Suppression interdite, page active dans la configuration du site') 'notification' => helper::translate('Suppression interdite, page active dans la configuration du site')
]); ]);
} }
// Impossible de supprimer la page des mentions légales affectée // Impossible de supprimer la page affectée
elseif ($url[0] === $this->getData(['locale', 'page403'])) { elseif ($page === $this->getData(['locale', 'page403'])) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . 'config', 'redirect' => helper::baseUrl() . 'config',
'notification' => helper::translate('Suppression interdite, page active dans la configuration du site') 'notification' => helper::translate('Suppression interdite, page active dans la configuration du site')
]); ]);
} }
// Impossible de supprimer la page des mentions légales affectée // Impossible de supprimer la page affectée
elseif ($url[0] === $this->getData(['locale', 'page302'])) { elseif ($page === $this->getData(['locale', 'page302'])) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . 'config', 'redirect' => helper::baseUrl() . 'config',
'notification' => helper::translate('Suppression interdite, page active dans la configuration du site') 'notification' => helper::translate('Suppression interdite, page active dans la configuration du site')
]); ]);
} }
// Jeton incorrect
elseif (!isset($_GET['csrf'])) {
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . 'page/edit/' . $url[0],
'notification' => helper::translate('Jeton invalide')
]);
} elseif ($_GET['csrf'] !== $_SESSION['csrf']) {
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . 'page/edit/' . $url[0],
'notification' => helper::translate('Suppression interdite')
]);
}
// Impossible de supprimer une page contenant des enfants // Impossible de supprimer une page contenant des enfants
elseif ($this->getHierarchy($url[0], null)) { elseif ($this->getHierarchy($page, null)) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . 'page/edit/' . $url[0], 'redirect' => helper::baseUrl() . 'page/edit/' . $page,
'notification' => helper::translate('Impossible de supprimer une page contenant des pages enfants') 'notification' => helper::translate('Impossible de supprimer une page contenant des pages enfants')
]); ]);
} }
// Suppression // Suppression
else { else {
// Effacer le dossier du module // Effacer le dossier du module
$moduleId = $this->getData(['page', $url[0], 'moduleId']); $moduleId = $this->getData(['page', $page, 'moduleId']);
$modulesData = helper::getModules(); $modulesData = helper::getModules();
if ( if (
array_key_exists($moduleId, $modulesData) array_key_exists($moduleId, $modulesData)
&& is_dir($modulesData[$moduleId]['dataDirectory'] . $url[0]) && is_dir($modulesData[$moduleId]['dataDirectory'] . $page)
) { ) {
$this->removeDir($modulesData[$moduleId]['dataDirectory'] . $url[0]); $this->removeDir($modulesData[$moduleId]['dataDirectory'] . $page);
} }
// Effacer la page // Effacer la page
$this->deleteData(['page', $url[0]]); $this->deleteData(['page', $page]);
if (file_exists(self::DATA_DIR . self::$i18nContent . '/content/' . $url[0] . '.html')) { if (file_exists(self::DATA_DIR . self::$i18nContent . '/content/' . $page . '.html')) {
unlink(self::DATA_DIR . self::$i18nContent . '/content/' . $url[0] . '.html'); unlink(self::DATA_DIR . self::$i18nContent . '/content/' . $page . '.html');
} }
$this->deleteData(['module', $url[0]]); $this->deleteData(['module', $page]);
// Met à jour le sitemap // Met à jour le sitemap
$this->updateSitemap(); $this->updateSitemap();