mirror of
https://github.com/mjl-/mox.git
synced 2024-12-25 16:03:48 +03:00
for aliases, enable "public posting" by default when creating an alias
and explain in more detail what it means in the webadmin interface. will hopefully bring less confusion. for issue #244 by exander77, thanks for reporting
This commit is contained in:
parent
c13f1814fc
commit
0e338b0530
4 changed files with 8 additions and 7 deletions
2
doc.go
2
doc.go
|
@ -1008,7 +1008,7 @@ Print settings and members of alias.
|
|||
|
||||
# mox config alias add
|
||||
|
||||
Add new alias with one or more addresses.
|
||||
Add new alias with one or more addresses and public posting enabled.
|
||||
|
||||
usage: mox config alias add alias@domain rcpt1@domain ...
|
||||
|
||||
|
|
4
main.go
4
main.go
|
@ -770,13 +770,13 @@ func ctlcmdConfigAliasPrint(ctl *ctl, address string) {
|
|||
|
||||
func cmdConfigAliasAdd(c *cmd) {
|
||||
c.params = "alias@domain rcpt1@domain ..."
|
||||
c.help = `Add new alias with one or more addresses.`
|
||||
c.help = `Add new alias with one or more addresses and public posting enabled.`
|
||||
args := c.Parse()
|
||||
if len(args) < 2 {
|
||||
c.Usage()
|
||||
}
|
||||
|
||||
alias := config.Alias{Addresses: args[1:]}
|
||||
alias := config.Alias{PostPublic: true, Addresses: args[1:]}
|
||||
|
||||
mustLoadConfig()
|
||||
ctlcmdConfigAliasAdd(xctl(), args[0], alias)
|
||||
|
|
|
@ -2358,7 +2358,7 @@ const domain = async (d) => {
|
|||
e.stopPropagation();
|
||||
const alias = {
|
||||
Addresses: aliasAddresses.value.split('\n').map(s => s.trim()).filter(s => !!s),
|
||||
PostPublic: false,
|
||||
PostPublic: true,
|
||||
ListMembers: false,
|
||||
AllowMsgFrom: false,
|
||||
// Ignored:
|
||||
|
@ -2554,7 +2554,7 @@ const domainAlias = async (d, aliasLocalpart) => {
|
|||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
check(aliasFieldset, client.AliasUpdate(aliasLocalpart, d, postPublic.checked, listMembers.checked, allowMsgFrom.checked));
|
||||
}, aliasFieldset = dom.fieldset(style({ display: 'flex', flexDirection: 'column', gap: '.5ex' }), dom.label(postPublic = dom.input(attr.type('checkbox'), alias.PostPublic ? attr.checked('') : []), ' Public, anyone can post instead of only members'), dom.label(listMembers = dom.input(attr.type('checkbox'), alias.ListMembers ? attr.checked('') : []), ' Members can list other members'), dom.label(allowMsgFrom = dom.input(attr.type('checkbox'), alias.AllowMsgFrom ? attr.checked('') : []), ' Allow messages to use the alias address in the message From header'), dom.div(style({ marginTop: '1ex' }), dom.submitbutton('Save')))), dom.br(), dom.h2('Members'), dom.p('Members receive messages sent to the alias. If a member address is in the message From header, the member will not receive the message.'), dom.table(dom.thead(dom.tr(dom.th('Address'), dom.th('Account'), dom.th())), dom.tbody((alias.Addresses || []).map((address, index) => {
|
||||
}, aliasFieldset = dom.fieldset(style({ display: 'flex', flexDirection: 'column', gap: '.5ex' }), dom.label(postPublic = dom.input(attr.type('checkbox'), alias.PostPublic ? attr.checked('') : []), ' Public, anyone is allowed to send to the alias, instead of only members of the alias', attr.title('Based on address in message From header, which is assumed to be DMARC-like verified. If this setting is disabled and a non-member sends a message to the alias, the message is rejected.')), dom.label(listMembers = dom.input(attr.type('checkbox'), alias.ListMembers ? attr.checked('') : []), ' Members can list other members'), dom.label(allowMsgFrom = dom.input(attr.type('checkbox'), alias.AllowMsgFrom ? attr.checked('') : []), ' Allow messages to use the alias address in the message From header'), dom.div(style({ marginTop: '1ex' }), dom.submitbutton('Save')))), dom.br(), dom.h2('Members'), dom.p('Members receive messages sent to the alias. If a member address is in the message From header, the member will not receive the message.'), dom.table(dom.thead(dom.tr(dom.th('Address'), dom.th('Account'), dom.th())), dom.tbody((alias.Addresses || []).map((address, index) => {
|
||||
const pa = (alias.ParsedAddresses || [])[index];
|
||||
return dom.tr(dom.td(prewrap(address)), dom.td(dom.a(pa.AccountName, attr.href('#accounts/' + pa.AccountName))), dom.td(dom.clickbutton('Remove', async function click(e) {
|
||||
await check(e.target, client.AliasAddressesRemove(aliasLocalpart, d, [address]));
|
||||
|
|
|
@ -1347,7 +1347,7 @@ const domain = async (d: string) => {
|
|||
e.stopPropagation()
|
||||
const alias: api.Alias = {
|
||||
Addresses: aliasAddresses.value.split('\n').map(s => s.trim()).filter(s => !!s),
|
||||
PostPublic: false,
|
||||
PostPublic: true,
|
||||
ListMembers: false,
|
||||
AllowMsgFrom: false,
|
||||
// Ignored:
|
||||
|
@ -1814,7 +1814,8 @@ const domainAlias = async (d: string, aliasLocalpart: string) => {
|
|||
style({display: 'flex', flexDirection: 'column', gap: '.5ex'}),
|
||||
dom.label(
|
||||
postPublic=dom.input(attr.type('checkbox'), alias.PostPublic ? attr.checked('') : []),
|
||||
' Public, anyone can post instead of only members',
|
||||
' Public, anyone is allowed to send to the alias, instead of only members of the alias',
|
||||
attr.title('Based on address in message From header, which is assumed to be DMARC-like verified. If this setting is disabled and a non-member sends a message to the alias, the message is rejected.'),
|
||||
),
|
||||
dom.label(
|
||||
listMembers=dom.input(attr.type('checkbox'), alias.ListMembers ? attr.checked('') : []),
|
||||
|
|
Loading…
Reference in a new issue