mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
sort imports using isort
pip install isort isort -y
This commit is contained in:
@@ -7,4 +7,3 @@ from modoboa.core.commands import handle_command_line
|
||||
|
||||
if __name__ == "__main__":
|
||||
handle_command_line()
|
||||
|
||||
|
||||
+2
-1
@@ -11,7 +11,8 @@
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys, os
|
||||
import os
|
||||
import sys
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
|
||||
+1
-2
@@ -4,8 +4,7 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from pkg_resources import get_distribution, DistributionNotFound
|
||||
|
||||
from pkg_resources import DistributionNotFound, get_distribution
|
||||
|
||||
try:
|
||||
__version__ = get_distribution(__name__).version
|
||||
|
||||
@@ -3,19 +3,16 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django import http
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from rest_framework import filters, status, viewsets
|
||||
from rest_framework.decorators import detail_route, list_route
|
||||
from rest_framework.exceptions import ParseError
|
||||
from rest_framework.permissions import IsAuthenticated, DjangoModelPermissions
|
||||
from rest_framework.permissions import DjangoModelPermissions, IsAuthenticated
|
||||
from rest_framework.response import Response
|
||||
|
||||
from modoboa.core import models as core_models
|
||||
|
||||
from . import models
|
||||
from . import serializers
|
||||
from . import models, serializers
|
||||
|
||||
|
||||
class DomainViewSet(viewsets.ModelViewSet):
|
||||
|
||||
@@ -6,13 +6,12 @@ import os
|
||||
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.utils.encoding import force_text
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from modoboa.lib.form_utils import YesNoField, SeparatorField
|
||||
from modoboa.lib.form_utils import SeparatorField, YesNoField
|
||||
from modoboa.lib.sysutils import exec_cmd
|
||||
from modoboa.parameters import forms as param_forms
|
||||
|
||||
from . import constants
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ from __future__ import unicode_literals
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
|
||||
DNSBL_PROVIDERS = [
|
||||
"aspews.ext.sorbs.net",
|
||||
"b.barracudacentral.org",
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from .domain import (
|
||||
DomainFormGeneral, DomainFormOptions, DomainForm, DomainWizard
|
||||
)
|
||||
from .account import (
|
||||
AccountFormGeneral, AccountFormMail, AccountPermissionsForm,
|
||||
AccountForm, AccountWizard
|
||||
AccountForm, AccountFormGeneral, AccountFormMail, AccountPermissionsForm,
|
||||
AccountWizard
|
||||
)
|
||||
from .alias import AliasForm
|
||||
from .domain import (
|
||||
DomainForm, DomainFormGeneral, DomainFormOptions, DomainWizard
|
||||
)
|
||||
from .export import ExportDataForm, ExportDomainsForm, ExportIdentitiesForm
|
||||
from .forward import ForwardForm
|
||||
from .import_ import ImportDataForm, ImportIdentitiesForm
|
||||
from .export import ExportDataForm, ExportDomainsForm, ExportIdentitiesForm
|
||||
|
||||
__all__ = [
|
||||
"DomainFormGeneral", "DomainFormOptions", "DomainForm",
|
||||
|
||||
@@ -7,17 +7,15 @@ from functools import reduce
|
||||
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import password_validation
|
||||
from django.http import QueryDict
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from django.contrib.auth import password_validation
|
||||
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib import exceptions as lib_exceptions, fields as lib_fields
|
||||
from modoboa.lib.email_utils import split_mailbox
|
||||
from modoboa.lib import exceptions as lib_exceptions
|
||||
from modoboa.lib import fields as lib_fields
|
||||
from modoboa.lib.form_utils import (
|
||||
DynamicForm, TabForms, WizardForm, WizardStep
|
||||
)
|
||||
@@ -25,10 +23,7 @@ from modoboa.lib.permissions import get_account_roles
|
||||
from modoboa.lib.validators import validate_utf8_email
|
||||
from modoboa.lib.web_utils import render_to_json_response
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from .. import lib
|
||||
from .. import models
|
||||
from .. import signals
|
||||
from .. import lib, models, signals
|
||||
|
||||
|
||||
class AccountFormGeneral(forms.ModelForm):
|
||||
|
||||
@@ -9,14 +9,10 @@ from django.http import QueryDict
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.lib import exceptions as lib_exceptions
|
||||
from modoboa.lib import exceptions as lib_exceptions, fields as lib_fields
|
||||
from modoboa.lib.email_utils import split_mailbox
|
||||
from modoboa.lib import fields as lib_fields
|
||||
from modoboa.lib.form_utils import (
|
||||
DynamicForm
|
||||
)
|
||||
|
||||
from ..models import Domain, Alias
|
||||
from modoboa.lib.form_utils import DynamicForm
|
||||
from ..models import Alias, Domain
|
||||
|
||||
|
||||
class AliasForm(forms.ModelForm, DynamicForm):
|
||||
|
||||
@@ -5,28 +5,22 @@ from __future__ import unicode_literals
|
||||
from functools import reduce
|
||||
|
||||
from django import forms
|
||||
from django.urls import reverse
|
||||
from django.http import QueryDict
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.urls import reverse
|
||||
from django.utils.encoding import force_text
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib.exceptions import Conflict
|
||||
from modoboa.lib.fields import DomainNameField
|
||||
from modoboa.lib.form_utils import (
|
||||
YesNoField, WizardForm, WizardStep, DynamicForm, TabForms
|
||||
DynamicForm, TabForms, WizardForm, WizardStep, YesNoField
|
||||
)
|
||||
from modoboa.lib.web_utils import render_to_json_response
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from .. import constants
|
||||
from .. import lib
|
||||
from .. import signals
|
||||
|
||||
from ..models import (
|
||||
Domain, DomainAlias, Mailbox, Alias
|
||||
)
|
||||
from .. import constants, lib, signals
|
||||
from ..models import Alias, Domain, DomainAlias, Mailbox
|
||||
|
||||
|
||||
class DomainFormGeneral(forms.ModelForm, DynamicForm):
|
||||
|
||||
@@ -2,26 +2,18 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.urls import reverse
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db.models import signals
|
||||
from django.dispatch import receiver
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from modoboa.core import models as core_models
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.core import models as core_models, signals as core_signals
|
||||
from modoboa.lib import exceptions, permissions, signals as lib_signals
|
||||
from modoboa.lib.cryptutils import encrypt
|
||||
from modoboa.lib.email_utils import split_mailbox
|
||||
from modoboa.lib import exceptions
|
||||
from modoboa.lib import permissions
|
||||
from modoboa.lib import signals as lib_signals
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from . import signals as admin_signals
|
||||
from . import lib
|
||||
from . import models
|
||||
from . import postfix_maps
|
||||
from . import lib, models, postfix_maps, signals as admin_signals
|
||||
|
||||
|
||||
@receiver(signals.post_save, sender=models.Domain)
|
||||
|
||||
@@ -4,30 +4,28 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from functools import wraps
|
||||
import ipaddress
|
||||
from itertools import chain
|
||||
import logging
|
||||
import random
|
||||
import socket
|
||||
import string
|
||||
from functools import wraps
|
||||
from itertools import chain
|
||||
|
||||
from dns.name import IDNA_2008_UTS_46
|
||||
import dns.resolver
|
||||
from dns.name import IDNA_2008_UTS_46
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db.models import Q
|
||||
from django.utils.encoding import smart_text
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from modoboa.core.models import User
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib.exceptions import PermDeniedException
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from .models import Domain, DomainAlias, Alias
|
||||
|
||||
from . import signals
|
||||
from .models import Alias, Domain, DomainAlias
|
||||
|
||||
|
||||
def needs_mailbox():
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""A management command to apply mailbox operations."""
|
||||
|
||||
from __future__ import unicode_literals, print_function
|
||||
from __future__ import print_function, unicode_literals
|
||||
|
||||
import logging
|
||||
import os
|
||||
@@ -8,10 +8,9 @@ import shutil
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from modoboa.parameters import tools as param_tools
|
||||
from modoboa.lib.sysutils import exec_cmd
|
||||
from modoboa.lib.exceptions import InternalError
|
||||
|
||||
from modoboa.lib.sysutils import exec_cmd
|
||||
from modoboa.parameters import tools as param_tools
|
||||
from ...app_settings import load_admin_settings
|
||||
from ...models import MailboxOperation
|
||||
|
||||
|
||||
@@ -4,10 +4,10 @@ from __future__ import unicode_literals
|
||||
|
||||
from subcommand.base import SubcommandCommand
|
||||
|
||||
from .subcommands._mx import CheckMXRecords
|
||||
from .subcommands._export import ExportCommand
|
||||
from .subcommands._import import ImportCommand
|
||||
from .subcommands._manage_dkim_keys import ManageDKIMKeys
|
||||
from .subcommands._mx import CheckMXRecords
|
||||
from .subcommands._repair import Repair
|
||||
|
||||
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from backports import csv
|
||||
import sys
|
||||
|
||||
from backports import csv
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from modoboa.core.models import User
|
||||
from modoboa.core.extensions import exts_pool
|
||||
from modoboa.core.models import User
|
||||
from .... import models
|
||||
|
||||
|
||||
|
||||
@@ -2,18 +2,17 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from backports import csv
|
||||
import io
|
||||
import os
|
||||
|
||||
import progressbar
|
||||
from backports import csv
|
||||
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
|
||||
from modoboa.core import models as core_models
|
||||
from modoboa.core.extensions import exts_pool
|
||||
from modoboa.lib.exceptions import Conflict
|
||||
|
||||
from .... import signals
|
||||
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@ from django.utils.encoding import smart_text
|
||||
|
||||
from modoboa.lib import sysutils
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from .... import models
|
||||
|
||||
|
||||
|
||||
@@ -18,8 +18,7 @@ from django.utils.encoding import smart_text
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from modoboa.admin import constants
|
||||
from modoboa.admin import models
|
||||
from modoboa.admin import constants, models
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
|
||||
|
||||
@@ -6,11 +6,9 @@ from django.conf import settings
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.utils.encoding import smart_str
|
||||
|
||||
from modoboa.lib.permissions import grant_access_to_object
|
||||
from modoboa.lib.permissions import get_object_owner
|
||||
|
||||
from modoboa.core.models import User
|
||||
from modoboa.admin import models
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib.permissions import get_object_owner, grant_access_to_object
|
||||
|
||||
known_problems = []
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from .alias import Alias, AliasRecipient
|
||||
from .base import AdminObject
|
||||
from .domain import Domain
|
||||
from .domain_alias import DomainAlias
|
||||
from .mailbox import Mailbox, Quota, MailboxOperation, SenderAddress
|
||||
from .mailbox import Mailbox, MailboxOperation, Quota, SenderAddress
|
||||
from .mxrecord import DNSBLResult, MXRecord
|
||||
from .alias import Alias, AliasRecipient
|
||||
|
||||
__all__ = [
|
||||
"AdminObject",
|
||||
|
||||
@@ -5,25 +5,24 @@ from __future__ import unicode_literals
|
||||
import hashlib
|
||||
import random
|
||||
|
||||
from django.urls import reverse
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from django.db import models
|
||||
from django.urls import reverse
|
||||
from django.utils.encoding import (
|
||||
python_2_unicode_compatible, smart_text, force_str, force_bytes
|
||||
force_bytes, force_str, python_2_unicode_compatible, smart_text
|
||||
)
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.lib.email_utils import split_mailbox
|
||||
from modoboa.lib.exceptions import (
|
||||
PermDeniedException, BadRequest, Conflict, NotFound
|
||||
BadRequest, Conflict, NotFound, PermDeniedException
|
||||
)
|
||||
|
||||
from .. import signals
|
||||
from .base import AdminObject
|
||||
from .domain import Domain
|
||||
from .mailbox import Mailbox
|
||||
from .. import signals
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
|
||||
@@ -2,11 +2,10 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.contrib.contenttypes.fields import GenericRelation
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
|
||||
from django.contrib.contenttypes.fields import GenericRelation
|
||||
|
||||
from modoboa.core import models as core_models
|
||||
from modoboa.lib.permissions import (
|
||||
grant_access_to_object, ungrant_access_to_object
|
||||
|
||||
@@ -4,23 +4,22 @@ from __future__ import unicode_literals
|
||||
|
||||
import datetime
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
from django.utils.encoding import (
|
||||
python_2_unicode_compatible, smart_text, force_text
|
||||
force_text, python_2_unicode_compatible, smart_text
|
||||
)
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib.exceptions import BadRequest, Conflict
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from .base import AdminObject
|
||||
from .. import constants
|
||||
from .base import AdminObject
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
|
||||
@@ -2,18 +2,15 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from django.contrib.contenttypes.fields import GenericRelation
|
||||
from django.db import models
|
||||
from django.utils.encoding import python_2_unicode_compatible, smart_text
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from django.contrib.contenttypes.fields import GenericRelation
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core import models as core_models
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.core import models as core_models, signals as core_signals
|
||||
from modoboa.lib.exceptions import BadRequest, Conflict
|
||||
|
||||
from .base import AdminObject
|
||||
from .domain import Domain
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@ from __future__ import unicode_literals
|
||||
import os
|
||||
import pwd
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
@@ -12,14 +14,11 @@ from django.db.models.manager import Manager
|
||||
from django.utils.encoding import python_2_unicode_compatible, smart_text
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib import exceptions as lib_exceptions
|
||||
from modoboa.lib.email_utils import split_mailbox
|
||||
from modoboa.lib.sysutils import exec_cmd
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from .base import AdminObject
|
||||
from .domain import Domain
|
||||
|
||||
|
||||
@@ -3,25 +3,24 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import password_validation
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.utils.encoding import force_text
|
||||
|
||||
from django.contrib.auth import password_validation
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from rest_framework import serializers
|
||||
|
||||
from modoboa.admin import models as admin_models
|
||||
from modoboa.core import constants as core_constants
|
||||
from modoboa.core import models as core_models
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.lib import exceptions as lib_exceptions
|
||||
from modoboa.lib import permissions, email_utils, fields as lib_fields
|
||||
from modoboa.core import (
|
||||
constants as core_constants, models as core_models, signals as core_signals
|
||||
)
|
||||
from modoboa.lib import (
|
||||
email_utils, exceptions as lib_exceptions, fields as lib_fields,
|
||||
permissions
|
||||
)
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from . import lib
|
||||
from . import models
|
||||
from . import lib, models
|
||||
|
||||
|
||||
class DomainSerializer(serializers.ModelSerializer):
|
||||
|
||||
@@ -5,15 +5,14 @@ from __future__ import unicode_literals
|
||||
from functools import reduce
|
||||
|
||||
from django import template
|
||||
from django.urls import reverse
|
||||
from django.template.loader import render_to_string
|
||||
from django.urls import reverse
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.lib.templatetags.lib_tags import render_link
|
||||
from modoboa.lib.web_utils import render_actions
|
||||
|
||||
from .. import signals
|
||||
|
||||
register = template.Library()
|
||||
|
||||
@@ -4,18 +4,15 @@ from __future__ import unicode_literals
|
||||
|
||||
from unittest import skipIf
|
||||
|
||||
from django.urls import reverse
|
||||
from django.test import override_settings
|
||||
from django.urls import reverse
|
||||
|
||||
from modoboa.core import factories as core_factories
|
||||
from modoboa.core.tests import test_ldap
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
from modoboa.lib.tests import NO_LDAP
|
||||
from modoboa.core.tests import test_ldap
|
||||
from modoboa.lib.tests import NO_LDAP, ModoTestCase
|
||||
from modoboa.limits import utils as limits_utils
|
||||
|
||||
from .. import factories
|
||||
from .. import models
|
||||
from .. import factories, models
|
||||
|
||||
|
||||
class AuthenticationTestCase(ModoTestCase):
|
||||
|
||||
@@ -2,16 +2,18 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
"""Admin test cases."""
|
||||
|
||||
from django.urls import reverse
|
||||
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
|
||||
from .. import factories
|
||||
from ..models import Alias, AliasRecipient, Domain
|
||||
|
||||
"""Admin test cases."""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class AliasTestCase(ModoTestCase):
|
||||
|
||||
|
||||
@@ -16,13 +16,10 @@ from django.urls import reverse
|
||||
from rest_framework.authtoken.models import Token
|
||||
|
||||
from modoboa.admin import models as admin_models
|
||||
from modoboa.core import factories as core_factories
|
||||
from modoboa.core import models as core_models
|
||||
from modoboa.core import factories as core_factories, models as core_models
|
||||
from modoboa.lib.tests import ModoAPITestCase
|
||||
|
||||
from . import utils
|
||||
from .. import factories
|
||||
from .. import models
|
||||
from .. import factories, models
|
||||
|
||||
|
||||
class DomainAPITestCase(ModoAPITestCase):
|
||||
|
||||
@@ -20,10 +20,9 @@ from modoboa.core import factories as core_factories
|
||||
from modoboa.core.models import User
|
||||
from modoboa.core.tests.test_views import SETTINGS_SAMPLE
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
|
||||
from . import utils
|
||||
from .. import factories
|
||||
from ..models import Domain, Alias
|
||||
from ..models import Alias, Domain
|
||||
|
||||
|
||||
class DomainTestCase(ModoTestCase):
|
||||
|
||||
@@ -5,9 +5,8 @@ from __future__ import unicode_literals
|
||||
from django.urls import reverse
|
||||
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
|
||||
from .. import factories
|
||||
from ..models import Domain, DomainAlias, Alias
|
||||
from ..models import Alias, Domain, DomainAlias
|
||||
|
||||
|
||||
class DomainAliasTestCase(ModoTestCase):
|
||||
|
||||
@@ -8,9 +8,7 @@ from django.urls import reverse
|
||||
from django.utils.encoding import force_text
|
||||
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
|
||||
from .. import factories
|
||||
from .. import models
|
||||
from .. import factories, models
|
||||
|
||||
|
||||
class ExportTestCase(ModoTestCase):
|
||||
|
||||
@@ -11,10 +11,9 @@ from django.urls import reverse
|
||||
from modoboa.core import factories as core_factories
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
|
||||
from . import utils
|
||||
from .. import factories
|
||||
from ..models import Domain, Alias, DomainAlias
|
||||
from ..models import Alias, Domain, DomainAlias
|
||||
|
||||
|
||||
class ImportTestCase(ModoTestCase):
|
||||
|
||||
@@ -9,13 +9,11 @@ import tempfile
|
||||
import mock
|
||||
|
||||
from django.core.management import call_command
|
||||
from django.urls import reverse
|
||||
from django.test import override_settings
|
||||
from django.urls import reverse
|
||||
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
|
||||
from .. import factories
|
||||
from .. import models
|
||||
from .. import factories, models
|
||||
|
||||
|
||||
@override_settings(
|
||||
|
||||
@@ -8,19 +8,16 @@ import dns.resolver
|
||||
from mock import patch
|
||||
from testfixtures import LogCapture
|
||||
|
||||
from django.core import mail
|
||||
from django.core import management
|
||||
from django.core import mail, management
|
||||
from django.test import override_settings
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from modoboa.core import factories as core_factories
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
|
||||
from . import utils
|
||||
from .. import factories
|
||||
from .. import factories, models
|
||||
from ..lib import get_domain_mx_list
|
||||
from .. import models
|
||||
|
||||
|
||||
class MXTestCase(ModoTestCase):
|
||||
|
||||
@@ -4,7 +4,6 @@ from django.urls import reverse
|
||||
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
|
||||
from .. import factories
|
||||
|
||||
|
||||
|
||||
@@ -4,12 +4,9 @@ from __future__ import unicode_literals
|
||||
|
||||
from django.core import management
|
||||
|
||||
from modoboa.lib.permissions import get_object_owner
|
||||
from modoboa.lib.permissions import ObjectAccess
|
||||
from modoboa.lib.permissions import ObjectAccess, get_object_owner
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
|
||||
from .. import factories
|
||||
from .. import models
|
||||
from .. import factories, models
|
||||
|
||||
|
||||
class RepairTestCase(ModoTestCase):
|
||||
|
||||
@@ -6,7 +6,6 @@ from django.urls import reverse
|
||||
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
|
||||
from ..factories import populate_database
|
||||
from ..models import Alias
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import socket
|
||||
|
||||
from dns.name import Name
|
||||
from dns.rdtypes.ANY.MX import MX
|
||||
from dns.resolver import NoAnswer, NoNameservers, NXDOMAIN, Timeout
|
||||
from dns.resolver import NXDOMAIN, NoAnswer, NoNameservers, Timeout
|
||||
|
||||
_MX_RECORD_1 = MX("IN", "MX", 10, Name("mx.example.com".split(".")))
|
||||
_MX_RECORD_2 = MX("IN", "MX", 10, Name("mx2.example.com".split(".")))
|
||||
|
||||
@@ -6,12 +6,10 @@ from __future__ import unicode_literals
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
from .views import import_ as import_views
|
||||
from .views import alias as alias_views
|
||||
from .views import domain as domain_views
|
||||
from .views import export as export_views
|
||||
from .views import identity as identity_views
|
||||
|
||||
from .views import (
|
||||
alias as alias_views, domain as domain_views, export as export_views,
|
||||
identity as identity_views, import_ as import_views
|
||||
)
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^$', domain_views.index, name="index"),
|
||||
|
||||
@@ -6,7 +6,6 @@ from rest_framework import routers
|
||||
|
||||
from . import api
|
||||
|
||||
|
||||
router = routers.SimpleRouter()
|
||||
router.register(r"domains", api.DomainViewSet, base_name="domain")
|
||||
router.register(
|
||||
|
||||
@@ -3,10 +3,9 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from .alias import AliasDetailView
|
||||
from .identity import AccountDetailView
|
||||
from .dns import DNSBLDomainDetailView, MXDomainDetailView
|
||||
from .domain import DomainDetailView
|
||||
|
||||
from .identity import AccountDetailView
|
||||
|
||||
__all__ = [
|
||||
"AccountDetailView",
|
||||
|
||||
@@ -2,23 +2,19 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.urls import reverse
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from django.contrib.auth import mixins as auth_mixins
|
||||
from django.contrib.auth.decorators import login_required, permission_required
|
||||
from django.db import IntegrityError
|
||||
from django.shortcuts import render
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import ugettext as _, ungettext
|
||||
from django.views import generic
|
||||
|
||||
from django.contrib.auth import mixins as auth_mixins
|
||||
from django.contrib.auth.decorators import (
|
||||
login_required, permission_required
|
||||
)
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.lib.exceptions import PermDeniedException, Conflict
|
||||
from modoboa.lib.exceptions import Conflict, PermDeniedException
|
||||
from modoboa.lib.web_utils import render_to_json_response
|
||||
|
||||
from ..forms import AliasForm
|
||||
from ..models import Alias
|
||||
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.views import generic
|
||||
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from django.contrib.auth import mixins as auth_mixins
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.views import generic
|
||||
|
||||
from .. import models
|
||||
|
||||
|
||||
@@ -4,31 +4,29 @@ from __future__ import unicode_literals
|
||||
|
||||
from functools import reduce
|
||||
|
||||
from django.urls import reverse
|
||||
from django.db.models import Sum
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import render
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext as _, ungettext
|
||||
from django.views import generic
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from django.contrib.auth import mixins as auth_mixins
|
||||
from django.contrib.auth.decorators import (
|
||||
login_required, permission_required, user_passes_test
|
||||
)
|
||||
|
||||
from reversion import revisions as reversion
|
||||
from django.db.models import Sum
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import render
|
||||
from django.template.loader import render_to_string
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import ugettext as _, ungettext
|
||||
from django.views import generic
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.lib.web_utils import render_to_json_response
|
||||
from modoboa.lib.exceptions import PermDeniedException
|
||||
from modoboa.lib.listing import get_sort_order, get_listing_page
|
||||
|
||||
from modoboa.lib.listing import get_listing_page, get_sort_order
|
||||
from modoboa.lib.web_utils import render_to_json_response
|
||||
from .. import signals
|
||||
from ..forms import DomainForm, DomainWizard
|
||||
from ..lib import get_domains
|
||||
from ..models import Domain, Mailbox
|
||||
from .. import signals
|
||||
|
||||
|
||||
@login_required
|
||||
|
||||
@@ -3,19 +3,18 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from backports import csv
|
||||
|
||||
from rfc6266 import build_header
|
||||
|
||||
from django.contrib.auth.decorators import (
|
||||
login_required, permission_required, user_passes_test
|
||||
)
|
||||
from django.urls import reverse
|
||||
from django.http import HttpResponse
|
||||
from django.shortcuts import render
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.urls import reverse
|
||||
from django.utils import six
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from ..forms import ExportIdentitiesForm, ExportDomainsForm
|
||||
from ..forms import ExportDomainsForm, ExportIdentitiesForm
|
||||
from ..lib import get_domains, get_identities
|
||||
|
||||
|
||||
|
||||
@@ -2,32 +2,26 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from django.contrib.auth import mixins as auth_mixins
|
||||
from django.contrib.auth.decorators import (
|
||||
login_required, permission_required, user_passes_test
|
||||
)
|
||||
from django.shortcuts import render
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext as _, ungettext
|
||||
from django.views import generic
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
|
||||
from django.contrib.auth import mixins as auth_mixins
|
||||
from django.contrib.auth.decorators import (
|
||||
login_required, permission_required, user_passes_test
|
||||
)
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib.exceptions import (
|
||||
PermDeniedException, BadRequest
|
||||
)
|
||||
from modoboa.lib.listing import (
|
||||
get_sort_order, get_listing_page
|
||||
)
|
||||
from modoboa.lib.exceptions import BadRequest, PermDeniedException
|
||||
from modoboa.lib.listing import get_listing_page, get_sort_order
|
||||
from modoboa.lib.web_utils import render_to_json_response
|
||||
|
||||
from .. import signals
|
||||
from ..forms import AccountForm, AccountWizard
|
||||
from ..lib import get_identities
|
||||
from ..models import Mailbox, Domain
|
||||
from .. import signals
|
||||
from ..models import Domain, Mailbox
|
||||
|
||||
|
||||
@login_required
|
||||
|
||||
@@ -2,25 +2,23 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from backports import csv
|
||||
|
||||
import io
|
||||
|
||||
from backports import csv
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from django.contrib.auth.decorators import (
|
||||
login_required, permission_required, user_passes_test
|
||||
)
|
||||
from django.urls import reverse
|
||||
from django.db import transaction
|
||||
from django.shortcuts import render
|
||||
from django.urls import reverse
|
||||
from django.utils.encoding import smart_text
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.lib.exceptions import ModoboaException, Conflict
|
||||
|
||||
from ..forms import ImportIdentitiesForm, ImportDataForm
|
||||
from modoboa.lib.exceptions import Conflict, ModoboaException
|
||||
from .. import signals
|
||||
from ..forms import ImportDataForm, ImportIdentitiesForm
|
||||
|
||||
|
||||
@reversion.create_revision()
|
||||
|
||||
@@ -2,15 +2,13 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from django.contrib.auth.decorators import login_required
|
||||
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from modoboa.lib.web_utils import render_to_json_response
|
||||
|
||||
from ..forms import ForwardForm
|
||||
from ..lib import needs_mailbox
|
||||
from ..models import Alias
|
||||
|
||||
@@ -4,18 +4,15 @@ from __future__ import unicode_literals
|
||||
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from django.contrib.auth import password_validation
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from modoboa.lib import fields as lib_fields
|
||||
from modoboa.lib.cryptutils import random_key
|
||||
from modoboa.lib.form_utils import (
|
||||
YesNoField, SeparatorField, HorizontalRadioSelect
|
||||
HorizontalRadioSelect, SeparatorField, YesNoField
|
||||
)
|
||||
from modoboa.parameters import forms as param_forms
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from modoboa.parameters import forms as param_forms, tools as param_tools
|
||||
from . import constants
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ from django.conf import settings
|
||||
from django.core.checks import Warning, register
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
|
||||
W001 = Warning(
|
||||
_("You have USE_TZ set to False, this may result in issues during "
|
||||
"transitions between summer/winter time (ie the same local time occuring "
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# coding: utf-8
|
||||
|
||||
from __future__ import unicode_literals, print_function
|
||||
from __future__ import print_function, unicode_literals
|
||||
|
||||
import argparse
|
||||
import os
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
"""A shortcut to deploy a fresh modoboa instance."""
|
||||
|
||||
from __future__ import unicode_literals, print_function
|
||||
from __future__ import print_function, unicode_literals
|
||||
|
||||
import codecs
|
||||
import getpass
|
||||
@@ -10,23 +10,25 @@ import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
from os.path import isfile
|
||||
|
||||
import dj_database_url
|
||||
|
||||
import django
|
||||
from django.core import management
|
||||
from django.template import Context, Template
|
||||
from django.utils.encoding import smart_str
|
||||
|
||||
from modoboa.core.commands import Command
|
||||
from modoboa.lib.api_client import ModoAPIClient
|
||||
|
||||
try:
|
||||
import pip
|
||||
except ImportError:
|
||||
sys.stderr.write("Error: pip is required to install extensions.\n")
|
||||
sys.exit(2)
|
||||
|
||||
import django
|
||||
from django.core import management
|
||||
from django.template import Context, Template
|
||||
from django.utils.encoding import smart_str
|
||||
import dj_database_url
|
||||
|
||||
from modoboa.core.commands import Command
|
||||
from modoboa.lib.api_client import ModoAPIClient
|
||||
|
||||
if sys.version_info < (3, 0, 0):
|
||||
input = raw_input
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# coding: utf-8
|
||||
|
||||
from __future__ import unicode_literals, print_function
|
||||
from __future__ import print_function, unicode_literals
|
||||
|
||||
import sys
|
||||
|
||||
|
||||
@@ -5,14 +5,12 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django import forms
|
||||
from django.contrib.auth import (
|
||||
forms as auth_forms, get_user_model, password_validation
|
||||
)
|
||||
from django.db.models import Q
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from django.contrib.auth import forms as auth_forms
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
from django.contrib.auth import password_validation
|
||||
|
||||
from modoboa.core.models import User
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
|
||||
@@ -4,24 +4,19 @@ from __future__ import unicode_literals
|
||||
|
||||
import logging
|
||||
|
||||
from reversion import revisions as reversion
|
||||
from reversion.models import Version
|
||||
|
||||
from django.contrib.sites import models as sites_models
|
||||
from django.db.models import signals
|
||||
from django.dispatch import receiver
|
||||
from django.urls import reverse
|
||||
from django.utils.encoding import smart_text
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from django.contrib.sites import models as sites_models
|
||||
|
||||
from reversion import revisions as reversion
|
||||
from reversion.models import Version
|
||||
|
||||
from modoboa.lib import exceptions
|
||||
from modoboa.lib import permissions
|
||||
from modoboa.lib import exceptions, permissions
|
||||
from modoboa.lib.signals import get_request
|
||||
|
||||
from . import models
|
||||
from . import signals as core_signals
|
||||
from . import utils
|
||||
from . import models, signals as core_signals, utils
|
||||
|
||||
|
||||
@receiver(reversion.post_revision_commit)
|
||||
|
||||
@@ -9,7 +9,6 @@ from django.core.management.base import BaseCommand
|
||||
from django.utils import timezone
|
||||
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from ... import models
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ from django.core.management.base import BaseCommand, CommandError
|
||||
from modoboa.admin import models as admin_models
|
||||
from modoboa.core.extensions import exts_pool
|
||||
from modoboa.lib import api_client
|
||||
|
||||
from ... import models
|
||||
|
||||
|
||||
|
||||
@@ -6,16 +6,15 @@ import hashlib
|
||||
import os
|
||||
import sys
|
||||
|
||||
import dj_database_url
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.template import Context, Template
|
||||
from django.utils import timezone
|
||||
from django.utils.encoding import force_bytes
|
||||
|
||||
import dj_database_url
|
||||
|
||||
from ... import signals
|
||||
from ... import utils
|
||||
from ... import signals, utils
|
||||
|
||||
MAP_FILE_TEMPLATE = """# This file was generated on {{ date }} by running:
|
||||
# {{ commandline }}
|
||||
|
||||
@@ -14,11 +14,7 @@ from django.core.management.base import BaseCommand
|
||||
|
||||
from modoboa.lib.cryptutils import random_key
|
||||
from modoboa.lib.permissions import add_permissions_to_group
|
||||
|
||||
from ... import constants
|
||||
from ... import extensions
|
||||
from ... import models
|
||||
from ... import signals
|
||||
from ... import constants, extensions, models, signals
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
||||
@@ -7,9 +7,8 @@ See `https://docs.djangoproject.com/en/dev/ref/contrib/sites/`_.
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
|
||||
from django.contrib.sites.models import Site
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
||||
@@ -4,7 +4,6 @@ from __future__ import unicode_literals
|
||||
|
||||
import httmock
|
||||
|
||||
|
||||
# Modoboa API mocks
|
||||
|
||||
@httmock.urlmatch(
|
||||
|
||||
+15
-19
@@ -2,34 +2,30 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from email.header import Header
|
||||
import re
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import models
|
||||
from django.urls import reverse
|
||||
from django.utils.encoding import (
|
||||
python_2_unicode_compatible, smart_bytes, smart_text, force_str
|
||||
)
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from django.contrib.auth.models import Group, AbstractUser
|
||||
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from email.header import Header
|
||||
|
||||
import jsonfield
|
||||
from reversion import revisions as reversion
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import AbstractUser, Group
|
||||
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db import models
|
||||
from django.urls import reverse
|
||||
from django.utils.encoding import (
|
||||
force_str, python_2_unicode_compatible, smart_bytes, smart_text
|
||||
)
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
|
||||
from modoboa.core.password_hashers import get_password_hasher
|
||||
from modoboa.lib.exceptions import (
|
||||
PermDeniedException, InternalError, BadRequest, Conflict
|
||||
BadRequest, Conflict, InternalError, PermDeniedException
|
||||
)
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from . import constants
|
||||
from . import signals
|
||||
|
||||
from . import constants, signals
|
||||
|
||||
try:
|
||||
from modoboa.lib.ldap_utils import LDAPAuthBackend
|
||||
|
||||
@@ -4,12 +4,12 @@ Password hashers for Modoboa.
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from modoboa.core.password_hashers.base import (
|
||||
PLAINHasher, CRYPTHasher, MD5Hasher, SHA256Hasher
|
||||
)
|
||||
from modoboa.core.password_hashers.advanced import (
|
||||
BLFCRYPTHasher, MD5CRYPTHasher, SHA256CRYPTHasher, SHA512CRYPTHasher
|
||||
)
|
||||
from modoboa.core.password_hashers.base import (
|
||||
CRYPTHasher, MD5Hasher, PLAINHasher, SHA256Hasher
|
||||
)
|
||||
|
||||
|
||||
def get_password_hasher(scheme):
|
||||
|
||||
@@ -9,7 +9,6 @@ from __future__ import unicode_literals
|
||||
from passlib.hash import bcrypt, md5_crypt, sha256_crypt, sha512_crypt
|
||||
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from .base import PasswordHasher
|
||||
|
||||
|
||||
|
||||
@@ -9,11 +9,11 @@ from __future__ import unicode_literals
|
||||
import base64
|
||||
import crypt
|
||||
import hashlib
|
||||
from random import Random
|
||||
import string
|
||||
from random import Random
|
||||
|
||||
from django.utils.crypto import constant_time_compare
|
||||
from django.utils.encoding import force_text, force_bytes
|
||||
from django.utils.encoding import force_bytes, force_text
|
||||
|
||||
|
||||
class PasswordHasher(object):
|
||||
|
||||
@@ -3,22 +3,22 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from functools import reduce
|
||||
import os
|
||||
import pkg_resources
|
||||
import re
|
||||
from functools import reduce
|
||||
|
||||
import pkg_resources
|
||||
|
||||
from django import template
|
||||
from django.conf import settings
|
||||
from django.urls import reverse
|
||||
from django.contrib.sessions.models import Session
|
||||
from django.template.loader import render_to_string
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
from django.utils.encoding import smart_text
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.translation import get_language, ugettext as _
|
||||
|
||||
from django.contrib.sessions.models import Session
|
||||
|
||||
from .. import signals
|
||||
|
||||
register = template.Library()
|
||||
|
||||
@@ -5,19 +5,16 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import smtplib
|
||||
|
||||
from unittest import skipIf
|
||||
|
||||
from mock import patch
|
||||
|
||||
from django.core import mail
|
||||
from django.urls import reverse
|
||||
from django.test import override_settings
|
||||
from django.urls import reverse
|
||||
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
from modoboa.lib.tests import NO_SMTP
|
||||
|
||||
from .. import factories
|
||||
from .. import models
|
||||
from modoboa.lib.tests import NO_SMTP, ModoTestCase
|
||||
from .. import factories, models
|
||||
|
||||
|
||||
class AuthenticationTestCase(ModoTestCase):
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import httmock
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from six import StringIO
|
||||
|
||||
from django.core import management
|
||||
from django.urls import reverse
|
||||
from django.test import TestCase
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
|
||||
from .. import factories
|
||||
from .. import mocks
|
||||
from .. import models
|
||||
from .. import factories, mocks, models
|
||||
|
||||
|
||||
class AuthenticationTestCase(ModoTestCase):
|
||||
|
||||
@@ -4,16 +4,13 @@ from __future__ import unicode_literals
|
||||
|
||||
from unittest import skipIf
|
||||
|
||||
from django.urls import reverse
|
||||
from django.test import override_settings
|
||||
from django.urls import reverse
|
||||
from django.utils.functional import cached_property
|
||||
|
||||
from modoboa.lib import exceptions
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
from modoboa.lib.tests import NO_LDAP
|
||||
|
||||
from .. import factories
|
||||
from .. import models
|
||||
from modoboa.lib.tests import NO_LDAP, ModoTestCase
|
||||
from .. import factories, models
|
||||
|
||||
|
||||
@skipIf(NO_LDAP, "No ldap module installed")
|
||||
|
||||
@@ -8,12 +8,8 @@ from django import forms
|
||||
from django.urls import reverse
|
||||
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
from modoboa.parameters import forms as param_forms
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from .. import factories
|
||||
from .. import models
|
||||
from .. import signals
|
||||
from modoboa.parameters import forms as param_forms, tools as param_tools
|
||||
from .. import factories, models, signals
|
||||
|
||||
SETTINGS_SAMPLE = {
|
||||
"core-check_new_versions": "True",
|
||||
|
||||
@@ -8,7 +8,6 @@ from django.utils.translation import ugettext as _
|
||||
|
||||
from modoboa.core.extensions import exts_pool
|
||||
from modoboa.lib.api_client import ModoAPIClient
|
||||
|
||||
from . import models
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,8 @@ from __future__ import unicode_literals
|
||||
|
||||
from .admin import (
|
||||
check_top_notifications, information, logs, logs_page, parameters,
|
||||
viewsettings)
|
||||
viewsettings
|
||||
)
|
||||
from .auth import dologin, dologout, password_reset
|
||||
from .base import RootDispatchView
|
||||
from .dashboard import DashboardView
|
||||
|
||||
@@ -4,19 +4,16 @@ from __future__ import unicode_literals
|
||||
|
||||
from functools import reduce
|
||||
|
||||
from django.contrib.auth.decorators import (
|
||||
login_required, user_passes_test
|
||||
)
|
||||
from django.contrib.auth.decorators import login_required, user_passes_test
|
||||
from django.shortcuts import render
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from modoboa.core.models import Log
|
||||
from modoboa.core.utils import check_for_updates
|
||||
from modoboa.lib.listing import get_sort_order, get_listing_page
|
||||
from modoboa.lib.listing import get_listing_page, get_sort_order
|
||||
from modoboa.lib.web_utils import render_to_json_response
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from .. import signals
|
||||
|
||||
|
||||
|
||||
@@ -5,20 +5,19 @@ from __future__ import unicode_literals
|
||||
|
||||
import logging
|
||||
|
||||
from django.urls import reverse
|
||||
from django.contrib.auth import (
|
||||
authenticate, login, logout, views as auth_views
|
||||
)
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.template.loader import render_to_string
|
||||
from django.urls import reverse
|
||||
from django.utils import translation
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.views.decorators.cache import never_cache
|
||||
|
||||
from django.contrib.auth import authenticate, login, logout
|
||||
from django.contrib.auth import views as auth_views
|
||||
|
||||
from modoboa.core import forms
|
||||
|
||||
from .base import find_nextlocation
|
||||
from .. import signals
|
||||
from .base import find_nextlocation
|
||||
|
||||
logger = logging.getLogger("modoboa.auth")
|
||||
|
||||
|
||||
@@ -2,12 +2,11 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.contrib.auth import mixins as auth_mixins
|
||||
from django.urls import reverse
|
||||
from django.utils.http import is_safe_url
|
||||
from django.views import generic
|
||||
|
||||
from django.contrib.auth import mixins as auth_mixins
|
||||
|
||||
from ..extensions import exts_pool
|
||||
|
||||
|
||||
|
||||
@@ -2,14 +2,13 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from dateutil import parser
|
||||
import feedparser
|
||||
import requests
|
||||
from dateutil import parser
|
||||
from requests.exceptions import RequestException
|
||||
|
||||
from django.views import generic
|
||||
|
||||
from django.contrib.auth import mixins as auth_mixins
|
||||
from django.views import generic
|
||||
|
||||
from .. import signals
|
||||
|
||||
|
||||
@@ -2,22 +2,20 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.contrib.auth.decorators import login_required, user_passes_test
|
||||
from django.shortcuts import render
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils import translation
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.encoding import force_text
|
||||
|
||||
from django.contrib.auth.decorators import login_required, user_passes_test
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from rest_framework.authtoken.models import Token
|
||||
|
||||
from modoboa.lib.cryptutils import encrypt
|
||||
from modoboa.lib.web_utils import render_to_json_response
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from ..forms import ProfileForm, APIAccessForm
|
||||
from .. import signals
|
||||
from ..forms import APIAccessForm, ProfileForm
|
||||
|
||||
|
||||
@login_required
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import os
|
||||
import pkg_resources
|
||||
|
||||
import pkg_resources
|
||||
import requests
|
||||
from requests.exceptions import RequestException
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import smtplib
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
from modoboa.core.models import populate_callback, User
|
||||
from modoboa.core.models import User, populate_callback
|
||||
from modoboa.lib.email_utils import split_mailbox
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
|
||||
@@ -6,12 +6,12 @@ from __future__ import unicode_literals
|
||||
|
||||
import base64
|
||||
|
||||
from cryptography.fernet import Fernet
|
||||
|
||||
from django.conf import settings
|
||||
from django.utils.crypto import get_random_string
|
||||
from django.utils.encoding import smart_bytes, smart_text
|
||||
|
||||
from cryptography.fernet import Fernet
|
||||
|
||||
|
||||
def random_key(length=16):
|
||||
"""Generate a new key used to encrypt user passwords in session storage."""
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import email
|
||||
from email.header import Header
|
||||
from email.mime.text import MIMEText
|
||||
from email.utils import make_msgid, formataddr, formatdate, getaddresses
|
||||
import re
|
||||
import smtplib
|
||||
import time
|
||||
from email.header import Header
|
||||
from email.mime.text import MIMEText
|
||||
from email.utils import formataddr, formatdate, getaddresses, make_msgid
|
||||
|
||||
import chardet
|
||||
import lxml.html
|
||||
@@ -23,7 +23,6 @@ from django.utils.translation import ugettext as _
|
||||
from modoboa.lib import u2u_decode
|
||||
from modoboa.lib.exceptions import InternalError
|
||||
|
||||
|
||||
# used by Email()
|
||||
_RE_REMOVE_EXTRA_WHITESPACE = re.compile(r"\n\s*\n")
|
||||
_RE_CID = re.compile(r".*[ ]*cid=\"([^\"]*)\".*", re.I)
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import abc
|
||||
from collections import OrderedDict
|
||||
import re
|
||||
from collections import OrderedDict
|
||||
|
||||
from django.forms import TypedChoiceField
|
||||
from django.forms.fields import Field
|
||||
@@ -18,7 +18,6 @@ from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from modoboa.lib.exceptions import BadRequest
|
||||
from modoboa.lib.web_utils import render_to_json_response
|
||||
|
||||
|
||||
ABC = abc.ABCMeta(force_str("ABC"), (object,), {})
|
||||
|
||||
|
||||
|
||||
@@ -38,9 +38,9 @@ from __future__ import unicode_literals
|
||||
import ldap
|
||||
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.encoding import force_bytes
|
||||
from django.utils import six
|
||||
from django.utils.encoding import force_bytes
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from modoboa.core.password_hashers import get_password_hasher
|
||||
from modoboa.lib.exceptions import InternalError
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
||||
from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
|
||||
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.utils.encoding import smart_text
|
||||
from django.utils.deprecation import MiddlewareMixin
|
||||
from django.utils.encoding import smart_text
|
||||
|
||||
from modoboa.lib.exceptions import ModoboaException
|
||||
from modoboa.lib import signals as lib_signals
|
||||
from modoboa.lib.exceptions import ModoboaException
|
||||
from modoboa.lib.web_utils import (
|
||||
_render_error, ajax_response, render_to_json_response
|
||||
)
|
||||
|
||||
@@ -6,8 +6,7 @@ from __future__ import unicode_literals
|
||||
from django.contrib.auth.models import Group, Permission
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from modoboa.core import constants as core_constants
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.core import constants as core_constants, signals as core_signals
|
||||
from modoboa.core.models import ObjectAccess, User
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
|
||||
# works in Python 2 & 3
|
||||
class _Singleton(type):
|
||||
_instances = {}
|
||||
|
||||
@@ -7,9 +7,9 @@ This module extra functions/shortcuts to communicate with the system
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import subprocess
|
||||
import inspect
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
|
||||
def exec_cmd(cmd, sudo_user=None, pinput=None, capture_output=True, **kwargs):
|
||||
|
||||
@@ -4,11 +4,10 @@ Form rendering tags.
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django import forms
|
||||
from django import template
|
||||
from django import forms, template
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.encoding import smart_text
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.template.loader import render_to_string
|
||||
|
||||
from modoboa.lib.form_utils import SeparatorField
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ from __future__ import unicode_literals
|
||||
from datetime import datetime
|
||||
|
||||
from django import template
|
||||
from django.template import Template, Context
|
||||
from django.template import Context, Template
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@ from rest_framework.authtoken.models import Token
|
||||
from rest_framework.test import APITestCase
|
||||
|
||||
from modoboa.core import models as core_models
|
||||
|
||||
from .. import sysutils
|
||||
|
||||
try:
|
||||
|
||||
@@ -10,7 +10,8 @@ from django.test import SimpleTestCase
|
||||
from django.utils.encoding import smart_bytes, smart_text
|
||||
|
||||
from ..email_utils import (
|
||||
Email, prepare_addresses, split_address, split_local_part)
|
||||
Email, prepare_addresses, split_address, split_local_part
|
||||
)
|
||||
|
||||
SAMPLES_DIR = os.path.realpath(
|
||||
os.path.join(os.path.dirname(__file__), "sample_messages"))
|
||||
|
||||
@@ -9,9 +9,9 @@ A stupid (and not accurate) answer to https://bugs.python.org/issue1079.
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import re
|
||||
from email.header import decode_header, make_header
|
||||
from email.utils import parseaddr
|
||||
import re
|
||||
|
||||
from django.utils.encoding import smart_text
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ import collections
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
|
||||
DEFAULT_USER_LIMITS = collections.OrderedDict((
|
||||
("domains", {
|
||||
"content_type": "admin.domain", "label": _("Domains"),
|
||||
|
||||
@@ -8,9 +8,8 @@ from django import forms
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from modoboa.lib.permissions import get_object_owner
|
||||
|
||||
from .lib import allocate_resources_from_user
|
||||
from . import utils
|
||||
from .lib import allocate_resources_from_user
|
||||
|
||||
|
||||
class ResourcePoolForm(forms.Form):
|
||||
|
||||
@@ -2,25 +2,17 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db.models import signals
|
||||
from django.dispatch import receiver
|
||||
from django.template.loader import render_to_string
|
||||
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from modoboa.admin import models as admin_models
|
||||
from modoboa.admin import signals as admin_signals
|
||||
from modoboa.core import models as core_models
|
||||
from modoboa.core import signals as core_signals
|
||||
from modoboa.lib import signals as lib_signals
|
||||
from modoboa.lib import permissions
|
||||
from modoboa.admin import models as admin_models, signals as admin_signals
|
||||
from modoboa.core import models as core_models, signals as core_signals
|
||||
from modoboa.lib import permissions, signals as lib_signals
|
||||
from modoboa.parameters import tools as param_tools
|
||||
|
||||
from . import forms
|
||||
from . import lib
|
||||
from . import models
|
||||
from . import utils
|
||||
from . import forms, lib, models, utils
|
||||
|
||||
|
||||
@receiver(core_signals.can_create_object)
|
||||
|
||||
@@ -11,9 +11,7 @@ from django.utils.functional import cached_property
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from modoboa.core import models as core_models
|
||||
|
||||
from . import lib
|
||||
from . import utils
|
||||
from . import lib, utils
|
||||
|
||||
|
||||
class ObjectLimitMixin(object):
|
||||
|
||||
@@ -13,9 +13,7 @@ from modoboa.admin.factories import populate_database
|
||||
from modoboa.admin.models import Domain
|
||||
from modoboa.core import factories as core_factories
|
||||
from modoboa.core.models import User
|
||||
from modoboa.lib import permissions
|
||||
from modoboa.lib import tests as lib_tests
|
||||
|
||||
from modoboa.lib import permissions, tests as lib_tests
|
||||
from .. import utils
|
||||
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user