This commit is contained in:
Mateusz Gruszczyński committed 2026-11-04 08:55:53 +01:00
1 parent cdca612a59
commit eb25f8de4a
56 files changed
+7848 -4345

No files matched your search

+38
View File
@@ -1,5 +1,43 @@
# 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`.