Files
PostfixAdminRS/PORT-PARITY.md
T
2026-11-04 08:55:53 +01:00

4.3 KiB
Raw Blame History

PostfixAdmin → PostfixAdmin-RS: zgodność

Referencja: PostfixAdmin 4.0.5 oraz gałąź master (listopad 2026), schemat bazy 1857. Cel: zastąpienie runtime PHP przy zachowaniu bazy, map SQL Postfixa/Dovecota i skryptów vacation.pl / fetchmail.pl.

Logika przeniesiona 1:1

PostfixAdmin PostfixAdmin-RS
list_domains_for_admin() – admin domeny widzi tylko aktywne, nie-backupMX domeny tak samo; rewalidacja co session_revalidate_seconds
DomainHandler – limity -1/0/n, password_expiry 0..36500, konflikt z vacation_domain, domyślne aliasy, kasowanie z domain_admins/alias/mailbox/alias_domain/vacation/vacation_notification/quota/quota2/fetchmail/log, blokada gdy domena jest celem domeny aliasowej tak samo (w transakcji)
alias_count = aliasy − skrzynki tak samo (licznik i limit)
MailboxHandler::check_quota() / allowed_quota() tak samo, łącznie z komunikatem „maks. N MB”
MailboxHandler – alias skrzynki tworzony razem ze skrzynką, aktywność aliasu = aktywność skrzynki, kasowanie fetchmail/vacation/vacation_notification/quota/quota2/alias tak samo (+ hasła aplikacji, wyjątki TOTP)
generate_password / show_password tak samo (wygenerowane hasło pokazywane raz)
mailbox_postpassword_script – blokuje zmianę hasła przez admina, wywoływany przy tworzeniu z hasłem na stdin tak samo (hook argv)
edit_mailbox_name (master) – użytkownik zmienia swoją nazwę, globalnie lub dla listy domen tak samo
AliasHandler – limit aliasów, catch-all @domena, @domena → @inna, konto lokalne ^[a-z0-9]+$, „alias wskazuje na siebie”, emailcheck_localaliasonly, special_alias_control, ukrywanie aliasów skrzynek na listach admina tak samo
alias_control / alias_control_admin dotyczą aliasów skrzynek (przekierowań), edit_alias – użytkownika tak samo (wcześniejsza wersja RS błędnie blokowała nimi wszystkie aliasy)
gen_show_status() – niedostarczalny/zewnętrzny w zakresie domen admina, domeny aliasowe, recipient_delimiter jako zbiór znaków (master), vacation, disabled, expired, POP/IMAP, custom tak samo
AliasdomainHandler tak samo + ochrona przed łańcuchami
AdminHandler – domeny + znacznik ALL dla superadmina tak samo; nie można zdegradować/wyłączyć samego siebie
VacationHandler – set_away czyści vacation_notification, remove tylko dezaktywuje, alias transportu tak samo; daty z godziną, vacation_choice_of_reply
FetchmailHandler – src_password zapisywane base64 (b64p) tak samo (wcześniejsza wersja RS zapisywała jawny tekst)
editactive.php POST /api/{domains,mailboxes,aliases,alias-domains,admins}/{id}/active
list-virtual.php – wyszukiwanie, stronicowanie, filtr aktywności, delete-inactive.php tak samo
viewlog.php – „wszystkie domeny”, stronicowanie tak samo + filtr tekstowy
setup.php / upgrade.php / DatabaseIntegrityChecker --init-schema [--dry-run], --integrity-check
scripts/domain-dns-check.php --refresh-dns
logowanie admin/users/ jeden formularz z automatycznym wyborem (admin, potem skrzynka) lub ręcznym
TOTP, wyjątki TOTP, hasła aplikacji, odzyskiwanie hasła e-mailem tak samo
DKIM (dkim, dkim_signing) tak samo + opcjonalnie Rspamd

Świadome różnice

Obszar Powód
Hooki PHP (*_struct_hook, maildir_name_hook, language_hook) nie wykonujemy PHP; zamiast tego maildir_template i hooki jako program + argumenty
password_validation z dowolnymi wyrażeniami regularnymi typowane min_length / min_letters / min_digits (odpowiada domyślnej konfiguracji PA)
Wygląd, theme_*, header_text, footer_* nowy interfejs; MOTD obsługiwane
Wiadomość powitalna wysyłana w tle – brak SMTP nie blokuje tworzenia skrzynki

Czego brak

Obszar Uwagi
XML-RPC (xmlrpc.php) wyłączone w typowych wdrożeniach; brak planów
Odzyskiwanie hasła SMS wymaga interfejsu dostawcy SMS
update-check.php niepotrzebne w runtime
CLI CRUD (postfixadmin-cli) jest API JSON; CLI tylko do instalacji/utrzymania
Połączenie z bazą przez gniazdo Unix i certyfikaty klienta TLS tylko host:port i TLS z weryfikacją serwera