Commit Graph
3112 Commits
Author SHA1 Message Date
Antoine Nguyen b39ba2fc20 Fixed error display in parameters form.
see #1405
2018-02-24 14:45:39 +01:00
Antoine Nguyen 728b6050c2 New signal triggered when DKIM keys are generated. 2018-02-24 10:00:23 +01:00
Antoine NguyenandGitHub 83d0564c27 Merge pull request #1388 from fyfe/fix/spring-clean
spring clean
2018-02-09 14:37:07 +01:00
Andrew Fyfe 8e2f29f409 fix whitespace in setup.cfg 2018-02-03 01:09:28 +00:00
Andrew Fyfe 1adfba38d8 use /bin/sh instead of /bin/bash
there's no guarantee that bash exists in /bin
2018-02-03 00:59:08 +00:00
Andrew Fyfe f71414ddfa add missing utf8 header
use `# -*- coding: utf-8 -*-` which is more widely supported by editors
2018-02-03 00:59:08 +00:00
Andrew Fyfe 3159eca296 import unicode_literals
and remove it from empty __init__.py files
2018-02-03 00:59:07 +00:00
Andrew Fyfe 87e8a32063 whitespace fixes 2018-02-03 00:59:06 +00:00
Andrew Fyfe eaec271e02 pep8 fixes
- B007 Loop control variable not used within the loop body. If this is intended, start the name with an underscore.
    * modoboa/admin/lib.py
    * modoboa/admin/templatetags/admin_tags.py
    * modoboa/admin/tests/test_account.py
    * modoboa/admin/views/domain.py
    * modoboa/admin/views/identity.py
    * modoboa/core/views/dashboard.py
    * modoboa/limits/forms.py
    * modoboa/limits/handlers.py
    * modoboa/limits/tests/test_api.py
    * modoboa/limits/tests/test_domain_limits.py
    * modoboa/limits/tests/test_import.py
    * modoboa/limits/tests/test_user_limits.py
    * modoboa/limits/utils.py
    * modoboa/parameters/tools.py
    * modoboa/relaydomains/tests.py
- C402 Unnecessary generator - rewrite as a dict comprehension.
    * modoboa/admin/models/domain.py
    * modoboa/admin/views/domain.py
    * modoboa/admin/views/identity.py
    * modoboa/limits/searializers.py
- C407 Unnecessary list comprehension - can take a generator.
    * modoboa/core/password_validation.py
    * modoboa/parameters/tools.py
    * modoboa/transport/backends.py
- C408 Unnecessary dict call - rewrite as a literal.
    * modoboa/admin/tests/test_account.py
    * modoboa/admin/tests/test_alias.py
    * modoboa/admin/tests/test_password_schemes.py
    * modoboa/admin/views/domain.py
    * modoboa/admin/views/identity.py
    * modoboa/core/extensions.py
    * modoboa/lib/middleware.py
    * modoboa/lib/templatetags/form_tags.py
    * modoboa/lib/templatetags/lib_tags.py
    * modoboa/lib/web_utils.py
    * modoboa/limits/handlers.py
    * modoboa/limits/tests/test_user_limits.py
- E741 ambiguous variable name
    * modoboa/core/management/commands/cleanlogs.py
    * modoboa/limits/forms.py
    * modoboa/limits/tests/test_user_limits.py
    * modoboa/limits/utils.py
    * modoboa/relaydomains/tests.py
- F401 imported but unused
    * doc/conf.py
    * modoboa/admin/views/domain.py
    * modoboa/core/app_settings.py
    * modoboa/core/management/commands/load_initial_data.py
- F821 undefined name 'raw_input'
    * modoboa/core/commands/deploy.py
- F841 local variable 'test' is assigned to but never used
    * modoboa/core/app_settings.py
- N802 function name 'setUpTestData' should be lowercase xxx
    * modoboa/lib/email_utils.py - __ for name mangeling, _ for internal
- N805 first argument of a method should be named 'self'
    * modoboa/lib/connections.py
    * modoboa/lib/singleton.py

Ignore the following
- A001 "copyright" is a python builtin and is being shadowed, consider renaming the variable
    * doc/conf.py
- A003 is a python builtin, consider renaming the class attribute
    * modoboa/admin/factories.py
    * modoboa/admin/forms/domain.py
    * modoboa/admin/management/commands/handle_mailbox_operations.py
    * modoboa/admin/management/commands/modo.py
    * modoboa/admin/management/commands/subcommands/_repair.py
    * modoboa/admin/models/domain.py
    * modoboa/admin/models/mailbox.py
    * modoboa/core/commands/__init__.py
    * modoboa/core/commands/deploy.py
    * modoboa/core/commands/help.py
    * modoboa/core/management/commands/clean_inactive_accounts.py
    * modoboa/core/management/commands/cleanlogs.py
    * modoboa/core/management/commands/communicate_with_public_api.py
    * modoboa/core/management/commands/generate_postfix_maps.py
    * modoboa/core/management/commands/load_initial_data.py
    * modoboa/core/management/commands/set_default_site.py
