Files
2026-11-04 08:55:53 +01:00

5.5 KiB
Raw Permalink Blame History

Changelog

0.1.0

Logika dopasowana do PostfixAdmin 4.0.5 / master, przygotowanie do pracy produkcyjnej.

Zgodność z PostfixAdmin

  • Limity domen: -1 = wyłączone, 0 = bez limitu (wcześniej -1 przy aliasach znaczyło „bez limitu”); licznik aliasów nie obejmuje aliasów skrzynek.
  • Quota skrzynek liczona jak check_quota()/allowed_quota(); formularz pokazuje dozwolone maksimum. Wyłączona funkcja quota nie nadpisuje już quota skrzynek zerem.
  • alias_control/alias_control_admin dotyczą wyłącznie aliasów skrzynek (przekierowań); wcześniej blokowały tworzenie wszystkich aliasów.
  • Alias nie może wskazywać na siebie; dozwolone konta lokalne (root) i @domena dla catch-all; listy administratora pomijają aliasy skrzynek.
  • Edycja skrzynki zawsze synchronizuje aktywność aliasu skrzynki; edycja częściowa nie resetuje pól (SMTP, telefon, e-mail).
  • Edycja domeny bez podanych limitów zachowuje dotychczasowe wartości (wcześniej przywracała domyślne).
  • Domena: walidacja password_expiry (0–36500), konflikt z vacation_domain, usuwanie w transakcji.
  • Administrator domeny widzi tylko aktywne domeny bez backup MX (list_domains_for_admin).
  • Administratorzy: zachowanie listy domen superadmina, ochrona przed odebraniem sobie uprawnień.
  • Autoresponder: „Wracam” dezaktywuje zamiast usuwać, czyszczenie vacation_notification, godziny od/do, vacation_choice_of_reply.
  • Fetchmail: hasło źródłowe zapisywane base64, jak oczekuje fetchmail.pl.
  • recipient_delimiter traktowany jako zbiór znaków; status POP/IMAP jak w gen_show_status().
  • edit_mailbox_name: użytkownik skrzynki może zmienić własną nazwę (globalnie lub dla listy domen).
  • Nowe akcje: przełączanie aktywności (domeny, skrzynki, aliasy, domeny aliasowe, administratorzy), przekierowania skrzynki, wyszukiwanie globalne i w domenie, stronicowanie, filtr aktywności aliasów, dziennik ze stronicowaniem.

Instalacja i utrzymanie

  • --init-schema [--dry-run] (odpowiednik setup.php/upgrade.php), --create-superadmin, --integrity-check, --refresh-dns, --help.
  • Baza developerska tworzona tym samym kodem co produkcyjny schemat.

Bezpieczeństwo

  • trusted_proxies – poprawny adres klienta za reverse proxy (limit logowań, wyjątki TOTP).
  • Rewalidacja sesji, wylogowanie innych sesji po zmianie hasła, czyszczenie pamięci sesji/limitów, opcjonalny HSTS.
  • Logowanie z automatycznym rozpoznaniem konta (administrator, następnie skrzynka).
  • Wiadomość powitalna wysyłana w tle, limit czasu SMTP 15 s.

Poprawki

  • PostgreSQL: logowanie i listy nie działały (CAST(boolean AS BIGINT), sumy NUMERIC, parametry timestamp).
  • MySQL/PostgreSQL: sumy quota rzutowane na liczbę całkowitą.

Interfejs

  • Nowy interfejs: adresy URL widoków (odświeżenie/zakładki/przycisk wstecz), lista wirtualna domeny, wyszukiwarka, stronicowanie, formularze z potwierdzeniem hasła i generatorem, błędy wyświetlane w oknie formularza, widok na telefonie, panel użytkownika (przekierowania, autoresponder, nazwa, 2FA).
  • Teksty źródłowe po angielsku, kompletne tłumaczenie polskie (łącznie z komunikatami API).

0.0.3

  • Alias status is shown as a simple Alias badge; catch-all aliases follow PostfixAdmin semantics (* in the form, @domain in the database), including edit/delete compatibility and catch-all domain forwarding to @target-domain.

  • Fixed MySQL/MariaDB TEXT/LONGTEXT decoding through sqlx::Any; alias destinations from PostfixAdmin (alias.goto) now render from the real database value instead of falling back to an empty string.

  • Alias destination listing now normalizes goto through the database dialect so targets render consistently on MySQL/MariaDB, PostgreSQL and SQLite.

  • Static release validation no longer hard-codes the application or Rust version; it validates semantic versioning and Cargo/toolchain consistency instead.

  • Domain workspace now separates user aliases from technical/default aliases instead of mixing them in one table.

  • Alias tables keep the PostfixAdmin-RS data model (address, destination, description, delivery status, active state and actions) while using a clearer full-width layout inspired by classic PostfixAdmin.

  • Mailbox self-alias rows are hidden from the domain alias sections so mailbox-managed routing does not clutter the alias view.

  • Technical alias edit/delete controls follow the existing special_alias_control and global-admin permissions.

  • Release version bumped to 0.0.3.

0.0.2

  • Mailbox and alias creation in a selected domain now accepts only the local part; the domain is read-only.
  • Admin Vacation UI now searches/selects an existing mailbox and uses the same editor as a mailbox user.
  • Vacation save/delete now synchronizes the PostfixAdmin autoreply transport address in alias.goto, so the mail transport actually receives the vacation copy.
  • Vacation transport destinations are hidden from alias UI and do not affect alias delivery-status badges.
  • Mailbox users can edit only alias destinations, Store & Forward, and Active; the backend also preserves protected fields on crafted requests.
  • Default technical aliases (abuse, hostmaster, postmaster, webmaster, according to config keys) are shown separately from user aliases.
  • Rspamd DKIM filesystem failures now report the operation and exact path instead of a generic I/O error.
  • Debian package includes a one-time Rspamd DKIM permission helper using a dedicated shared group; private keys stay non-world-readable.
  • Release version bumped to 0.0.2.