feat(mail): share oleksandra.svitelska mailbox with info@ (read-only)

Add oleksandra.svitelska@produktor.io to PRODUCTION_OWNERS so info@
sees it under Shared/ (lookup read), same class as the other production
mailboxes. Applied live via user-patches.sh (idempotent); no container
recreation needed.
This commit is contained in:
2026-09-23 19:37:56 +01:00
parent e1208be24e
commit 6e8a9dc963
2 changed files with 6 additions and 4 deletions
+3 -2
View File
@@ -17,6 +17,7 @@ mailboxes:
- `info@produktor.io` — human reader (Roundcube login for the whole list) - `info@produktor.io` — human reader (Roundcube login for the whole list)
- `andriy.oblivantsev@produktor.io` - `andriy.oblivantsev@produktor.io`
- `oleksandra.svitelska@produktor.io`
- `ano@produktor.io` - `ano@produktor.io`
- `postmaster@produktor.io` - `postmaster@produktor.io`
- `postman@produktor.io` - `postman@produktor.io`
@@ -115,8 +116,8 @@ Roundcube covers the whole account list. Delivery is unchanged (no aliases, no
redirects); other accounts keep their own passwords. Two owner classes, two redirects); other accounts keep their own passwords. Two owner classes, two
right sets for `info@`: right sets for `info@`:
- **production owners** (`ano@`, `andriy.oblivantsev@`, `postmaster@`): - **production owners** (`ano@`, `andriy.oblivantsev@`, `oleksandra.svitelska@`,
read-only — `lookup read` (issue #79); `postmaster@`): read-only — `lookup read` (issue #79);
- **incubator owners** (one account per historical address of the owner: - **incubator owners** (one account per historical address of the owner:
`andriy.oblivantsev@wheregroup.com` for the гдеgroup period; later `andriy.oblivantsev@wheregroup.com` for the гдеgroup period; later
`eslider@gmail.com`, `...@viscreation.de`, ...): read **and delete** — `eslider@gmail.com`, `...@viscreation.de`, ...): read **and delete** —
+3 -2
View File
@@ -1,7 +1,8 @@
#!/bin/bash #!/bin/bash
# Dovecot shared mailboxes. info@produktor.io gets access to the mailboxes of # Dovecot shared mailboxes. info@produktor.io gets access to the mailboxes of
# two owner classes (issue #79, issue #251 / epic #250): # two owner classes (issue #79, issue #251 / epic #250):
# - production owners (ano@, andriy.oblivantsev@, postmaster@): read-only # - production owners (ano@, andriy.oblivantsev@, oleksandra.svitelska@,
# postmaster@): read-only
# (`lookup read`) — one login in Roundcube covers the whole account list; # (`lookup read`) — one login in Roundcube covers the whole account list;
# - incubator owners: read + delete (`lookup read delete expunge # - incubator owners: read + delete (`lookup read delete expunge
# write-deleted`) — the mailbox owner never logs in, mail is imported via # write-deleted`) — the mailbox owner never logs in, mail is imported via
@@ -37,7 +38,7 @@ chmod 0770 "${SHARED_DB_DIR}"
# NOT required; `expunge` is also what Dovecot MOVE needs on the source side # NOT required; `expunge` is also what Dovecot MOVE needs on the source side
# when Roundcube moves a deleted message to Trash. # when Roundcube moves a deleted message to Trash.
READER='info@produktor.io' READER='info@produktor.io'
PRODUCTION_OWNERS='ano@produktor.io andriy.oblivantsev@produktor.io postmaster@produktor.io' PRODUCTION_OWNERS='ano@produktor.io andriy.oblivantsev@produktor.io postmaster@produktor.io oleksandra.svitelska@produktor.io'
INCUBATOR_OWNERS='andriy.oblivantsev@wheregroup.com eslider@gmail.com viscreation@gmail.com viscreation@gmx.de andriy.oblivantsev@gridfactor.de ao@rpf.de andriy.oblivantsev@gmail.com viscreation@viscreation.de' INCUBATOR_OWNERS='andriy.oblivantsev@wheregroup.com eslider@gmail.com viscreation@gmail.com viscreation@gmx.de andriy.oblivantsev@gridfactor.de ao@rpf.de andriy.oblivantsev@gmail.com viscreation@viscreation.de'
grant_share() { # $1=owner, remaining=right names grant_share() { # $1=owner, remaining=right names