Overview
Comment:Modernisation: suppression progressive de $_POST et Utils::post
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | dev
Files: files | file ages | folders
SHA1: 986fdb6e0af9f73e219f05f5533a0fded5eb101f
User & Date: bohwaz on 2017-08-02 07:23:11
Other Links: branch diff | manifest | tags
Context
2017-08-03
01:09
Création de page publique depuis la configuration, pour aider les gens perdus check-in: 676fa5202d user: bohwaz tags: dev
2017-08-02
07:23
Modernisation: suppression progressive de $_POST et Utils::post check-in: 986fdb6e0a user: bohwaz tags: dev
07:16
Déplacement progressif des modifieurs et fonctions dans l'objet check-in: 64e31c6172 user: bohwaz tags: dev
Changes

Modified src/www/admin/login_otp.php from [5424a00ba0] to [a8c97c28e9].

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

if (f('login'))
{
    $form->check('otp', [
        'code' => 'numeric|required',
    ]);

    if (!$form->hasErrors() && ($login = Membres\Session::loginOTP(Utils::post('code'))))
    {
        Utils::redirect('/admin/');
    }
}

//var_dump($form->hasErrors()); exit;

$tpl->assign('fail', $login === false);

$tpl->assign('time', time());

$tpl->display('admin/login_otp.tpl');







|





<
<





15
16
17
18
19
20
21
22
23
24
25
26
27


28
29
30
31
32

if (f('login'))
{
    $form->check('otp', [
        'code' => 'numeric|required',
    ]);

    if (!$form->hasErrors() && ($login = Membres\Session::loginOTP(f('code'))))
    {
        Utils::redirect('/admin/');
    }
}



$tpl->assign('fail', $login === false);

$tpl->assign('time', time());

$tpl->display('admin/login_otp.tpl');

Modified src/www/admin/membres/ajouter.php from [bced1ce071] to [e68055f415].

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
<?php
namespace Garradin;

require_once __DIR__ . '/_inc.php';

$session->requireAccess('membres', Membres::DROIT_ECRITURE);

$cats = new Membres\Categories;
$champs = $config->get('champs_membres');

$error = false;

if (!empty($_POST['save']))
{
    if (!Utils::CSRF_check('new_member'))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    }
    elseif (Utils::post('passe') != Utils::post('repasse'))


    {
        $error = 'La vérification ne correspond pas au mot de passe.';
    }
    else

    {
        try
        {
            if ($session->canAccess('membres', Membres::DROIT_ADMIN))
            {
                $id_categorie = Utils::post('id_categorie');
            }
            else
            {
                $id_categorie = $config->get('categorie_membres');
            }

            $data = ['id_categorie' => $id_categorie];

            foreach ($champs->getAll() as $key=>$dismiss)
            {
                $data[$key] = Utils::post($key);
            }

            $id = $membres->add($data);

            Utils::redirect('/admin/membres/fiche.php?id='.(int)$id);
        }
        catch (UserException $e)
        {
            $error = $e->getMessage();
        }
    }
}

$tpl->assign('error', $error);
$tpl->assign('passphrase', Utils::suggestPassword());
$tpl->assign('champs', $champs->getAll());

$tpl->assign('membres_cats', $cats->listSimple());
$tpl->assign('current_cat', Utils::post('id_categorie') ?: $config->get('categorie_membres'));

$tpl->display('admin/membres/ajouter.tpl');












|

|
<
<
<
|
>
>
|
<
<
<
>





|










|








|









|


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
<?php
namespace Garradin;

require_once __DIR__ . '/_inc.php';

$session->requireAccess('membres', Membres::DROIT_ECRITURE);

$cats = new Membres\Categories;
$champs = $config->get('champs_membres');

$error = false;

if (f('save'))
{
    $form->check('new_member', [



        'passe' => 'confirmed',
        // FIXME: ajouter les règles pour les champs membres
    ]);




    if (!$form->hasErrors())
    {
        try
        {
            if ($session->canAccess('membres', Membres::DROIT_ADMIN))
            {
                $id_categorie = f('id_categorie');
            }
            else
            {
                $id_categorie = $config->get('categorie_membres');
            }

            $data = ['id_categorie' => $id_categorie];

            foreach ($champs->getAll() as $key=>$dismiss)
            {
                $data[$key] = f($key);
            }

            $id = $membres->add($data);

            Utils::redirect('/admin/membres/fiche.php?id='.(int)$id);
        }
        catch (UserException $e)
        {
            $form->addError($e->getMessage());
        }
    }
}

