Dominik Csapak [Thu, 28 Nov 2019 10:22:44 +0000 (11:22 +0100)]
add browser cache workaround
to prevent indefinite caching of the js files in the browser,
we add the package version to the js files, this will be read
by the pmgproxy and added as template variables
we use those to add the version to the get parameter and
thus tell the browser the file has changed
Given that the before queue filtering currently breaks pmg-log-tracker, and
the Tracking Center is one of the central features of PMG, we should
release the before queue support as experimental feature for now.
That way users who really want to use it are a bit more aware, that
log-tracking will currently not work on the GUI.
Stoiko Ivanov [Thu, 10 Oct 2019 17:20:22 +0000 (19:20 +0200)]
fix 1652: rename NDR to empty senders in GUI
Bug 1652 indicates a slight misalignment of our use of NDR with the
expectations users might have:
We use it throughout our codebase meaning - mails with empty senders (NDRs
a.k.a bounces do most often have an empty sender (to prevent mailloops) but
quite a few messages being directly non-delivery-notifications also use an
empty sender (since noone would be reading the automated bounces for them) -
e.g. our quarantine report)
By renaming the GUI-display field it should be more clear to users of the
Tracking center.
The fix is left at the GUI-level, since the use of ndr for empty sender is
quite consistent throughout our complete stack (in that case from the GUI, via
pmg-api down to the pmg-log-tracker) and I don't see the direct benefit for
renaming it everywhere (and am lacking a better concise phrase for "empty
envelope sender").
Dominik Csapak [Thu, 14 Nov 2019 11:18:55 +0000 (12:18 +0100)]
add Custom Scores panel to the Spam Detector
with this panel, users can manually override a rule score for
SpamAssassin rules. This can be useful sometimes, e.g. if
a certain rule always triggers in a certain environment which
is considered spam by the SpamAssassin rules
after adding/editing a rule, we show diff, similar to the network
panel, and offer a button to apply those changes (and restart
pmg-smtp-filter). the changes can also be reverted
Dominik Csapak [Mon, 11 Nov 2019 09:16:35 +0000 (10:16 +0100)]
fix broken maillist when deleting last mail in list
on deleting the last mail in the list, the selection is empty and
the access below to 'rec.data.id' breaks, leaving the maillist broken
(until the user changed the panel or reloaded)
so give rec an empty fallback object and check if there is a 'data'
property and use that, otherwise set the id to the empty string
Thomas Lamprecht [Fri, 25 Oct 2019 10:05:07 +0000 (12:05 +0200)]
SpamQuarantine: simplify download button by binding its href config
This avoids all the strange click event hack. We already have a
button where the users needs to click on, so just use that.
A viewModel with a downloadMailURL formula to assemble the href
allows us to just bind the "href" config from the Download button,
and be done with it..
Dominik Csapak [Wed, 23 Oct 2019 07:36:35 +0000 (09:36 +0200)]
SpamQuarantine: fix download of large emails
since datauri downloads are size limited (2MB in chrome), we have
to use another method, and instead of working around in the gui
(e.g. by using URL.createObjectURL) make use of the existing download
code in the api, which should have better compatibility
(and omits the whole raw -> json -> raw -> base64 conversion chain from
file to download)
Stoiko Ivanov [Mon, 21 Oct 2019 17:23:38 +0000 (19:23 +0200)]
Add DKIM Tab to MailProxy configuration
This adds another panel to the MailProxy configuration for DKIM-Settings.
Additionally the index-template now includes the css-file from
proxmox-widget-toolkit (for the pmx-hint user-class), needed in the
Settings-panel.
The Panel consists of 2 Grids:
* DKIM Settings
* DKIM Domains
DKIMDomains is a list of domain, currently like RelayDomains (hence the
code-reuse).
The DKIM settings grid binds to the dkim-related settings in pmg.conf, but the
edit-window for the selector uses the /config/dkim/selector route in the
PMG-API.
Additionally 2 checks for invalid configurations are excluded (you cannot
enable DKIM-Signing without creating a private key first)
The warnings were inspired by PVE's handling of EFIDisks and BIOS.
Finally the 'View DNS Record' button displays the DKIM TXT record for the
current key in the same format that opendkim-genkey writes it out.
Dominik Csapak [Thu, 10 Oct 2019 09:22:04 +0000 (11:22 +0200)]
add Attachment Quarantine
the Quarantine part is mostly copied from VirusQuarantine and adapted
the AttachmentGrid is inspired by the SpamScore list
this adds a new quarantine type 'Attachment' in the gui, where the admins
can review and control the mails in the attachment quarantine
it also shows a list of attachment/parts and a link where they can
be downloaded (in case the admin want to only forward a single
attachment or review the file in detail)
Dominik Csapak [Thu, 8 Aug 2019 12:28:41 +0000 (14:28 +0200)]
fix html entities in system report file
since the content of the window is encoded with 'Ext.htmlEncode'
we have to decode it with 'Ext.String.htmlDecode' (Ext.htmlDecode is
a deprecated alias for it) before downloading the file
Stoiko Ivanov [Thu, 8 Aug 2019 16:09:21 +0000 (18:09 +0200)]
change display for 'archiveblockencrypted'
As described in the release notes of ClamAV 0.101.0 the legacy Option
ArchiveBlockEncrypted was used for blocking both encrypted archives _and_
documents. This patch reflects the change in the VirusDetectorOptions.
Stoiko Ivanov [Tue, 28 May 2019 10:30:16 +0000 (12:30 +0200)]
Make report labels more explicit
PMG (optionally) sends two kinds of reports:
* the reports to users, which mails of theirs are in the Spamquarantine
(`pmgqm`)
* the reports about the System's state and performance to the Administrator
(`pmgreport`)
Given that these get confused quite often, make their labels in the GUI
more explicit.
* add js/MailProxyTLSDomains.js for setting per domain TLS policies
* add js/MailProxyTLSPanel.js as a wrapper for the current MailProxyTLS.js and
MailProxyTLSDomains.js
Dominik Csapak [Wed, 28 Mar 2018 14:55:42 +0000 (16:55 +0200)]
quarantine: do not deselect when list changes
when an e-mail is selected and an action goes through,
select the e-mail on the position the old one was,
this way, one does not have to reselect an e-mail after
an action is done