Nettoyage des sessions dans GET

Page Delete nettoyage
This commit is contained in:
Fred Tempez 2023-06-20 19:54:13 +02:00
parent 8d5c5e50c4
commit bb49c88172
6 changed files with 45 additions and 66 deletions

View File

@ -346,7 +346,7 @@ class layout extends common
template::ico('user', [
'margin' => 'all',
'help' => 'Mon compte',
'href' => helper::baseUrl() . 'user/edit/' . $this->getUser('id') . '/' . $_SESSION['csrf']
'href' => helper::baseUrl() . 'user/edit/' . $this->getUser('id')
]);
if (
$this->getData(['user', $this->getUser('id'), 'files']) === true
@ -509,7 +509,7 @@ class layout extends common
$itemsRight .= '<li>' . template::ico('user', [
'help' => 'Mon compte',
'margin' => 'right',
'href' => helper::baseUrl() . 'user/edit/' . $this->getUser('id') . '/' . $_SESSION['csrf']
'href' => helper::baseUrl() . 'user/edit/' . $this->getUser('id')
]) . '</li>';
$itemsRight .= '<li>' .
template::ico('logout', [
@ -962,13 +962,13 @@ class layout extends common
]) . '</li>';
}
$leftItems .= '<li>' . template::ico('clone', [
'href' => helper::baseUrl() . 'page/duplicate/' . $this->getUrl(0) . '&csrf=' . $_SESSION['csrf'],
'href' => helper::baseUrl() . 'page/duplicate/' . $this->getUrl(0),
'help' => 'Dupliquer la page'
])
. '</li>';
$leftItems .= '<li>' . template::ico('trash', [
'href' => helper::baseUrl() . 'page/delete/' . $this->getUrl(0) . '&csrf=' . $_SESSION['csrf'],
'href' => helper::baseUrl() . 'page/delete/' . $this->getUrl(0),
'help' => 'Supprimer la page',
'id' => 'pageDelete'
])
@ -1033,7 +1033,7 @@ class layout extends common
}
}
if ($this->getUser('group') >= self::GROUP_MODERATOR) {
$rightItems .= '<li><a href="' . helper::baseUrl() . 'user/edit/' . $this->getUser('id') . '/' . $_SESSION['csrf'] .
$rightItems .= '<li><a href="' . helper::baseUrl() . 'user/edit/' . $this->getUser('id') .
'" data-tippy-content="' . helper::translate('Configurer mon compte') . '">' .
template::ico('user', ['margin' => 'right']) . '<span id="displayUsername">' . $this->getUser('firstname') . ' ' . $this->getUser('lastname') .
'</span></a></li>';

View File

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

View File

@ -383,7 +383,7 @@ class plugin extends common
implode(' - ', $pageInfos),
template::button('moduleExport' . $key, [
'class' => $class,
'href' => helper::baseUrl() . $this->getUrl(0) . '/uploadItem/' . $key . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/uploadItem/' . $key ,
'value' => $ico,
'help' => $help
])
@ -482,7 +482,7 @@ class plugin extends common
$infoModules[$key]['delete'] === true
? template::button('moduleDelete' . $key, [
'class' => 'moduleDelete buttonRed',
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/' . $key . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/' . $key ,
'value' => template::ico('trash'),
'help' => 'Supprimer le module'
])
@ -503,12 +503,12 @@ class plugin extends common
$infoModules[$key]['version'],
'',
template::button('moduleSave' . $key, [
'href' => helper::baseUrl() . $this->getUrl(0) . '/save/filemanager/' . $key . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/save/filemanager/' . $key ,
'value' => template::ico('download-cloud'),
'help' => 'Sauvegarder le module dans le gestionnaire de fichiers'
]),
template::button('moduleDownload' . $key, [
'href' => helper::baseUrl() . $this->getUrl(0) . '/save/download/' . $key . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/save/download/' . $key ,
'value' => template::ico('download'),
'help' => 'Sauvegarder et télécharger le module'
])
@ -534,19 +534,19 @@ class plugin extends common
$infoModules[$pagesInfos[$keyi18n][$keyPage]['moduleId']]['version'],
template::flag($keyi18n, '20px') . '&nbsp<a href ="' . helper::baseUrl() . $keyPage . '" target="_blank">' . $pagesInfos[$keyi18n][$keyPage]['title'] . ' (' . $keyPage . ')</a>',
template::button('dataExport' . $keyPage, [
'href' => helper::baseUrl() . $this->getUrl(0) . '/dataExport/filemanager/' . self::$i18nContent . '/' . $pagesInfos[$keyi18n][$keyPage]['moduleId'] . '/' . $keyPage . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/dataExport/filemanager/' . self::$i18nContent . '/' . $pagesInfos[$keyi18n][$keyPage]['moduleId'] . '/' . $keyPage ,
// appel de fonction vaut exécution, utiliser un paramètre
'value' => template::ico('download-cloud'),
'help' => 'Sauvegarder les données du module dans le gestionnaire de fichiers'
]),
template::button('dataExport' . $keyPage, [
'href' => helper::baseUrl() . $this->getUrl(0) . '/dataExport/download/' . self::$i18nContent . '/' . $pagesInfos[$keyi18n][$keyPage]['moduleId'] . '/' . $keyPage . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/dataExport/download/' . self::$i18nContent . '/' . $pagesInfos[$keyi18n][$keyPage]['moduleId'] . '/' . $keyPage ,
// appel de fonction vaut exécution, utiliser un paramètre
'value' => template::ico('download'),
'help' => 'Sauvegarder et télécharger les données du module'
]),
template::button('dataDelete' . $keyPage, [
'href' => helper::baseUrl() . $this->getUrl(0) . '/dataDelete/' . self::$i18nContent . '/' . $pagesInfos[$keyi18n][$keyPage]['moduleId'] . '/' . $keyPage . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/dataDelete/' . self::$i18nContent . '/' . $pagesInfos[$keyi18n][$keyPage]['moduleId'] . '/' . $keyPage ,
// appel de fonction vaut exécution, utiliser un paramètre
'value' => template::ico('trash'),
'class' => 'buttonRed dataDelete',

View File

@ -625,14 +625,14 @@ class theme extends common
$type,
$type !== 'websafe' ? template::button('themeFontEdit' . $fontId, [
'class' => 'themeFontEdit',
'href' => helper::baseUrl() . $this->getUrl(0) . '/fontEdit/' . $type . '/' . $fontId . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/fontEdit/' . $type . '/' . $fontId ,
'value' => template::ico('pencil'),
'disabled' => !empty($fontUsed[$fontId])
])
: '',
$type !== 'websafe' ? template::button('themeFontDelete' . $fontId, [
'class' => 'themeFontDelete buttonRed',
'href' => helper::baseUrl() . $this->getUrl(0) . '/fontDelete/' . $type . '/' . $fontId . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/fontDelete/' . $type . '/' . $fontId ,
'value' => template::ico('cancel'),
'disabled' => !empty($fontUsed[$fontId])
])

View File

@ -211,7 +211,7 @@ class translate extends common
$messageLocale = helper::translate('Langue du site par défaut');
} else {
$messageLocale = '<a href="'
. helper::baseUrl() . $this->getUrl(0) . '/default/' . $key . '/' . $_SESSION['csrf']
. helper::baseUrl() . $this->getUrl(0) . '/default/' . $key
. '">' . helper::translate('Définir par défaut') . '</a>';
}
self::$languagesInstalled[] = [
@ -225,7 +225,7 @@ class translate extends common
]),
template::button('translateContentLanguageLocaleDelete' . $key, [
'class' => 'translateDelete buttonRed' . ($messageLocale === 'Langue du site par défaut' ? ' disabled' : ''),
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/locale/' . $key . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/locale/' . $key ,
'value' => template::ico('trash'),
'help' => 'Supprimer',
])
@ -275,13 +275,13 @@ class translate extends common
*/
template::button('translateContentLanguageUIDownload' . $file, [
'class' => version_compare($installedUI[$file]['version'], $storeUI[$file]['version']) < 0 ? 'buttonGreen' : '',
'href' => helper::baseUrl() . $this->getUrl(0) . '/update/' . $file . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/update/' . $file ,
'value' => template::ico('update'),
'help' => 'Mettre à jour',
]),
template::button('translateContentLanguageUIDelete' . $file, [
'class' => 'translateDelete buttonRed' . (in_array($file, $usersUI) ? ' disabled' : ''),
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/ui/' . $file . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/ui/' . $file ,
'value' => template::ico('trash'),
'help' => 'Supprimer',
]),
@ -300,7 +300,7 @@ class translate extends common
'',
template::button('translateContentLanguageUIDownload' . $file, [
'class' => 'buttonGreen',
'href' => helper::baseUrl() . $this->getUrl(0) . '/update/' . $file . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . $this->getUrl(0) . '/update/' . $file ,
'value' => template::ico('shopping-basket'),
'help' => 'Installer',
])

View File

@ -375,13 +375,13 @@ class user extends common
$userFirstname . ' ' . $this->getData(['user', $userId, 'lastname']),
helper::translate(self::$groups[$this->getData(['user', $userId, 'group'])]),
template::button('userEdit' . $userId, [
'href' => helper::baseUrl() . 'user/edit/' . $userId . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . 'user/edit/' . $userId ,
'value' => template::ico('pencil'),
'help' => 'Éditer'
]),
template::button('userDelete' . $userId, [
'class' => 'userDelete buttonRed',
'href' => helper::baseUrl() . 'user/delete/' . $userId . '/' . $_SESSION['csrf'],
'href' => helper::baseUrl() . 'user/delete/' . $userId ,
'value' => template::ico('trash'),
'help' => 'Supprimer'
])