Linus Rath
68756cd088
test: answer the paged archive calls in the recovery spec and check the Trash link stays away from an empty archive #1319
2026-10-28 09:08:44 +01:00
Linus Rath
4d846cfc91
fix: read the whole deleted items archive newest first and only for the account shown #1319
...
Stalwart's x:ArchivedItem/query without calculateTotal scans ids
ascending, stops at 5000 and only then reverses them, so the newest
items of a large archive never showed, and admin accounts got every
account's items. The review of the branch also found gaps around
account switches, restores and focus.
- Read the archive in pages of 500 with calculateTotal, newest first,
stop at a whole page older than the days limit, and offer
"Show older" after 2000 items; detection asks for one item.
- Send the accountId filter and fall back without it on
unsupportedFilter; keep only items of the account, never one without
an account id.
- Ask nothing until config and policy are loaded and the policy is the
current account's; the later check after a refusal is forced.
- Show the Trash link only when the archive holds a message inside the
days limit; the Settings page shows whenever the server has the
feature and says that archiving must be on in Stalwart.
- Restore: notFound leaves the list with a note, forbidden hides the
page, results for another account are dropped, the button keeps focus.
- Forget what servers said at a full sign-out.
2026-10-28 09:08:44 +01:00
Linus Rath
fcd9930e4a
test: cover recovering deleted items against the test servers #1319
2026-10-28 08:08:34 +01:00
Linus Rath
23ad598896
fix: shorten the Trash line that leads to Recover deleted items so it fits the list
2026-10-28 08:08:33 +01:00
Linus Rath
11d92549f4
fix: remember for the tab whether the server offers deleted item recovery, so a reload doesn't ask again
2026-10-28 07:43:33 +01:00
Linus Rath
61d4e02e38
test: keep the Trash link out of a shared Trash without an account id
2026-10-28 07:39:00 +01:00
Linus Rath
a6af7bc8f1
feat: let admins limit or hide recovering deleted items per domain or group #1319
2026-10-28 07:27:55 +01:00
Linus Rath
ba6e6af014
feat: recover deleted items from Stalwart's archive #1319
2026-10-28 07:27:47 +01:00
Linus Rath
9f7e875faf
docs: add delegates to the changelog
2026-10-28 06:49:14 +01:00
Linus Rath
82918fc7d7
Merge branch 'feat/org-features' into feat/org-delegates
...
# Conflicts:
# lib/admin/restriction-keys.ts
2026-10-28 06:30:09 +01:00
Linus Rath
49c9ec6a45
fix: start a delegate's Change from what they have and keep what fits no choice as it is
...
Change used to pre-fill the closest choice and then replace everything
of that type, so a folder added after "all", a single non-Inbox folder,
a non-default calendar, free/busy only or manager rights were narrowed
or widened on Save. Now a type gets a choice only when the grants match
it exactly; anything else starts at "Keep as it is", which leaves that
type out of the patch. Mixed levels keep each type's rights.
Also in the Delegates page:
- Change and Remove wait, with Try again, while a type couldn't be read
- an answer from the account before an account switch is dropped
- calendars, contacts and files follow their feature gates
- Remove says it covers what was shared from the user's own account
- typing your own address says "That's you"
- groups named only by the session get the group badge
- on Stalwart 1.0 the read hint says read delegates can flag mail
- the person list is plain buttons, not a listbox without arrow keys
- the rights follow sharingRights
2026-10-28 06:28:02 +01:00
Linus Rath
f0539a33f6
feat: let admins limit every share dialog to read access with sharingRights
2026-10-28 06:27:49 +01:00
Linus Rath
f0a89fdb65
fix: forget delegate names on sign-out and when their account is removed
2026-10-28 06:27:28 +01:00
Linus Rath
5ce0f96f26
fix: read delegate sharing only for the apps that are on, with the file tree alongside
2026-10-28 06:27:07 +01:00
Linus Rath
daa1cccdb2
docs: add the no third-party traffic switch to the changelog #903
2026-10-28 05:53:25 +01:00
Linus Rath
795faceee7
Merge branch 'feat/org-thirdparty' into feat/org-features
2026-10-28 05:51:22 +01:00
Linus Rath
9a99fa617e
docs: add external mail warnings to the changelog
2026-10-28 05:50:36 +01:00
Linus Rath
00ea203f4f
refactor: describe the sending identity and account once for every send check
2026-10-28 05:50:17 +01:00
Linus Rath
687cd89346
Merge branch 'feat/org-external' into feat/org-features
...
# Conflicts:
# lib/outgoing/quick-reply.ts
# lib/outgoing/send-pipeline.ts
2026-10-28 05:46:11 +01:00
Linus Rath
b680a676c0
test: check that remote pictures say the organisation blocks them with no third-party traffic #903
2026-10-28 05:42:43 +01:00
Linus Rath
638e7c2670
fix: start the delegate dialog in the search field
2026-10-28 05:42:04 +01:00
Linus Rath
9bae704c03
test: cover delegates through the real UI on the test servers
2026-10-28 05:38:44 +01:00
Linus Rath
0bd63fca08
fix: name a delegate from the accounts they share with you when the directory won't
2026-10-28 05:38:44 +01:00
Linus Rath
b0eb9fcfe1
fix: say the organisation blocks remote content instead of offering to load it with no third-party traffic #903
2026-10-28 05:38:39 +01:00
Linus Rath
9e809a31db
Merge branch 'feat/org-features' into feat/org-thirdparty
2026-10-28 05:27:58 +01:00
Linus Rath
9f230ca8fc
fix: keep a quick reply as a draft when an automatic sign-out comes while the external recipient question is open
2026-10-28 05:23:25 +01:00
Linus Rath
36ec531fb8
fix: account for the pdf.js namespaces in the Lite bundle host scan #903
2026-10-28 05:22:37 +01:00
Linus Rath
6c3ec30a7e
docs: add organisation signatures and disclaimers to the changelog
2026-10-28 05:20:29 +01:00
Linus Rath
823da8c810
Merge branch 'feat/org-features' into feat/org-external
...
# Conflicts:
# components/email/email-viewer.tsx
# components/mail/mail-app.tsx
2026-10-28 05:19:21 +01:00
Linus Rath
c31cb76a47
test: check that a running Gravatar plugin reaches nothing with no third-party traffic #903
2026-10-28 05:19:08 +01:00
Linus Rath
1a92eba702
test: check that a refused address lookup shows the directory note on its own
2026-10-28 05:18:49 +01:00
Linus Rath
2a90437fbc
test: give the domain list test time under load
2026-10-28 05:15:40 +01:00
Linus Rath
3be3ad5ddf
test: cover quick reply Back, the domain on a tap and the plugin hand-over per switch against the test servers
2026-10-28 05:14:00 +01:00
Linus Rath
9dab8955dd
feat: confirm before inviting people outside the organisation to a meeting
2026-10-28 05:12:24 +01:00
Linus Rath
0232ae322b
feat: let admins hide delegates or limit them to read access per domain or group
2026-10-28 05:11:26 +01:00
Linus Rath
1202a13720
fix: judge external mail by the message's own account and the sending account in several-account setups
2026-10-28 05:11:24 +01:00
Linus Rath
bcf4f3a7a6
feat: give a delegate access to mail, calendars and contacts in one step
2026-10-28 05:11:23 +01:00
Linus Rath
60167f752f
fix: label mail as External when any sender is outside or has no domain, and show the domain on a tap
2026-10-28 05:09:35 +01:00
Linus Rath
836dcba66e
fix: don't count senders whose images the user allowed as contacts for the external recipient confirm
2026-10-28 05:09:03 +01:00
Linus Rath
c51245081a
test: sign quick replies addressed through the envelope and keep the disclaimer out of sign-out drafts
2026-10-28 04:57:09 +01:00
Linus Rath
2ace501871
Merge branch 'feat/org-features' into feat/org-signatures
2026-10-28 04:51:22 +01:00
Linus Rath
2e34759f54
fix: show a folder shared read only on Stalwart 1.0 as read only, not custom
2026-10-28 04:50:08 +01:00
Linus Rath
9aa810f20d
refactor: keep the share rights presets in one module for every share dialog
2026-10-28 04:46:45 +01:00
Linus Rath
7fefb35f25
test: send organisation signatures and disclaimers whose HTML and text versions differ
2026-10-28 04:43:54 +01:00
Linus Rath
89f0cd7e92
fix: say that {company} takes the branding of the web address Bulwark is opened on
2026-10-28 04:37:24 +01:00
Linus Rath
daae45e379
fix: ask for the details every sending address needs and preview the signature that is sent
2026-10-28 04:35:26 +01:00
Linus Rath
d128503db5
fix: use the organisation policy of the account a message is sent from
2026-10-28 04:32:39 +01:00
Linus Rath
4bb596a9a0
test: cover the plugin API's own no-third-party locks #903
2026-10-28 04:30:43 +01:00
Linus Rath
1e6c3864ce
ci: scan the Lite bundle for outside hosts after build:lite #903
2026-10-28 04:30:42 +01:00
Linus Rath
010e9fb6d9
feat: fence a Lite build made with no third-party traffic to its own hosts #903
2026-10-28 04:30:42 +01:00