feat(PROJ-33): IMAP UID-Stabilität + Shared/Personal-Modus
Backend: - storage: uid BIGSERIAL Migration, MailWithUID, GetMailsWithUID, GetMailsByRecipient - tenantstore: imap_mode Spalte, GetIMAPMode, SetIMAPMode - imapserver: stable UIDs aus DB, personal/shared Modus, userEmail in session - api: GET/PUT /api/admin/settings/imap-mode (domain_admin only, double opt-in) Frontend: - IMAPSettingsTab: Modus-Anzeige + Toggle mit Double-Opt-In Dialog - Admin-Panel: IMAP-Tab für domain_admin Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -209,7 +209,7 @@ func main() {
|
||||
|
||||
// PROJ-26: IMAP Archive Server (read-only access for IMAP clients)
|
||||
if cfg.IMAPServer.Enabled {
|
||||
imapSrv := imapserver.New(cfg.IMAPServer, mailStore, users, labelSt, audlog, authMgr, logger)
|
||||
imapSrv := imapserver.New(cfg.IMAPServer, mailStore, users, labelSt, audlog, authMgr, logger, tenantSt)
|
||||
if err := imapSrv.Start(); err != nil {
|
||||
logger.Error("IMAP server failed to start", "err", err)
|
||||
os.Exit(1)
|
||||
|
||||
+13
-13
@@ -12,17 +12,17 @@ const AppVersion = "0.9.1"
|
||||
// MAJOR: Interface-Änderungen, Breaking changes innerhalb des Moduls
|
||||
// MINOR: Neue Funktionen, Bugfixes, Security-Patches
|
||||
var Modules = map[string]string{
|
||||
"storage": "1.6", // PROJ-34 retain_until, ErrRetentionLock, Purge() (GoBD-Compliance)
|
||||
"smtpd": "1.2", // IP-Allowlist fail-closed, Domain→Tenant-Routing
|
||||
"imapserver": "1.1", // Read-Only IMAP4rev1, Multi-Tenant-Isolation
|
||||
"auth": "1.3", // JWT, bcrypt cost 12, TOTP
|
||||
"audit": "1.1", // PostgreSQL append-only, QueryFilter
|
||||
"index": "1.0", // Xapian-Wrapper, Async-Worker, Tenant-Index
|
||||
"api": "1.6", // SEC-29 Rollen-Trennung, domain_auditor
|
||||
"userstore": "1.3", // domain_auditor Rolle, bcrypt, LDAP-Auth
|
||||
"imap": "1.2", // IMAP-Sync, Scheduler, POP3
|
||||
"labelstore": "1.0", // Labels, Tenant-Isolation
|
||||
"tenantstore":"1.1", // Multi-Tenancy, Quotas
|
||||
"ldapconfig": "1.1", // Pro-Mandant LDAP, TLS
|
||||
"mailparser": "1.1", // RFC-2822, MIME, MessageID-Extraktion
|
||||
"storage": "1.7", // PROJ-33 MailWithUID, GetMailsWithUID, GetMailsByRecipient
|
||||
"smtpd": "1.2", // IP-Allowlist fail-closed, Domain→Tenant-Routing
|
||||
"imapserver": "1.2", // PROJ-33 UID-Stabilität, shared/personal IMAP-Modus
|
||||
"auth": "1.3", // JWT, bcrypt cost 12, TOTP
|
||||
"audit": "1.1", // PostgreSQL append-only, QueryFilter
|
||||
"index": "1.0", // Xapian-Wrapper, Async-Worker, Tenant-Index
|
||||
"api": "1.7", // PROJ-33 IMAP-Modus-Einstellungen
|
||||
"userstore": "1.3", // domain_auditor Rolle, bcrypt, LDAP-Auth
|
||||
"imap": "1.2", // IMAP-Sync, Scheduler, POP3
|
||||
"labelstore": "1.0", // Labels, Tenant-Isolation
|
||||
"tenantstore": "1.2", // PROJ-33 imap_mode, GetIMAPMode, SetIMAPMode
|
||||
"ldapconfig": "1.1", // Pro-Mandant LDAP, TLS
|
||||
"mailparser": "1.1", // RFC-2822, MIME, MessageID-Extraktion
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user