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
|
<?php
use Digitigrade\Model\UserAccount;
use Digitigrade\Router;
use Digitigrade\UserSettings;
Router::getInstance()->mount('/preferences', function (array $args) {
$user = UserAccount::requireByCurrentSession();
render_template('preferences_page', ['user' => $user]);
});
Router::getInstance()->mount('/fragment/preferences', function (array $args) {
$user = UserAccount::requireByCurrentSession();
$settings = new UserSettings($user);
$saved = false;
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// updating the preferences
$user->actor->requestToFollow = $_POST['requestToFollow'] == 'true';
$user->actor->save();
$settings->set('interface.smallUnreadIndicators', $_POST['smallIndicators']);
$settings->set('locale.timezone', $_POST['timezone']);
$saved = true;
}
render_template('preferences_form', ['user' => $user, 'saved' => $saved]);
});
Router::getInstance()->mount('/fragment/changePassword', function (array $args) {
$user = UserAccount::requireByCurrentSession();
$error = null;
$success = false;
if (isset($_POST['current'], $_POST['new'], $_POST['newRepeat'])) {
if (!$user->verifyPassword($_POST['current'])) {
$error = 'currentIncorrect';
} elseif ($_POST['new'] != $_POST['newRepeat']) {
$error = 'doesntMatch';
} else {
$user->passwordHash = defaults_password_hash($_POST['new']);
$user->save();
$success = true;
}
}
render_template('change_password_form', [
'error' => isset($error) ? __("changePassword.error.$error") : null,
'success' => $success,
'current' => $success ? null : ($_POST['current'] ?? null),
'new' => $success ? null : ($_POST['new'] ?? null),
'newRepeat' => $success ? null : ($_POST['newRepeat'] ?? null)
]);
});
|