Пример #1
0
    def handle(self, *args, **kwargs):
        exts_pool.load_all()
        load_core_settings()

        csvwriter = csv.writer(sys.stdout, delimiter=kwargs['sepchar'])
        for dom in Domain.objects.all():
            dom.to_csv(csvwriter)
    def handle(self, *args, **kwargs):
        superadmin = User.objects.filter(is_superuser=True).first()
        exts_pool.load_all()
        load_core_settings()

        for filename in args:
            if not os.path.exists(filename):
                print('File not found')
                sys.exit(1)

            num_lines = sum(1 for line in open(filename))
            pbar = ProgressBar(
                widgets=[Percentage(), Bar(), ETA()], maxval=num_lines
            ).start()
            with open(filename, 'r') as f:
                reader = csv.reader(f, delimiter=';')
                i = 0
                for row in reader:
                    i += 1
                    pbar.update(i)
                    if not row:
                        continue

                    try:
                        import_alias_pipe(superadmin, row, kwargs)
                    except Conflict:
                        if kwargs['continue_if_exists']:
                            continue

                        raise Conflict(
                            "Object already exists: %s"
                            % kwargs['sepchar'].join(row[:2])
                        )
            pbar.finish()
Пример #3
0
    def handle(self, *args, **options):
        """Command entry point."""
        load_core_settings()

        if not User.objects.filter(is_superuser=True).count():
            admin = User(username="******", is_superuser=True)
            admin.set_password("password")
            admin.save()
            ObjectAccess.objects.create(user=admin,
                                        content_object=admin,
                                        is_owner=True)

        exts_pool.load_all()

        superadmin = User.objects.filter(is_superuser=True).first()
        groups = PERMISSIONS.keys() + [
            role[0] for role in events.raiseQueryEvent("GetExtraRoles",
                                                       superadmin, None)
        ]
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            permissions = (
                PERMISSIONS.get(groupname, []) +
                events.raiseQueryEvent("GetExtraRolePermissions", groupname))
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in exts_pool.extensions.keys():
            extension = exts_pool.get_extension(extname)
            extension.load_initial_data()
            events.raiseEvent("InitialDataLoaded", extname)
    def handle(self, *args, **kwargs):
        exts_pool.load_all()
        load_core_settings()

        csvwriter = csv.writer(sys.stdout, delimiter=kwargs['sepchar'])
        for dom in AliasPipe.objects.all():
            dom.to_csv(csvwriter)
Пример #5
0
    def handle(self, *args, **options):
        """Command entry point."""
        load_core_settings()

        if not User.objects.filter(is_superuser=True).count():
            admin = User(username="******", is_superuser=True)
            admin.set_password("password")
            admin.save()
            ObjectAccess.objects.create(
                user=admin, content_object=admin, is_owner=True)

        exts_pool.load_all()

        superadmin = User.objects.filter(is_superuser=True).first()
        groups = PERMISSIONS.keys() + [
            role[0] for role
            in events.raiseQueryEvent("GetExtraRoles", superadmin, None)
        ]
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            permissions = (
                PERMISSIONS.get(groupname, []) +
                events.raiseQueryEvent("GetExtraRolePermissions", groupname)
            )
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in exts_pool.extensions.keys():
            extension = exts_pool.get_extension(extname)
            extension.load_initial_data()
            events.raiseEvent("InitialDataLoaded", extname)
Пример #6
0
    def handle(self, *args, **kwargs):
        exts_pool.load_all()
        load_core_settings()

        csvwriter = csv.writer(sys.stdout, delimiter=kwargs['sepchar'])
        for u in User.objects.all():
            u.to_csv(csvwriter)

        for a in Alias.objects.prefetch_related('mboxes', 'aliases'):
            a.to_csv(csvwriter)
