Differences From Artifact [15a9109208]:

To Artifact [16b21a0d0d]:


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
71
72
73
74
75
76
77
78
79
80
81

if (!empty($_POST['save']))
{
    if (!Utils::CSRF_check('edit_me'))
    {
        $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 ($config->get('champs_membres')->getAll() as $key=>$c)
            {
                if (!empty($c['editable']))
                {
                    $data[$key] = Utils::post($key);
                }
            }

            $membres->edit($membre['id'], $data, false);
            $membres->updateSessionData();

            if (Utils::post('otp') == 'generate')
            {
                $secret = $membres->setOTP();
                Utils::redirect('/admin/mes_infos.php?otp=' . rawurlencode($secret));
            }
            elseif (Utils::post('otp') == 'disable')
            {
                $secret = $membres->disableOTP();
                Utils::redirect('/admin/mes_infos.php?otp=off');
            }
            else
            {
                Utils::redirect('/admin/');
            }
        }
        catch (UserException $e)
        {
            $error = $e->getMessage();
        }
    }
}

$tpl->assign('error', $error);
$tpl->assign('otp_status', Utils::get('otp'));

if (Utils::get('otp') && Utils::get('otp') != 'off')
{
    $url = \KD2\Security_OTP::getOTPAuthURL($config->get('nom_asso'), Utils::get('otp'));
    $qrcode = new \KD2\QRCode($url);
    $qrcode = 'data:image/svg+xml;base64,' . base64_encode($qrcode->toSVG());
    $tpl->assign('otp_qrcode', $qrcode);

    $tpl->assign('otp_status', implode(' ', str_split(Utils::get('otp'), 4)));
}

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

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

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







<
<
<
<
















<
<
<
<
<
<
<
<
<
<
<
<
|
<









<

<
<
<
<
<
<
<
<
<
<
<





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

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




    else
    {
        try {
            $data = [];

            foreach ($config->get('champs_membres')->getAll() as $key=>$c)
            {
                if (!empty($c['editable']))
                {
                    $data[$key] = Utils::post($key);
                }
            }

            $membres->edit($membre['id'], $data, false);
            $membres->updateSessionData();













            Utils::redirect('/admin/');

        }
        catch (UserException $e)
        {
            $error = $e->getMessage();
        }
    }
}

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













$tpl->assign('champs', $config->get('champs_membres')->getAll());

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

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