- F401 imported but unused
    * modoboa/admin/apps.py - used to load handlers
    * modoboa/core/password_hashers/__init__.py - dynamically loaded
    * modoboa/limits/apps.py - used to load handlers
    * modoboa/relaydomains/apps.py - used to load handlers
    * modoboa/transport/apps.py - used to load handlers
- N802 function name should be lowercase xxx
    * modoboa/admin/tests/test_account.py
    * modoboa/admin/tests/test_alias.py
    * modoboa/admin/tests/test_domain_alias.py
    * modoboa/admin/tests/test_export.py
    * modoboa/admin/tests/test_mailbox_operations.py
    * modoboa/admin/tests/test_password_schemas.py
    * modoboa/admin/tests/test_repair.py
    * modoboa/core/tests/test_authentication.py
    * modoboa/core/tests/test_core.py
    * modoboa/core/tests/test_ldap.py
    * modoboa/core/tests/test_views.py
    * modoboa/lib/imap_utf7.py
    * modoboa/limits/tests/test_api.py
    * modoboa/limits/tests/test_domain_limits.py
    * modoboa/limits/tests/test_import.py
    * modoboa/limits/tests/test_user_limits.py
    * modoboa/relaydomains/tests.py

other fixes:
- use isinstance() instead of type() == Class
2018-02-03 00:44:00 +00:00
Andrew Fyfe 24a7ca6a9e sort imports using isort
pip install isort
isort -y
2018-02-03 00:43:59 +00:00
Andrew Fyfe 8a1d5736c9 fix quotes
This ensures all files use " for quotes with the exception of
migrations, as this are auto generated I've not modified them.

pip install unify
unify --in-place --recursive --quote \" .
2018-02-03 00:43:58 +00:00
Andrew Fyfe 0e466a98e6 setup.cfg
isort cfg
2018-02-03 00:43:58 +00:00
Andrew Fyfe 1eb7f93572 add .editorconfig 2018-02-03 00:23:18 +00:00
Antoine NguyenandGitHub 40b64c51b8 Merge pull request #1386 from modoboa/feature/use_default_language_code
Use default language code for new accounts.
2018-02-02 15:26:17 +01:00
Antoine Nguyen dad0827b7d Use default language code for new accounts.
see #1369
2018-02-02 14:18:02 +01:00
Antoine NguyenandGitHub c80f0e2835 Merge pull request #1384 from fyfe/fix/email_utils_error_handling
email utils error handling
2018-02-02 13:42:29 +01:00
Andrew Fyfe d07e9c58ad better error handling for when e-mail messages lie about their encoding
also  fix test output, looks like it was getting truncated
2018-02-01 21:41:10 +00:00
Antoine Nguyen a327ccf018 fix: do not force transport service to relay. 2018-01-31 13:36:23 +01:00
Antoine NguyenandGitHub 757310055a Merge pull request #1381 from modoboa/fix/avoid_useless_save
fix: do not save the domain if not necessary.
2018-01-31 12:14:39 +01:00
Antoine Nguyen 5164ecdfdf fix: do not save the domain if not necessary.
it will also avoid the trigger of two post_save signals for the domain,
which can lead to unexpected issues.

