Commit Graph

488 Commits

Author SHA1 Message Date
Dominik Csapak
3d309d74b9 MailTracker: sort by time by default
so that the mails get shown in correct order

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-24 16:09:56 +02:00
Dominik Csapak
4fd7bd9b44 MailTracker: let panel decide about width
else, the fieldLabels might be cut off

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-24 16:09:56 +02:00
Dominik Csapak
227ddd7a93 Dashboard: remove autoLoad from updateStores
those stores all have 'autoStart' set, which loads the store anyway
as soon as possible. this seems to fix some store load issues

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-24 16:09:56 +02:00
Thomas Lamprecht
8ffa8523c9 mail proxy options: add maxValue config for netmasks
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-04-20 17:39:53 +02:00
Stoiko Ivanov
62a6bcc8aa MailProxyOptions: add greylist enhancements
This patch adds 3 new configuration settings to the MailProxy Options Tab, for
comfortably enabling greylisting for IPv6 addresses, and configuring the
netmask used for greylist matching

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-04-20 17:37:46 +02:00
Dominik Csapak
853ecba79d add Language selection in user menu for admin view
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-20 12:14:32 +02:00
Dominik Csapak
903548bc3c use LanguageEditWindow from widget-toolkit
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-20 12:14:32 +02:00
Stoiko Ivanov
bafcdcf887 Add before_queue_filtering checkbox"
This reverts commit a89fcfd62b.

Since the pmg-log-tracker is now able to parse logs with before queue
we can add the checkbox for enabling it again.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-04-17 15:30:55 +02:00
Dominik Csapak
11f43687bb align spacing with pve
it really irked me that the buttons/text was a few pixels off in pmg....

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-16 15:42:02 +02:00
Dominik Csapak
6886c8b485 MainView: make UserName a button/menu
with logout as only option.

This makes the header style again consistent between
pmg quarantine/pmg admin/pve

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-16 15:42:02 +02:00
Dominik Csapak
74468b03a5 add 'Match Archive Filename' to list of what objects
and add an editor for it

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-16 15:02:32 +02:00
Dominik Csapak
60652b756a fix MailInfo update without data
e.g. when the user changes the email while having a mail selected,
it gets unselected (albeit briefly) and update will be called
with 'undefined'

this throws an error, so prevent this by always supplying an object

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-16 14:44:58 +02:00
Dominik Csapak
590a3b9fa3 fix #2667: and 'language' option to QuarantineView
this moves the the login name to a button/menu like we have for pve
and adds a 'language' option there

this is useful for uses which explicitely login via ticket, which makes
it hard to change the language otherwise
(they'd have to logout, change the language, go to their mail client
and click again the link for the quarantine; also most users do not know
that they *can* change the language when they are logged out)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-16 11:00:29 +02:00
Dominik Csapak
76d5a73865 QuarantineList: rename from/to to since/until
To not confuse 'from' with the 'email from'
partly fixes #2678

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-15 14:07:46 +02:00
Dominik Csapak
9133f72f56 QuarantineList: improve savedPosition behaviour
by not saving the position across time or email changes, since that
makes no real sense. (The user cannot really know what will be selected,
in contrast to when the mails will be deleted etc.)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-15 14:07:46 +02:00
Dominik Csapak
61a8a658d2 fix #2680: make Quarantine E-Mail list searchable
using an explicit load on time change and queryMode 'local', we can
enable typeAhead (and related settings) to let the user type in an email
which will be autocompleted by the loaded list.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-15 14:07:46 +02:00
Dominik Csapak
72d8403cb6 Quarantine: set mailinfo visible only on html preview
We did already hide it when toggling raw/html, but when choosing raw
and changing the mail, it was again set to visible.
This patch fixes that by always taking 'me.raw' into account.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-15 14:06:43 +02:00
Thomas Lamprecht
4935e8fb22 qurantine: hide mailinfo in raw mode
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-04-15 12:59:38 +02:00
Thomas Lamprecht
b6b5d7184d mailinfo: ellipsize info fields after 100 characters
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-04-15 12:59:10 +02:00
Thomas Lamprecht
ca33688b5d mailinfo: fix bold in firefox and add some margin
As the <b> tag in combination with extjs resulted in a "font-weight:
bolder" setting which was not rendered correctly in Firefox.
Use our own css class to set font-weight to bold.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-04-15 12:57:31 +02:00
Dominik Csapak
ac6c1fb818 fix #2676: add MailInfo box on Quarantine Views
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-14 15:00:33 +02:00
Dominik Csapak
54d0de79a7 add 'MailInfo' Widget
This will be used to show the Subject and From on E-Mail Previews.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-14 15:00:33 +02:00
Stoiko Ivanov
816483a244 ClamAVDatabase: add scriptedupdates checkbox
to provide users with a comfortable way of changing between incremental
and complete signature download in case one of the methods has a problem.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-04-14 14:37:06 +02:00
Stoiko Ivanov
650d81000a Add port to SpamQuarantineOptions
If the quarantine is made available via reverse proxy, it sometimes
is bound to a different port (e.g. on 443 for firewall policy reasons)