$tpl->assign('error', $error);
$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/modifier.php from [cc405b398e] to [7349c1a177].

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
    && ($user->droits->membres < Membres::DROIT_ADMIN))
{
    throw new UserException("Seul un membre admin peut modifier un autre membre admin.");
}

$error = false;

if (!empty($_POST['save']))
{
    if (!Utils::CSRF_check('edit_member_'.$id))
    {
        $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
    }
    elseif (Utils::post('passe') != Utils::post('repasse'))


    {
        $error = 'La vérification ne correspond pas au mot de passe.';
    }
    else

    {
        try {
            $data = [];

            foreach ($champs->getAll() as $key=>$config)
            {
                $data[$key] = Utils::post($key);
            }

            if ($session->canAccess('membres', Membres::DROIT_ADMIN) && $user->id != $membre->id)
            {
                $data['id_categorie'] = Utils::post('id_categorie');
                $data['id'] = Utils::post('id');
            }

            $membres->edit($id, $data);

            if (isset($data['id']) && $data['id'] != $id)
            {
                $id = (int)$data['id'];
            }

            Utils::redirect('/admin/membres/fiche.php?id='.(int)$id);
        }
        catch (UserException $e)
        {
            $error = $e->getMessage();
        }
    }
}

$tpl->assign('error', $error);
$tpl->assign('passphrase', Utils::suggestPassword());
$tpl->assign('champs', $champs->getAll());

$tpl->assign('membres_cats', $cats->listSimple());
$tpl->assign('current_cat', Utils::post('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');







|

|
<
<
<
|
>
>
|
<
<
<
>






|




|
|













|









|






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
71
72
73
74
75
76
77
78
79
80
81
82
83
    && ($user->droits->membres < Membres::DROIT_ADMIN))
{
    throw new UserException("Seul un membre admin peut modifier un autre membre admin.");
}

$error = false;

if (f('save'))
{
    $form->check('edit_member_' . $id, [



        'passe' => 'confirmed',
        // FIXME: ajouter les règles pour les champs membres
    ]);




    if (!$form->hasErrors())
    {
        try {
            $data = [];

            foreach ($champs->getAll() as $key=>$config)
            {
                $data[$key] = f($key);
            }

            if ($session->canAccess('membres', Membres::DROIT_ADMIN) && $user->id != $membre->id)
            {
                $data['id_categorie'] = f('id_categorie');
                $data['id'] = f('id');
            }

            $membres->edit($id, $data);

            if (isset($data['id']) && $data['id'] != $id)
            {
                $id = (int)$data['id'];
            }

            Utils::redirect('/admin/membres/fiche.php?id='.(int)$id);
        }
        catch (UserException $e)
        {
            $form->addError($e->getMessage());
        }
    }
}

$tpl->assign('error', $error);
$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/password.php from [cc263171b2] to [8205464eee].

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
    if ($membres->recoverPasswordConfirm(qg('c')))
    {
        Utils::redirect('/admin/password.php?new_sent');
    }

    $error = 'EXPIRED';
}
elseif (!empty($_POST['recover']))
{
    if (!Utils::CSRF_check('recoverPassword'))


    {
        $error = 'OTHER';
    }
    else
    {
        if (trim(Utils::post('id')) && $membres->recoverPasswordCheck(Utils::post('id')))
        {
            Utils::redirect('/admin/password.php?sent');
        }

        $error = 'MAIL';
    }
}

if (!$error && null !== qg('sent'))
{
    $tpl->assign('sent', true);
}







|

|
>
>
|
|
<
<

|




|







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
    if ($membres->recoverPasswordConfirm(qg('c')))
    {
        Utils::redirect('/admin/password.php?new_sent');
    }

    $error = 'EXPIRED';
}
elseif (f('recover'))
{
    $form->check('recoverPassword', [
        'id' => 'required'
    ]);

    if (!$form->hasErrors())


    {
        if (trim(f('id')) && $membres->recoverPasswordCheck(f('id')))
        {
            Utils::redirect('/admin/password.php?sent');
        }

        $form->addError('Ce membre n\'a pas d\'adresse email enregistrée ou n\'a pas le droit de se connecter.');
    }
}

if (!$error && null !== qg('sent'))
{
    $tpl->assign('sent', true);
}