diff --git a/assets/less/mio/classes/input/text.less b/assets/less/mio/classes/input/text.less
index df90e5ac..e58e6d21 100644
--- a/assets/less/mio/classes/input/text.less
+++ b/assets/less/mio/classes/input/text.less
@@ -7,6 +7,10 @@
&:focus {
border-color: #9475b2;
}
+
+ &--readonly {
+ color: #666;
+ }
}
.mio--dark .input__text {
diff --git a/config/config.example.ini b/config/config.example.ini
index 38985de1..3b1aff5e 100644
--- a/config/config.example.ini
+++ b/config/config.example.ini
@@ -42,3 +42,7 @@ method = null
; encryption = tls
; username = sys@misuzu.localhost
; password = flashwaveiscool78
+
+[Exceptions]
+report_url = http://misuzu-crash.localhost/report.php
+hash_key = secret_key_used_to_make_a_hmac_sha256_hash
diff --git a/public/settings.php b/public/settings.php
index 7138d6fa..e4828aac 100644
--- a/public/settings.php
+++ b/public/settings.php
@@ -4,7 +4,6 @@ use Misuzu\IO\File;
require_once __DIR__ . '/../misuzu.php';
-$db = Database::connection();
$tpl = $app->getTemplating();
$queryOffset = (int)($_GET['o'] ?? 0);
@@ -148,7 +147,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
) {
$updateAccountFields = [];
- $fetchPassword = $db->prepare('
+ $fetchPassword = Database::prepare('
SELECT `password`
FROM `msz_users`
WHERE `user_id` = :user_id
@@ -222,7 +221,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
}
if (count($updateAccountFields) > 0) {
- $updateUser = $db->prepare('
+ $updateUser = Database::prepare('
UPDATE `msz_users`
SET ' . pdo_prepare_array_update($updateAccountFields, true) . '
WHERE `user_id` = :user_id
@@ -298,7 +297,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
break;
}
- $findSession = $db->prepare('
+ $findSession = Database::prepare('
SELECT `session_id`, `user_id`
FROM `msz_sessions`
WHERE `session_id` = :session_id
@@ -330,7 +329,7 @@ $tpl->var('settings_errors', $settingsErrors);
switch ($settingsMode) {
case 'account':
$profileFields = user_profile_fields_get();
- $getUserFields = $db->prepare('
+ $getUserFields = Database::prepare('
SELECT ' . pdo_prepare_array($profileFields, true, '`user_%s`') . '
FROM `msz_users`
WHERE `user_id` = :user_id
@@ -338,10 +337,19 @@ switch ($settingsMode) {
$getUserFields->bindValue('user_id', $app->getUserId());
$userFields = $getUserFields->execute() ? $getUserFields->fetch() : [];
+ $getMail = Database::prepare('
+ SELECT `email`
+ FROM `msz_users`
+ WHERE `user_id` = :user_id
+ ');
+ $getMail->bindValue('user_id', $app->getUserId());
+ $currentEmail = $getMail->execute() ? $getMail->fetchColumn() : 'Failed to fetch e-mail address.';
+
$tpl->vars([
'settings_profile_fields' => $profileFields,
'settings_profile_values' => $userFields,
'settings_disable_account_options' => $disableAccountOptions,
+ 'settings_email' => $currentEmail,
]);
break;
@@ -357,7 +365,7 @@ switch ($settingsMode) {
break;
case 'sessions':
- $getSessionCount = $db->prepare('
+ $getSessionCount = Database::prepare('
SELECT COUNT(`session_id`)
FROM `msz_sessions`
WHERE `user_id` = :user_id
@@ -365,7 +373,7 @@ switch ($settingsMode) {
$getSessionCount->bindValue('user_id', $app->getUserId());
$sessionCount = $getSessionCount->execute() ? $getSessionCount->fetchColumn() : 0;
- $getSessions = $db->prepare('
+ $getSessions = Database::prepare('
SELECT
`session_id`, `session_country`, `user_agent`, `created_at`, `expires_on`,
INET6_NTOA(`session_ip`) as `session_ip_decoded`
@@ -389,7 +397,7 @@ switch ($settingsMode) {
break;
case 'login-history':
- $getLoginAttemptsCount = $db->prepare('
+ $getLoginAttemptsCount = Database::prepare('
SELECT COUNT(`attempt_id`)
FROM `msz_login_attempts`
WHERE `user_id` = :user_id
@@ -397,7 +405,7 @@ switch ($settingsMode) {
$getLoginAttemptsCount->bindValue('user_id', $app->getUserId());
$loginAttemptsCount = $getLoginAttemptsCount->execute() ? $getLoginAttemptsCount->fetchColumn() : 0;
- $getLoginAttempts = $db->prepare('
+ $getLoginAttempts = Database::prepare('
SELECT
`attempt_id`, `attempt_country`, `was_successful`, `user_agent`, `created_at`,
INET6_NTOA(`attempt_ip`) as `attempt_ip_decoded`
diff --git a/views/mio/settings/account.twig b/views/mio/settings/account.twig
index fe87806c..72e3467f 100644
--- a/views/mio/settings/account.twig
+++ b/views/mio/settings/account.twig
@@ -37,7 +37,16 @@
+
+