The use-case seems common enough to justify exposing the parameter via
GUI.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Reviewed-By: Dominik Csapak <d.csapak@proxmox.com>
Tested-By: Dominik Csapak <d.csapak@proxmox.com>
2020-04-07 13:58:12 +02:00
Stoiko Ivanov
0f5a92f010 rename TLSDomain to TLSDestination
with the changes for fixing #1948 it is now possible to define tls policies
for destinations (remote domains or next-hop transports) instead of only for
Domains.
This patch reflects this addition by renaming all occurences of Domain with
Destination.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Reviewed-By: Dominik Csapak <d.csapak@proxmox.com>
2020-03-24 18:10:51 +01:00
Stoiko Ivanov
06c37f16e8 TLSDomains: rename domain to destination
in order to stay consistent with the change in pmg-api

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Reviewed-By: Dominik Csapak <d.csapak@proxmox.com>
2020-03-24 18:10:51 +01:00
Dominik Csapak
a144e5343d fix #2632: use alternative api call for user black/whitelist
which expects the entry as parameter instead of part of the path
this allows all special characters to be included in the entry

in the url, some characters were problematic (e.g. '/') and not properly
handled by the api in the backend

we use Ext.applyIf (which copies the non-existant entries to params) here
instead of getting the ExtraParams from the proxy and setting '.address'
(that would modify the ExtraParams of the proxy and send unwanted
parameters to subsequent api calls like the list-loading)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-03-11 12:07:29 +01:00
Stoiko Ivanov
4460d9531d Add flex to domain lists
By adding a flex value to the domain list items they become scrollable, should
the grid contain more entries than fit on the screen.

This fixes #2579.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-02-04 08:51:32 +01:00
Thomas Lamprecht
156bd3f883 deferred mailq: make column widths responsive
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-21 11:08:48 +01:00
Stoiko Ivanov
84d84db140 use format_size renderer for size in deferred queue listing
The listing of the contents of the deferred queue gets its data via
postqueue (1) json output, which lists the size in bytes.
Change the column renderer to use the Proxmox.Utils.format_size
renderer, which computes a sane human readable unit.

Tested by sending a mail, which gets deferred and comparing the
output with the size of the file on disk in
'/var/spool/postfix/deferred'

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-21 11:06:43 +01:00
Thomas Lamprecht
7de008cc1c dkim selector: use autoLoad config of store
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-21 09:19:35 +01:00
Stoiko Ivanov
39b73de789 dkim: list all available selectors
by making the selector field a ComboBox, users can pick from any existing
selector without changing it, replace it or create a new one.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-01-21 09:08:41 +01:00
Stoiko Ivanov
b07fc43096 fix #2504: add checkbox for overwriting selectors
Add a checkbox with descriptive label for the force parameter of
config/dkim/selector.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-01-21 09:08:41 +01:00
Thomas Lamprecht
ae377bbed1 transport edit: hide/disable Use-MX for LMTP
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-10 14:26:27 +01:00
Thomas Lamprecht
00b648d2c9 transport: add real PMG.TransportEditor definition
instead of hacking it together inside the gridpanel

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-10 14:25:17 +01:00
Thomas Lamprecht
c502e50c6c transport: code cleanups
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-10 14:24:36 +01:00
Thomas Lamprecht
1f6e503c74 MailProxyRelaying: fix indentation and style
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-10 12:00:04 +01:00
Julian Zehnter
d895a7463c Feature #2438 add support for lmtp delivery to downstream servers
new feature lmtp support for simplifying setups
with lmtp capable downstream servers (e.g. dovecot)
Postfix support lmtp out of the box and can now deliver
mails directly to internal mailbox servers without
one more smtp connection

extending the gui code for new lmtp option:
MailProxyConfiguration & MailProxyConfiguration:Transport:
Adding combobox "smtp" / "lmtp" as a new option
Generalizing some "SMTP" keywords

Signed-off-by: Julian Zehnter <pmg-devel@j-z.it>
2020-01-10 11:58:29 +01:00
Dominik Csapak
0391bb7a4c 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

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-11-28 11:29:05 +01:00
Thomas Lamprecht
07a9b44595 quarantine: set mail-dowanload link's download attribute again
to ensure the browser sets the download filename we need to set the
link elements download attribute[0].

fixes commit 41a290e3f0

[0]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-22 12:21:41 +01:00
Stoiko Ivanov
53d909f713 add onlineHelp anchors to SpamDetectorCustom
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-11-20 11:43:40 +01:00
Thomas Lamprecht
5883753d3c add onlineHelp anchor to ndr_on_block
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-11-20 11:43:30 +01:00
Stoiko Ivanov
a89fcfd62b Revert Adding of before_queue_filtering checkbox
This partially reverts commit 28c12d957f.

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.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-11-18 14:37:57 +01:00
Stoiko Ivanov
28c12d957f Add ndr_on_block and before_queue options
Generation of NDRs on block and before queue filtering are configured
via 2 boolean flags and belong to the MailProxyOptions.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-11-15 12:46:16 +01:00
Stoiko Ivanov
d545f59e01 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").

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-11-15 10:14:35 +01:00
Dominik Csapak
e2c7198f53 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

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-11-15 10:01:17 +01:00
Dominik Csapak
38771d946b 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

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-By: Stoiko Ivanov <s.ivanov@proxmox.com>
Reviewed-By: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-11-14 13:34:56 +01:00
Thomas Lamprecht
550a2c5b7c SpamQuarantine: onSelectMail: re-use queried selection
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-25 12:37:05 +02:00
Thomas Lamprecht
41a290e3f0 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..

refactors commit 7ad0de10d6

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-25 12:23:43 +02:00
Dominik Csapak
8b1d19f3a1 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)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-By: Stoiko Ivanov <s.ivanov@proxmox.com>
Reviewed-By: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-10-25 09:19:05 +02:00