Index: src/include/lib/Garradin/Form.php
==================================================================
--- src/include/lib/Garradin/Form.php
+++ src/include/lib/Garradin/Form.php
@@ -29,10 +29,15 @@
public function &getErrors()
{
return $this->errors;
}
+
+ public function addError($msg)
+ {
+ $this->errors[] = $msg;
+ }
public function getErrorMessages()
{
return;
}
Index: src/www/admin/mes_infos_securite.php
==================================================================
--- src/www/admin/mes_infos_securite.php
+++ src/www/admin/mes_infos_securite.php
@@ -4,30 +4,29 @@
use Garradin\Membres\Session;
require_once __DIR__ . '/_inc.php';
-$errors = [];
$confirm = false;
if (f('confirm'))
{
- fc('edit_me_security', [
+ $form->check('edit_me_security', [
'passe' => 'confirmed',
'passe_check' => 'required',
- ], $errors);
+ ]);
if (f('passe_check') && !$session->checkPassword(f('passe_check')))
{
- $errors[] = 'Le mot de passe fourni ne correspond pas au mot de passe actuel. Merci de bien vouloir renseigner votre mot de passe courant pour confirmer les changements.';
+ $form->addError('Le mot de passe fourni ne correspond pas au mot de passe actuel. Merci de bien vouloir renseigner votre mot de passe courant pour confirmer les changements.');
}
elseif (f('otp_secret') && !Session::checkOTP(f('otp_secret'), f('code')))
{
- $errors[] = 'Le code TOTP entré n\'est pas valide.';
+ $form->addError('Le code TOTP entré n\'est pas valide.');
}
- if (count($errors) === 0)
+ if (!$form->hasErrors())
{
try {
$data = [
'clef_pgp' => f('clef_pgp'),
];
@@ -49,34 +48,33 @@
$session->editSecurity($data);
Utils::redirect('/admin/');
}
catch (UserException $e)
{
- $errors[] = $e->getMessage();
+ $form->addError($e->getMessage());
}
}
$confirm = true;
}
elseif (f('save'))
{
- fc('edit_me_security', [
+ $form->check('edit_me_security', [
'passe' => 'confirmed',
- ], $errors);
+ ]);
if (f('clef_pgp') && !$session->getPGPFingerprint(f('clef_pgp')))
{
- $errors[] = 'Clé PGP invalide : impossible de récupérer l\'empreinte de la clé.';
+ $form->addError('Clé PGP invalide : impossible de récupérer l\'empreinte de la clé.');
}
- if (count($errors) === 0)
+ if (!$form->hasErrors())
{
$confirm = true;
}
}
-$tpl->assign('form_errors', $errors);
$tpl->assign('confirm', $confirm);
if (f('otp') == 'generate')
{
$otp = $session->getNewOTPSecret();
Index: src/www/admin/static/admin.css
==================================================================
--- src/www/admin/static/admin.css
+++ src/www/admin/static/admin.css
@@ -51,25 +51,25 @@
}
html {
width: 100%;
height: 100%;
- background: #fff url("gdin_bg.png") no-repeat 0px 0px fixed;
- background-color: rgb(var(--gBgColor));
- /* Pas possible d'utiliser une variable CSS pour l'image de fond, c'est bugué dans Chrome
- cf. https://bugs.chromium.org/p/chromium/issues/detail?id=618165 */
}
body {
font-size: 100%;
color: #000;
font-family: "Trebuchet MS", Arial, Helvetica, Sans-serif;
padding-bottom: 1em;
+ background: #fff url("gdin_bg.png") no-repeat 0px 0px fixed;
+ background-color: rgb(var(--gBgColor));
+ /* Pas possible d'utiliser une variable CSS pour l'image de fond, c'est bugué dans Chrome
+ cf. https://bugs.chromium.org/p/chromium/issues/detail?id=618165 */
}
body#popup {
- background: rgb(var(--gBgColor));
+ background-position: -170px 0px;
}
body#transparent {
background: transparent;
}
Index: src/www/admin/wiki/_chercher_parent.php
==================================================================
--- src/www/admin/wiki/_chercher_parent.php
+++ src/www/admin/wiki/_chercher_parent.php
@@ -10,12 +10,12 @@
$tpl->assign('parent', $parent);
$tpl->assign('list', $wiki->listBackParentTree($parent));
function tpl_display_tree($params)
{
- if (isset($params->tree))
- $tree = $params->tree;
+ if (isset($params['tree']))
+ $tree = $params['tree'];
else
$tree = $params;
$out = '
';
Index: src/www/admin/wiki/_fichiers.php
==================================================================
--- src/www/admin/wiki/_fichiers.php
+++ src/www/admin/wiki/_fichiers.php
@@ -19,11 +19,11 @@
echo json_encode(Fichiers::checkHashList($hash_check));
exit;
}
elseif (f('delete'))
{
- if (fc($csrf_id, [], $form_errors))
+ if ($form->check($csrf_id))
{
try {
$fichier = new Fichiers(f('delete'));
if (!$fichier->checkAccess($user))
@@ -34,11 +34,11 @@
$fichier->remove();
Utils::redirect('/admin/wiki/_fichiers.php?page=' . $page->id);
}
catch (UserException $e)
{
- $form_errors[] = $e->getMessage();
+ $form->addError($e->getMessage());
}
}
}
elseif (f('upload') || f('uploadHelper_mode'))
{
@@ -50,18 +50,18 @@
'uploadHelper_fileHash' => 'required',
'uploadHelper_fileName' => 'required',
];
}
- fc($csrf_id, $validate, $form_errors);
+ $form->check($csrf_id, $validate);
if (f('uploadHelper_status') > 0)
{
- $form_errors[] = 'Un seul fichier peut être envoyé en même temps.';
+ $form->addError('Un seul fichier peut être envoyé en même temps.');
}
- if (count($form_errors) === 0)
+ if (!$form->hasErrors())
{
try {
if (f('uploadHelper_mode') == 'hash_only' && f('uploadHelper_fileHash') && f('uploadHelper_fileName'))
{
$fichier = Fichiers::uploadExistingHash(f('uploadHelper_fileName'), f('uploadHelper_fileHash'));
@@ -92,17 +92,17 @@
Utils::redirect($uri);
}
catch (UserException $e)
{
- $form_errors[] = $e->getMessage();
+ $form->addError($e->getMessage());
}
}
if (f('uploadHelper_mode') !== null)
{
- echo json_encode(['error' => implode(PHP_EOL, $form_errors)]);
+ echo json_encode(['error' => implode(PHP_EOL, $form->getErrorMessages())]);
exit;
}
}
$tpl->assign('fichiers', Fichiers::listLinkedFiles(Fichiers::LIEN_WIKI, $page->id, false));
Index: src/www/admin/wiki/creer.php
==================================================================
--- src/www/admin/wiki/creer.php
+++ src/www/admin/wiki/creer.php
@@ -1,18 +1,18 @@
check('wiki_create', [
'titre' => 'required',
'parent'=> 'required|integer'
- ], $form_errors);
+ ]);
try {
$id = $wiki->create([
'titre' => f('titre'),
'parent' => $parent,
@@ -20,10 +20,10 @@
Utils::redirect('/admin/wiki/editer.php?id='.$id);
}
catch (UserException $e)
{
- $form_errors[] = $e->getMessage();
+ $form->addError($e->getMessage());
}
}
$tpl->display('admin/wiki/creer.tpl');
Index: src/www/admin/wiki/editer.php
==================================================================
--- src/www/admin/wiki/editer.php
+++ src/www/admin/wiki/editer.php
@@ -26,24 +26,24 @@
$date = f('date') . ' ' . sprintf('%02d:%02d', f('date_h'), f('date_min'));
}
if (f('save'))
{
- fc('wiki_edit_'.$page->id, [
+ $form->check('wiki_edit_' . $page->id, [
'titre' => 'required',
'uri' => 'required',
'parent' => 'numeric',
'droit_lecture' => 'numeric',
'droit_ecriture' => 'numeric',
- ], $form_errors);
+ ]);
if ($page->date_modification > (int) f('debut_edition'))
{
- $form_errors[] = 'La page a été modifiée par quelqu\'un d\'autre depuis que vous avez commencé l\'édition.';
+ $form->addError('La page a été modifiée par quelqu\'un d\'autre depuis que vous avez commencé l\'édition.');
}
- if (count($form_errors) === 0)
+ if (!$form->hasErrors())
{
try {
$wiki->edit($page->id, [
'titre' => f('titre'),
'uri' => f('uri'),
@@ -64,11 +64,11 @@
Utils::redirect('/admin/wiki/?'.$page->uri);
}
catch (UserException $e)
{
- $form_errors[] = $e->getMessage();
+ $form->addError($e->getMessage());
}
}
}
$parent = (int) f('parent') ?: (int) $page->parent;
Index: src/www/admin/wiki/supprimer.php
==================================================================
--- src/www/admin/wiki/supprimer.php
+++ src/www/admin/wiki/supprimer.php
@@ -14,21 +14,21 @@
throw new UserException("Cette page n'existe pas.");
}
if (f('delete'))
{
- if (fc('delete_wiki_'.$page->id, [], $form_errors))
+ if ($form->check('delete_wiki_' . $page->id))
{
if ($wiki->delete($page->id))
{
Utils::redirect('/admin/wiki/');
}
else
{
- $form_errors[] = "D'autres pages utilisent cette page comme rubrique parente.";
+ $form->addError('D\'autres pages utilisent cette page comme rubrique parente.');
}
}
}
$tpl->assign('page', $page);
$tpl->display('admin/wiki/supprimer.tpl');