Siirrä allekirjoitukset Asiakaspalvelu-välilehdelle + postilaatikoiden piilotus
- Uusi "Omat asetukset" -näkymä Asiakaspalvelu-tabiin (allekirjoitukset + mailbox-näkyvyys) - Uusi user_hidden_mailboxes-taulu piilotettavien postilaatikoiden tallennukseen - API: profile_update + check_auth tukevat hidden_mailboxes-listaa - Tikettilista suodattaa piilotettujen mailboxien tiketit automaattisesti - Reply-formin mailbox-dropdown piilottaa piilotetut postilaatikot - Allekirjoitukset poistettu Oma profiili -modalista (siirretty Asiakaspalvelu-asetuksiin) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
21
db.php
21
db.php
@@ -159,6 +159,13 @@ function initDatabase(): void {
|
||||
UNIQUE KEY udx_user_mailbox (user_id, mailbox_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
|
||||
|
||||
"CREATE TABLE IF NOT EXISTS user_hidden_mailboxes (
|
||||
user_id VARCHAR(20) NOT NULL,
|
||||
mailbox_id VARCHAR(20) NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox_id),
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4",
|
||||
|
||||
"CREATE TABLE IF NOT EXISTS config (
|
||||
config_key VARCHAR(100) PRIMARY KEY,
|
||||
config_value TEXT
|
||||
@@ -776,6 +783,8 @@ function dbGetUser(string $id): ?array {
|
||||
}
|
||||
$u['signatures'] = $sigs;
|
||||
|
||||
$u['hidden_mailboxes'] = _dbFetchColumn("SELECT mailbox_id FROM user_hidden_mailboxes WHERE user_id = ?", [$id]);
|
||||
|
||||
return $u;
|
||||
}
|
||||
|
||||
@@ -797,6 +806,8 @@ function dbGetUserByUsername(string $username): ?array {
|
||||
}
|
||||
$u['signatures'] = $sigs;
|
||||
|
||||
$u['hidden_mailboxes'] = _dbFetchColumn("SELECT mailbox_id FROM user_hidden_mailboxes WHERE user_id = ?", [$u['id']]);
|
||||
|
||||
return $u;
|
||||
}
|
||||
|
||||
@@ -838,6 +849,16 @@ function dbSaveUser(array $user): void {
|
||||
}
|
||||
}
|
||||
|
||||
// Piilotetut postilaatikot
|
||||
if (array_key_exists('hidden_mailboxes', $user)) {
|
||||
_dbExecute("DELETE FROM user_hidden_mailboxes WHERE user_id = ?", [$user['id']]);
|
||||
if (!empty($user['hidden_mailboxes'])) {
|
||||
foreach ($user['hidden_mailboxes'] as $mbId) {
|
||||
_dbExecute("INSERT IGNORE INTO user_hidden_mailboxes (user_id, mailbox_id) VALUES (?, ?)", [$user['id'], $mbId]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$db->commit();
|
||||
} catch (Exception $e) {
|
||||
$db->rollback();
|
||||
|
||||
Reference in New Issue
Block a user