Пример #7
0
    def handle(self, *args, **kwargs):
        exts_pool.load_all()
        load_core_settings()

        csvwriter = csv.writer(sys.stdout, delimiter=kwargs['sepchar'])
        for u in User.objects.all():
            u.to_csv(csvwriter)

        for a in Alias.objects.prefetch_related('mboxes', 'aliases'):
            a.to_csv(csvwriter)
Пример #8
0
    def handle(self, *args, **options):
        if options["debug"]:
            import logging
            l = logging.getLogger("django.db.backends")
            l.setLevel(logging.DEBUG)
            l.addHandler(logging.StreamHandler())
        self.verbose = options["verbose"]

        load_core_settings()
        log_maximum_age = int(parameters.get_admin("LOG_MAXIMUM_AGE"))
        self.__vprint("Deleting logs older than %d days..." % log_maximum_age)
        limit = timezone.now() - datetime.timedelta(log_maximum_age)
        Log.objects.filter(date_created__lt=limit).delete()
        self.__vprint("Done.")
Пример #9
0
    def handle(self, *args, **options):
        if options["debug"]:
            import logging
            l = logging.getLogger("django.db.backends")
            l.setLevel(logging.DEBUG)
            l.addHandler(logging.StreamHandler())
        self.verbose = options["verbose"]

        load_core_settings()
        log_maximum_age = int(parameters.get_admin("LOG_MAXIMUM_AGE"))
        self.__vprint("Deleting logs older than %d days..." % log_maximum_age)
        limit = timezone.now() - datetime.timedelta(log_maximum_age)
        Log.objects.filter(date_created__lt=limit).delete()
        self.__vprint("Done.")
Пример #10
0
    def _crypt_password(self, raw_value):
        """Crypt the local password using the appropriate scheme.

        In case we don't find the scheme (for example when the
        management framework is used), we load the parameters and try
        one more time.

        """
        try:
            scheme = parameters.get_admin("PASSWORD_SCHEME")
        except parameters.NotDefined:
            from modoboa.core import load_core_settings
            load_core_settings()
            scheme = parameters.get_admin("PASSWORD_SCHEME")

        if isinstance(raw_value, unicode):
            raw_value = raw_value.encode("utf-8")
        return get_password_hasher(scheme.upper())().encrypt(raw_value)
Пример #11
0
    def _crypt_password(self, raw_value):
        """Crypt the local password using the appropriate scheme.

        In case we don't find the scheme (for example when the
        management framework is used), we load the parameters and try
        one more time.

        """
        try:
            scheme = parameters.get_admin("PASSWORD_SCHEME")
        except parameters.NotDefined:
            from modoboa.core import load_core_settings
            load_core_settings()
            scheme = parameters.get_admin("PASSWORD_SCHEME")

        if isinstance(raw_value, unicode):
            raw_value = raw_value.encode("utf-8")
        return get_password_hasher(scheme.upper())().encrypt(raw_value)
Пример #12
0
    def handle(self, *args, **options):
        """Command entry point."""
        load_core_settings()
        load_admin_settings()
        load_limits_settings()

        if not User.objects.filter(is_superuser=True).count():
            admin = User(username="******", is_superuser=True)
            admin.set_password("password")
            admin.save()
            ObjectAccess.objects.create(user=admin,
                                        content_object=admin,
                                        is_owner=True)

        param_name = "core.SECRET_KEY"
        qset = lib_models.Parameter.objects.filter(name=param_name)
        if not qset.exists():
            lib_models.Parameter.objects.create(name=param_name,
                                                value=random_key())

        for service_name in ['relay', 'smtp']:
            relay_models.Service.objects.get_or_create(name=service_name)

        exts_pool.load_all()

        superadmin = User.objects.filter(is_superuser=True).first()
        groups = PERMISSIONS.keys() + [
            role[0] for role in events.raiseQueryEvent("GetExtraRoles",
                                                       superadmin, None)
        ]
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            permissions = (
                PERMISSIONS.get(groupname, []) +
                events.raiseQueryEvent("GetExtraRolePermissions", groupname))
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in exts_pool.extensions.keys():
            extension = exts_pool.get_extension(extname)
            extension.load_initial_data()
            events.raiseEvent("InitialDataLoaded", extname)
