docs-audit: the guide and the panel's words against the code
The owner's "проверь, что документация актуальна с кодом" (2026-10-16); designc5edbd8andf1cc3f3settled which side moves. The panel follows its mockups: an inbound domain's MX box ends with "Checked N ago" (dnscheck.InboundMXCheckedAt, from the cache) and its side menu has See also › Log for this domain (the Inbound log, filtered); a deferred message's history ends with the open dot of the wait in the queue, the lifetime from this Postfix; Health's lead says six cards; Overview's head says it refreshes on its own; DMARC's hint for an unaligned third party is the mockup's sentence. Help, word for word with the mockup and true to the code: the application's password kept by the server (sasldb2) for an export, a From:/Sender: refusal one row of the Outbound log, every backup password check counted (AllowPasswordChange before the compare), a password set for another user ends all their sessions, the limit mail daily per sending domain. The Filter lists topic and its menu entry are no longer shown to a domain administrator: their page is 404 to one (requireInboundGlobal), and Help shows only what its viewer can open. guide.md: Health's readings in the order of the boxes, with Notification mail; the menu and role tables have the Inbound log and Filter lists; port 25's chain has the inbound journal; level 2 does not depend on the client address, the client list refuses a message without one; four kinds of refusal (wrong Sender); the log is filtered, not searched, and a message is traced by its row; a bounced row shows only the queue lifetime; TRUSTED_PROXY_CIDR serves sign-in and setup, the account-change limit is per user; notifications' first check and hourly ceiling. The Apache vhost's comment names mod_rewrite. Tests: TestHelpHasTheInboundLogAndFilterListsTopics (the topic per viewer), TestDeliveryPageDeferredUsesRetryPolicy (the wait), TestInDomainShowsTheMockupsBoxes (checked, the log link), the Overview head; the DMARC tests take the new hint. go vet + go test (26 packages) and make e2e on the test server for this tree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -257,6 +257,7 @@ type InDomain struct {
|
||||
recipientCount int
|
||||
recipientMode string
|
||||
filterOn bool
|
||||
logHref string
|
||||
|
||||
DNS Box
|
||||
Record Record
|
||||
@@ -395,6 +396,22 @@ func (p *InDomain) WithFilter(on bool, milter, action string) *InDomain {
|
||||
return p
|
||||
}
|
||||
|
||||
// WithChecked says, as the MX box's end slot, how long ago the record was
|
||||
// checked (FormatAge; "" says nothing), as a sending domain's records do.
|
||||
func (p *InDomain) WithChecked(checked string) *InDomain {
|
||||
if checked != "" {
|
||||
p.DNS.End = Plain("Checked " + checked)
|
||||
}
|
||||
return p
|
||||
}
|
||||
|
||||
// WithLog links the domain's rows of the Inbound log from the side menu's
|
||||
// See also, as a sending domain's page links its own log.
|
||||
func (p *InDomain) WithLog(href string) *InDomain {
|
||||
p.logHref = href
|
||||
return p
|
||||
}
|
||||
|
||||
// WithResult shows the result of the last action, or its refusal, between the
|
||||
// head and the boxes.
|
||||
func (p *InDomain) WithResult(flash, formErr string) *InDomain {
|
||||
@@ -420,6 +437,11 @@ func (p *InDomain) Menu() SideMenu {
|
||||
{Label: "Spam filter", Icon: "ti-shield-check", Href: "#filter", Tag: filterTag(p.filterOn).Tag},
|
||||
}}
|
||||
menu := SideMenu{Groups: []MenuGroup{here}}
|
||||
if p.logHref != "" {
|
||||
menu.Groups = append(menu.Groups, MenuGroup{Label: "See also", Items: []MenuItem{
|
||||
{Label: "Log for this domain", Icon: "ti-list-details", Href: p.logHref},
|
||||
}})
|
||||
}
|
||||
if p.IsGlobal {
|
||||
menu.Groups = append(menu.Groups, MenuGroup{Label: "Rarely changed", Items: []MenuItem{
|
||||
{Label: "Delete domain", Icon: "ti-trash", Href: InboundDomainHref(p.id) + "/delete", Danger: true},
|
||||
|
||||
Reference in New Issue
Block a user