see #1380
2018-01-31 11:42:44 +01:00
Antoine NguyenandGitHub 28ccd7f941 Merge pull request #1378 from fyfe/fix/disable-client-side-form-validation
disable client side form validation (#1370)
2018-01-31 09:19:32 +01:00
Andrew Fyfe 37d6be52f3 disable client side form validation
client side form validation currently fails if there's an error on a
tab that's not visible.

#1370
#1371
2018-01-30 18:08:48 +00:00
Antoine Nguyen c9f818cf84 Fixed upgrade instructions. 2018-01-26 15:44:03 +01:00
Antoine NguyenandGitHub 542af46ab0 Merge pull request #1366 from modoboa/fix/remove_secret_key
Removed obsolete secret key.
2018-01-26 15:39:10 +01:00
Antoine Nguyen aa1049bd38 Removed obsolete secret key. 2018-01-26 10:36:13 +01:00
Antoine NguyenandGitHub 68c46df8c3 Merge pull request #1364 from fyfe/fix/prepare_addresses
getaddresses() expects a list
2018-01-26 08:49:24 +01:00
Andrew Fyfe f94a1644ed add test for passing a string to prepare_addresses()
prepare_addresses() should convert this to a list.
2018-01-25 19:20:25 +00:00
Andrew Fyfe 441ba2affd getaddresses() expects a list 2018-01-25 17:40:31 +00:00
Antoine Nguyen 1413b93d85 Fixed upgrade instructions for 1.10.0 2018-01-25 16:14:15 +01:00
Antoine Nguyen ad9f5317f4 Fixed upgrade instructions for 1.10.0 2018-01-25 16:04:17 +01:00
Antoine Nguyen 6eba924b6a Fixed upgrade instructions for 1.10.0 2018-01-25 15:39:03 +01:00
Antoine NguyenandGitHub 363c91d9f3 Merge pull request #1363 from fyfe/prepare-for-release
prepare for release
2018-01-25 10:35:14 +01:00
Antoine Nguyen c6e25b0c77 travis: fixed deploy condition syntax. 2018-01-25 10:01:57 +01:00
Antoine Nguyen 14f5d9da34 Updated travis config to include a deploy step. 2018-01-25 09:40:50 +01:00
Antoine Nguyen cfb228f1f7 Updated translations. 2018-01-25 09:32:22 +01:00
Andrew Fyfe 0c24969663 update migrations 2018-01-24 23:13:24 +00:00
Andrew Fyfe 4f98ffbb4d don't silence pip
it can provide useful information when you break something
2018-01-24 22:39:50 +00:00
Andrew Fyfe 5b94bf5e5b update documentation for Django upgrade (#1333) 2018-01-24 21:07:50 +00:00
Antoine NguyenandGitHub db8ec0458e Merge pull request #1360 from fyfe/feature/improve-email-address-parser
improve e-mail address splitting functions
2018-01-22 22:04:45 +01:00
Andrew Fyfe 18a089dc66 split domain on the last @ 2018-01-22 20:14:22 +00:00
Andrew Fyfe 31b9f7afd0 parse lists of e-mail recipients properly
closes #1310
2018-01-19 20:15:13 +00:00
Andrew Fyfe 7e5a9b9ebb improve e-mail address splitting functions
Needed for modoboa/modoboa-amavis#89
2018-01-19 20:15:13 +00:00
Antoine NguyenandGitHub 5b279f533a Merge pull request #1352 from modoboa/feature/per_domain_dkim_key
Per domain DKIM key generation.
2018-01-19 11:14:06 +01:00
Antoine Nguyen f6528adb71 Set 2048 bits as the default length. 2018-01-19 10:37:59 +01:00
Antoine Nguyen ff2c019fc6 Few fixes. 2018-01-19 09:56:24 +01:00
Antoine NguyenandGitHub 48608727f4 Merge pull request #1357 from fyfe/feature/refactor-cryptutils
refactor cryptutils
2018-01-18 09:02:37 +01:00
Andrew Fyfe e8ab4e2912 refactor cryptutils
Cryptography can be a black art, rather than rolling our own crypto
functions use the ones provided by the Python Cryptography module.

- `encrypt()` and `decrypt()`
    - ECB is insecure and the Python Cryptography module recommends[1]
    against using it.  The Python Cryptography module offers Fernet[2]
    for encrypting values using a secret_key.

    - Djangos `settings.SECRET_KEY` exists for things like encrypting
      passwords, use it instead of Modoboas own `secret_key`.

    - `settings.SECRET_KEY` is truncated to 32 characters as Fernet
      requires a key 32 characters long.

- `random_key()` uses Dangos get_random_string() method, the same
code used to generate settings.SECRET_KEY

- add tests for cryptutil methods

[1] https://cryptography.io/en/latest/hazmat/primitives/symmetric-encryption/?highlight=ecb#insecure-modes
[2] https://cryptography.io/en/latest/fernet/
2018-01-17 22:49:17 +00:00
Antoine Nguyen 3cebf2db1a Improve coverage. 2018-01-13 09:53:42 +01:00
Antoine NguyenandGitHub 958f2e0ad2 Merge pull request #1353 from fyfe/feature/refactor-setup.py
refactor setup.py
2018-01-13 09:31:01 +01:00
Andrew Fyfe b4c0be2c9b add extra optional packages
Add the ability to install optional packages when installing modoboa. For example if I wanted to use modoboa with PostgreSQL `pip install modoboa[postgresql]`, or if I wanted MySQL and LDAP support `pip install modoboa[mysql,ldap]`

mysqlclient minimum version has been pined to 1.3.11 due to an issue with MariaDB 10 (#1341)
2018-01-12 22:45:09 +00:00