Added doc and improved serializer

This commit is contained in:
Spitap
2023-02-26 13:57:31 +01:00
parent 490b58886b
commit 03cade4e22
5 changed files with 113 additions and 9 deletions
+64
View File
@@ -0,0 +1,64 @@
modoboa-dmarc
=============
.. _dmarcdoc:
A set of tools to use DMARC through Modoboa.
This feature is still in BETA stage, for now it only parses XML aggregated
reports and generate visual reports (using c3.js) on a per-domain basis.
Installation
------------
.. note::
modoboa-installer can automatically set it up for you.
Make sure to install the following additional system package according to your distribution:
+-----------------+
| Debian / Ubuntu |
+=================+
| libmagic1 |
+-----------------+
+------------+
| CentOS |
+============+
| file-devel |
+------------+
Integration with Postfix
------------------------
A management command is provided to automatically parse DMARC
aggregated reports (rua) and feed the database. The execution of this
command can be automated with the definition of a postfix service and
a custom transport table.
First, declare a new service in ``/etc/postfix/master.cf``::
dmarc-rua-parser unix - n n - - pipe
flags= user=vmail:vmail argv=<path to python> <path to modoboa instance>/manage.py import_aggregated_report --pipe
Define a new transport table inside ``/etc/postfix/main.cf``::
transport_maps =
hash:/etc/postfix/dmarc_transport
# other transport maps...
Create a file called ``/etc/postfix/dmarc_transport`` with the following content::
<email address your declared in your DNS record> dmarc-rua-parser:
.. note::
You must not declare this email address as an identity (user account or alias), else DMARC reports will be directed to your mailbox and won't be parsed.
Hash the file using the following command::
$ postmap /etc/postfix/dmarc_transport
Finally, reload postfix::
$ service postfix reload
+14
View File
@@ -0,0 +1,14 @@
PDF credentials for Modoboa
===========================
.. _pdfc:
A simple `Modoboa <http://modoboa.org/>`_ extension which provides a
way to download PDF documents containing users credentials.
Configuration
-------------
All the configuration is done from the admin panel (*Modoboa >
Parameters > PDF Credentials*).
+21 -9
View File
@@ -16,7 +16,27 @@ Modoboa is a mail hosting and management platform including a modern
and simplified Web User Interface designed to work with `Postfix
<http://www.postfix.org>`_ and `Dovecot <http://www.dovecot.org>`_.
It is extensible by nature and comes with a lot of additional extensions:
It provides built-in features by default :
+---------------------------------------------------------+-------------------------+------------------------------------------------------+
|Name |Description |Documentation |
| | | |
| | | |
| | | |
+=========================================================+=========================+======================================================+
|modoboa-dmarc |A set of tools to use |:ref:`modoboa_dmarc Documentation <dmarcdoc>` |
| |`DMARC | |
| |<https://dmarc.org>`_ | |
+---------------------------------------------------------+-------------------------+------------------------------------------------------+
|modoboa-pdfcredentials |Generate PDF documents |:ref:`modoboa_pdfcredentials Documentation <pdfc>` |
| |containing account | |
| |credentials | |
+---------------------------------------------------------+-------------------------+------------------------------------------------------+
And it is extensible by nature and comes with a lot of additional extensions:
+---------------------------------------------------------+-------------------------+------------------------------------------------------+
|Name |Description |Documentation |
@@ -29,18 +49,10 @@ It is extensible by nature and comes with a lot of additional extensions:
| | | |
| | | |
+---------------------------------------------------------+-------------------------+------------------------------------------------------+
|`modoboa-dmarc |A set of tools to use |https://github.com/modoboa/modoboa-dmarc |
|<https://github.com/modoboa/modoboa-dmarc>`_ |`DMARC | |
| |<https://dmarc.org>`_ | |
+---------------------------------------------------------+-------------------------+------------------------------------------------------+
|`modoboa-imap-migration |Migrate mailboxes from an|https://github.com/modoboa/modoboa-imap-migration |
|<https://github.com/modoboa/modoboa-imap-migration>`_ |existing server using | |
| |IMAP (and offlineimap) | |
+---------------------------------------------------------+-------------------------+------------------------------------------------------+
|`modoboa-pdfcredentials |Generate PDF documents |https://github.com/modoboa/modoboa-pdfcredentials |
|<https://github.com/modoboa/modoboa-pdfcredentials>`_ |containing account | |
| |credentials | |
+---------------------------------------------------------+-------------------------+------------------------------------------------------+
|`modoboa-pfxadmin-migrate |A tool to migrate from |https://github.com/modoboa/modoboa-pfxadmin-migrate |
|<https://github.com/modoboa/modoboa-pfxadmin-migrate>`_ |Postfixadmin | |
+---------------------------------------------------------+-------------------------+------------------------------------------------------+
@@ -133,6 +133,7 @@ export default {
return params.filter(param => this.display(param))
},
save () {
this.formErrors = {}
parameters.saveApplication(this.$route.params.app, this.parameters).then(() => {
bus.$emit('notification', { msg: this.$gettext('Parameters updated') })
}).catch(error => {
@@ -42,6 +42,19 @@ class PDFCredentialsSettingsSerializer(serializers.Serializer):
imap_connection_security = serializers.ChoiceField(
choices=CONNECTION_SECURITY_MODES, default="starttls")
def validate_storage_dir(self, value):
"""Check that directory exists."""
if value:
if not os.path.isdir(value):
raise serializers.ValidationError(
_("Directory not found.")
)
if not os.access(value, os.W_OK):
raise serializers.ValidationError(
_("Directory is not writable")
)
return value
class GetAccountCredentialsSerializer(serializers.Serializer):
"""A serializer for get account credential view."""