Пример #13
0
    def handle(self, *args, **options):
        """Command entry point."""
        load_core_settings()
        load_admin_settings()
        load_limits_settings()

        if not User.objects.filter(is_superuser=True).count():
            admin = User(username="******", is_superuser=True)
            admin.set_password("password")
            admin.save()
            ObjectAccess.objects.create(
                user=admin, content_object=admin, is_owner=True)

        param_name = "core.SECRET_KEY"
        qset = lib_models.Parameter.objects.filter(name=param_name)
        if not qset.exists():
            lib_models.Parameter.objects.create(
                name=param_name, value=random_key())

        for service_name in ['relay', 'smtp']:
            relay_models.Service.objects.get_or_create(name=service_name)

        exts_pool.load_all()

        superadmin = User.objects.filter(is_superuser=True).first()
        groups = PERMISSIONS.keys() + [
            role[0] for role
            in events.raiseQueryEvent("GetExtraRoles", superadmin, None)
        ]
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            permissions = (
                PERMISSIONS.get(groupname, []) +
                events.raiseQueryEvent("GetExtraRolePermissions", groupname)
            )
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in exts_pool.extensions.keys():
            extension = exts_pool.get_extension(extname)
            extension.load_initial_data()
            events.raiseEvent("InitialDataLoaded", extname)
Пример #14
0
 def setUp(self):
     """Test initialization."""
     super(PasswordSchemesTestCase, self).setUp()
     load_core_settings()
Пример #15
0
    def handle(self, *args, **kwargs):
        exts_pool.load_all()
        load_core_settings()

        for filename in args:
            import_csv(filename, kwargs)
Пример #16
0
from django.conf.urls import patterns, include
from django.conf import settings
from modoboa.core.extensions import exts_pool
from modoboa.lib import parameters, events
from modoboa.core import load_core_settings

load_core_settings()

urlpatterns = patterns(
    '',
    (r'^$', 'modoboa.lib.webutils.topredirection'),
    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog',
     {'packages': ('modoboa', ), }),
    ('', include('modoboa.core.urls')),
)

urlpatterns += patterns(
    '',
    *events.raiseQueryEvent("ExtraUprefsRoutes")
)

urlpatterns += patterns(
    '',
    *exts_pool.load_all()
)

parameters.apply_to_django_settings()

if 'modoboa.demo' in settings.INSTALLED_APPS:
    urlpatterns += patterns(
        '',
Пример #17
0
    def handle(self, *args, **kwargs):
        exts_pool.load_all()
        load_core_settings()

        for filename in args:
            import_csv(filename, kwargs)
Пример #18
0
from django.conf import settings
from django.conf.urls import patterns, include, url

from modoboa.core import load_core_settings
from modoboa.core.extensions import exts_pool
from modoboa.lib import parameters, events

load_core_settings()

urlpatterns = patterns(
    '',
    url(r'^$', 'modoboa.lib.web_utils.topredirection', name="topredirection"),
    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', {
        'packages': ('modoboa', ),
    }),
    ('', include('modoboa.core.urls', namespace="core")),
)

urlpatterns += patterns('', *events.raiseQueryEvent("ExtraUprefsRoutes"))

urlpatterns += patterns('', *exts_pool.load_all())

parameters.apply_to_django_settings()

if 'modoboa.demo' in settings.INSTALLED_APPS:
    urlpatterns += patterns(
        '', (r'^demo/', include('modoboa.demo.urls', namespace="demo")))

if settings.DEBUG:
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    from django.conf.urls.static import static
Пример #19
0
 def setUp(self):
     super(PasswordSchemesTestCase, self).setUp()
     factories.populate_database()
     load_core_settings()
Пример #20
0
 def setUp(self):
     super(PasswordSchemesTestCase, self).setUp()
     factories.populate_database()
     load_core_settings()