Comment: | Modernisation du code: suppression des _POST et passage au système d'erreurs des formulaires |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
143ddfa442ac96f8fd606b885ab01e09 |
User & Date: | bohwaz on 2017-08-03 02:07:03 |
Other Links: | branch diff | manifest | tags |
2017-08-03
| ||
04:21 | Cohérence avec SQLite3 en ligne de commande: utilisation de .load au lieu de .import check-in: 26b4188c11 user: bohwaz tags: dev | |
02:07 | Modernisation du code: suppression des _POST et passage au système d'erreurs des formulaires check-in: 143ddfa442 user: bohwaz tags: dev | |
01:40 | Modernisation code catégories check-in: 2989f0c0e4 user: bohwaz tags: dev | |
Modified src/templates/admin/membres/action.tpl from [6f7340ac70] to [c6dae71e1a].
1 2 | {include file="admin/_head.tpl" title="Action collective sur les membres" current="membres"} | < < | < < | 1 2 3 4 5 6 7 8 9 10 | {include file="admin/_head.tpl" title="Action collective sur les membres" current="membres"} {form_errors} <form method="post" action="{$self_url}"> {foreach from=$selected item="id"} <input type="hidden" name="selected[]" value="{$id}" /> {/foreach} </fieldset> |
︙ | ︙ | |||
27 28 29 30 31 32 33 | </select> </dd> </dl> </fieldset> <p class="submit"> {csrf_field key="membres_action"} | > | | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | </select> </dd> </dl> </fieldset> <p class="submit"> {csrf_field key="membres_action"} <input type="hidden" name="action" value="move" /> <input type="submit" name="confirm" value="Enregistrer →" /> </p> {elseif $action == 'delete'} <fieldset> <legend>Supprimer les membres sélectionnés ?</legend> <h3 class="warning"> Êtes-vous sûr de vouloir supprimer les {$nb_selected} membres sélectionnés ? |
︙ | ︙ | |||
49 50 51 52 53 54 55 | partie de l'association dans une catégorie « Anciens membres », plutôt que de les effacer complètement. </p> </fieldset> <p class="submit"> {csrf_field key="membres_action"} | > | | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | partie de l'association dans une catégorie « Anciens membres », plutôt que de les effacer complètement. </p> </fieldset> <p class="submit"> {csrf_field key="membres_action"} <input type="hidden" name="action" value="delete" /> <input type="submit" name="confirm" value="Oui, supprimer ces membres →" /> </p> {/if} </form> {include file="admin/_foot.tpl"} |
Modified src/templates/admin/membres/import.tpl from [e21d9b42f1] to [673573742c].
1 2 | {include file="admin/_head.tpl" title="Import & export des membres" current="membres" js=1} | < | > > > > | | | < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | {include file="admin/_head.tpl" title="Import & export des membres" current="membres" js=1} <ul class="actions"> <li class="current"><a href="{$www_url}admin/membres/import.php">Importer</a></li> <li><a href="{$www_url}admin/membres/import.php?export">Exporter en CSV</a></li> </ul> {form_errors} {if $ok} <p class="confirm"> L'import s'est bien déroulé. </p> {/if} <form method="post" action="{$self_url}" enctype="multipart/form-data"> <fieldset> <legend>Importer depuis un fichier</legend> <dl> <dt><label for="f_file">Fichier à importer</label> <b title="(Champ obligatoire)">obligatoire</b></dt> <dd><input type="file" name="upload" id="f_file" required="required" /></dd> |
︙ | ︙ |
Modified src/templates/admin/membres/message_collectif.tpl from [b82f35bae6] to [c3a52f70e1].
1 2 | {include file="admin/_head.tpl" title="Envoyer un message collectif" current="membres/message_collectif"} | < < | < < | 1 2 3 4 5 6 7 8 9 10 | {include file="admin/_head.tpl" title="Envoyer un message collectif" current="membres/message_collectif"} {form_errors} <form method="post" action="{$self_url}" onsubmit="return confirm('Envoyer vraiment ce message collectif ?');"> <fieldset class="memberMessage"> <legend>Message</legend> <dl> <dt>Expéditeur</dt> <dd>{$config.nom_asso} <{$config.email_asso}></dd> |
︙ | ︙ |
Modified src/www/admin/membres/action.php from [42ab6e796b] to [572e76b6c5].
1 2 3 4 5 6 7 | <?php namespace Garradin; require_once __DIR__ . '/_inc.php'; $session->requireAccess('membres', Membres::DROIT_ADMIN); | | | < | < | | | < < > | < | | | > > | > | > | > < < < < < | < < | > > > | > | > | | | < < | | < < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | <?php namespace Garradin; require_once __DIR__ . '/_inc.php'; $session->requireAccess('membres', Membres::DROIT_ADMIN); if (!f('selected') || !is_array(f('selected')) || !count(f('selected'))) { throw new UserException("Aucun membre sélectionné."); } foreach (f('selected') as &$id) { $id = (int) $id; // On ne permet pas d'action collective sur l'utilisateur courant pour éviter les risques // d'erreur genre "oh je me suis supprimé du coup j'ai plus accès à rien" if ($id == $user->id) { throw new UserException("Il n'est pas possible de se modifier ou supprimer soi-même."); } } $action = f('action') ?: (f('move') ? 'move' : (f('delete') ? 'delete' : '')); if (!$action) { throw new UserException('Aucune action sélectionnée.'); } if ($action == 'move' && f('confirm')) { $form->check('membres_action', [ 'selected' => 'required|array', 'id_categorie' => 'required|numeric', ]); if (!$form->hasErrors()) { $membres->changeCategorie(f('id_categorie'), f('selected')); Utils::redirect('/admin/membres/'); } } elseif ($action == 'delete' && f('confirm')) { $form->check('membres_action', [ 'selected' => 'required|array', ]); if (!$form->hasErrors()) { $membres->delete(f('selected')); Utils::redirect('/admin/membres/'); } } $tpl->assign('selected', f('selected')); $tpl->assign('nb_selected', count(f('selected'))); if ($action == 'move') { $cats = new Membres\Categories; $tpl->assign('membres_cats', $cats->listSimple()); } $tpl->assign('action', $action); $tpl->display('admin/membres/action.tpl'); |
Modified src/www/admin/membres/ajouter.php from [e68055f415] to [864047be64].
1 2 3 4 5 6 7 8 9 10 | <?php namespace Garradin; require_once __DIR__ . '/_inc.php'; $session->requireAccess('membres', Membres::DROIT_ECRITURE); $cats = new Membres\Categories; $champs = $config->get('champs_membres'); | < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php namespace Garradin; require_once __DIR__ . '/_inc.php'; $session->requireAccess('membres', Membres::DROIT_ECRITURE); $cats = new Membres\Categories; $champs = $config->get('champs_membres'); if (f('save')) { $form->check('new_member', [ 'passe' => 'confirmed', // FIXME: ajouter les règles pour les champs membres ]); |
︙ | ︙ | |||
44 45 46 47 48 49 50 | catch (UserException $e) { $form->addError($e->getMessage()); } } } | < | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | catch (UserException $e) { $form->addError($e->getMessage()); } } } $tpl->assign('passphrase', Utils::suggestPassword()); $tpl->assign('champs', $champs->getAll()); $tpl->assign('membres_cats', $cats->listSimple()); $tpl->assign('current_cat', f('id_categorie') ?: $config->get('categorie_membres')); $tpl->display('admin/membres/ajouter.tpl'); |
Modified src/www/admin/membres/import.php from [058273a22b] to [cc287776b5].
︙ | ︙ | |||
11 12 13 14 15 16 17 | { header('Content-type: application/csv'); header('Content-Disposition: attachment; filename="Export membres - ' . $config->get('nom_asso') . ' - ' . date('Y-m-d') . '.csv"'); $import->toCSV(); exit; } | < | < | < < < | > > > | | < < | | | | < | | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | { header('Content-type: application/csv'); header('Content-Disposition: attachment; filename="Export membres - ' . $config->get('nom_asso') . ' - ' . date('Y-m-d') . '.csv"'); $import->toCSV(); exit; } $champs = $config->get('champs_membres')->getAll(); $champs->date_inscription = (object) ['title' => 'Date inscription', 'type' => 'date']; if (f('import')) { $form->check('membres_import', [ 'upload' => 'file|required', 'type' => 'required|in:galette,garradin', 'galette_translate' => 'array', ]); if (!$form->hasErrors()) { try { if (f('type') == 'galette') { $import->fromGalette($_FILES['upload']['tmp_name'], f('galette_translate')); } elseif (f('type') == 'garradin') { $import->fromCSV($_FILES['upload']['tmp_name']); } else { throw new UserException('Import inconnu.'); } Utils::redirect('/admin/membres/import.php?ok'); } catch (UserException $e) { $form->addError($e->getMessage()); } } } $tpl->assign('ok', null !== qg('ok') ? true : false); $tpl->assign('garradin_champs', $champs); $tpl->assign('galette_champs', $import->galette_fields); $tpl->assign('translate', f('galette_translate')); $tpl->display('admin/membres/import.tpl'); |
Modified src/www/admin/membres/message.php from [a5ef4b0e94] to [2aee7f9dae].
︙ | ︙ | |||
20 21 22 23 24 25 26 | } if (empty($membre->email)) { throw new UserException('Ce membre n\'a pas d\'adresse email renseignée.'); } | < | < | < < < | < < < | > | | < < | | | < | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | } if (empty($membre->email)) { throw new UserException('Ce membre n\'a pas d\'adresse email renseignée.'); } if (f('save')) { $form->check('send_message_' . $id, [ 'sujet' => 'required|string', 'message' => 'required|string', ]); if (!$form->hasErrors()) { try { $membres->sendMessage($membre->email, f('sujet'), f('message'), (bool) f('copie')); Utils::redirect('/admin/membres/?sent'); } catch (UserException $e) { $form->addError($e->getMessage()); } } } $cats = new Membres\Categories; $tpl->assign('categorie', $cats->get($membre->id_categorie)); $tpl->assign('membre', $membre); $tpl->display('admin/membres/message.tpl'); |
Modified src/www/admin/membres/message_collectif.php from [96dd15d89a] to [9ac4678b30].
1 2 3 4 5 6 7 | <?php namespace Garradin; require_once __DIR__ . '/_inc.php'; $session->requireAccess('membres', Membres::DROIT_ADMIN); | < | < | < < < | < < < | > > > | | < < | | < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php namespace Garradin; require_once __DIR__ . '/_inc.php'; $session->requireAccess('membres', Membres::DROIT_ADMIN); if (f('save')) { $form->check('send_message_collectif', [ 'sujet' => 'required|string', 'message' => 'required|string', 'dest' => 'numeric', 'subscribed' => 'boolean', ]); if (!$form->hasErrors()) { try { $membres->sendMessageToCategory(f('dest'), f('sujet'), f('message'), (bool) f('subscribed')); Utils::redirect('/admin/membres/?sent'); } catch (UserException $e) { $form->addError($e->getMessage()); } } } $cats = new Membres\Categories; $tpl->assign('cats_liste', $cats->listSimple()); $tpl->assign('cats_cachees', $cats->listHidden()); $tpl->display('admin/membres/message_collectif.tpl'); |
Modified src/www/admin/membres/modifier.php from [7349c1a177] to [2e7de0086f].
︙ | ︙ | |||
24 25 26 27 28 29 30 | if (($membre_cat->droit_membres == Membres::DROIT_ADMIN) && ($user->droits->membres < Membres::DROIT_ADMIN)) { throw new UserException("Seul un membre admin peut modifier un autre membre admin."); } | < < | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | if (($membre_cat->droit_membres == Membres::DROIT_ADMIN) && ($user->droits->membres < Membres::DROIT_ADMIN)) { throw new UserException("Seul un membre admin peut modifier un autre membre admin."); } if (f('save')) { $form->check('edit_member_' . $id, [ 'passe' => 'confirmed', // FIXME: ajouter les règles pour les champs membres ]); |
︙ | ︙ | |||
65 66 67 68 69 70 71 | catch (UserException $e) { $form->addError($e->getMessage()); } } } | < | 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | catch (UserException $e) { $form->addError($e->getMessage()); } } } $tpl->assign('passphrase', Utils::suggestPassword()); $tpl->assign('champs', $champs->getAll()); $tpl->assign('membres_cats', $cats->listSimple()); $tpl->assign('current_cat', f('id_categorie') ?: $membre->id_categorie); $tpl->assign('can_change_id', $session->canAccess('membres', Membres::DROIT_ADMIN)); $tpl->assign('membre', $membre); $tpl->display('admin/membres/modifier.tpl'); |
Modified src/www/admin/membres/supprimer.php from [e78880eacc] to [5dd74ed6f8].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php namespace Garradin; require_once __DIR__ . '/_inc.php'; $session->requireAccess('membres', Membres::DROIT_ADMIN); $membre = $membres->get(qg('id')); if (!$membre) { throw new UserException("Ce membre n'existe pas."); } | > > < < | | | | < < < > | < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | <?php namespace Garradin; require_once __DIR__ . '/_inc.php'; $session->requireAccess('membres', Membres::DROIT_ADMIN); qv(['id' => 'required|numeric']); $membre = $membres->get(qg('id')); if (!$membre) { throw new UserException("Ce membre n'existe pas."); } if ($membre->id == $user->id) { throw new UserException("Il n'est pas possible de supprimer votre propre compte."); } if (f('delete')) { $form->check('delete_membre_'.$membre->id); if (!$form->hasErrors()) { try { $membres->delete($membre->id); Utils::redirect('/admin/membres/'); } catch (UserException $e) { $form->addError($e->getMessage()); } } } $tpl->assign('membre', $membre); $tpl->display('admin/membres/supprimer.tpl'); |