def handle(self, *args, **options): """Command entry point.""" exts_pool.load_all() for filename in options["files"]: try: with transaction.atomic(): self._import(filename, options) except CommandError as exc: raise exc except UnicodeDecodeError: self.stdout.write( self.style.NOTICE( _("CSV file is not encoded in UTF-8, attempting to guess " "encoding"))) detector = UniversalDetector() with io.open(filename, "rb") as fp: for line in fp: detector.feed(line) if detector.done: break detector.close() self.stdout.write( self.style.NOTICE( _("Reading CSV file using %(encoding)s encoding") % detector.result)) try: with transaction.atomic(): self._import(filename, options, encoding=detector.result["encoding"]) except UnicodeDecodeError as exc: raise CommandError( _("Unable to decode CSV file using %(encoding)s " "encoding") % detector.result) from exc
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): 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()
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)
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 Domain.objects.all(): dom.to_csv(csvwriter)
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)
def handle(self, *args, **options): """Command entry point.""" if not models.User.objects.filter(is_superuser=True).count(): admin = models.User( username=options["admin_username"], is_superuser=True) admin.set_password("password") admin.save() models.ObjectAccess.objects.create( user=admin, content_object=admin, is_owner=True) lc = models.LocalConfig.objects.first() secret_key = lc.parameters.get_value("secret_key") if not secret_key: lc.parameters.set_value("secret_key", random_key()) lc.save() for service_name in ["relay", "smtp"]: relay_models.Service.objects.get_or_create(name=service_name) exts_pool.load_all() superadmin = models.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) if options["extra_fixtures"]: from modoboa.admin import factories factories.populate_database()
def handle(self, *args, **options): """Command entry point.""" if not models.User.objects.filter(is_superuser=True).count(): admin = models.User(username=options["admin_username"], is_superuser=True) admin.set_password("password") admin.save() models.ObjectAccess.objects.create(user=admin, content_object=admin, is_owner=True) lc = models.LocalConfig.objects.first() secret_key = lc.parameters.get_value("secret_key") if not secret_key: lc.parameters.set_value("secret_key", random_key()) lc.save() for service_name in ["relay", "smtp"]: relay_models.Service.objects.get_or_create(name=service_name) exts_pool.load_all() superadmin = models.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) if options["extra_fixtures"]: from modoboa.admin import factories factories.populate_database()
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)
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)
def handle(self, *args, **options): """Command entry point.""" exts_pool.load_all() for filename in options["files"]: try: with transaction.atomic(): self._import(filename, options) except CommandError as exc: raise exc except UnicodeDecodeError: self.stdout.write(self.style.NOTICE( _("CSV file is not encoded in UTF-8, attempting to guess " "encoding") )) detector = UniversalDetector() with io.open(filename, "rb") as fp: for line in fp: detector.feed(line) if detector.done: break detector.close() self.stdout.write(self.style.NOTICE( _("Reading CSV file using %(encoding)s encoding") % detector.result )) try: with transaction.atomic(): self._import( filename, options, encoding=detector.result["encoding"] ) except UnicodeDecodeError as exc: six.raise_from( CommandError( _("Unable to decode CSV file using %(encoding)s " "encoding") % detector.result ), exc )
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")), url('^user/forward/', 'modoboa.admin.views.user.forward', name='user_forward'), ('admin/', include('modoboa.admin.urls', namespace="admin")), ('relaydomains/', include('modoboa.relaydomains.urls', namespace="relaydomains")), ) urlpatterns += patterns( '', *exts_pool.load_all() ) urlpatterns += patterns( '', *events.raiseQueryEvent("ExtraUprefsRoutes") ) parameters.apply_to_django_settings() # API urls urlpatterns += patterns( "", ("^api/v1/", include("modoboa.urls_api", namespace="external_api")), )
def handle(self, *args, **options): """Command entry point.""" exts_pool.load_all() for filename in options["files"]: self._import(filename, options)
def handle(self, *args, **kwargs): exts_pool.load_all() load_core_settings() for filename in args: import_csv(filename, kwargs)
def handle(self, *args, **options): exts_pool.load_all() self.csvwriter = csv.writer(sys.stdout, delimiter=options['sepchar']) getattr(self, "export_{}".format(options["objtype"]))()
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")), url('^user/forward/', 'modoboa.admin.views.user.forward', name='user_forward'), ('admin/', include('modoboa.admin.urls', namespace="admin")), ('relaydomains/', include('modoboa.relaydomains.urls', namespace="relaydomains")), ) urlpatterns += patterns('', *exts_pool.load_all()) urlpatterns += patterns('', *events.raiseQueryEvent("ExtraUprefsRoutes")) parameters.apply_to_django_settings() # API urls urlpatterns += patterns( "", ("^api/v1/", include("modoboa.urls_api", namespace="external_api")), url("^docs/api/", include('rest_framework_swagger.urls')), ) if 'modoboa.demo' in settings.INSTALLED_APPS: urlpatterns += patterns( '', (r'^demo/', include('modoboa.demo.urls', namespace="demo")))
auth_views.PasswordResetDoneView.as_view(), name="password_reset_done"), path('reset/confirm_code/', core_views.VerifySMSCodeView.as_view(), name="password_reset_confirm_code"), path('reset/resend_code/', core_views.ResendSMSCodeView.as_view(), name="password_reset_resend_code"), path('reset/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(), name="password_reset_confirm"), path('reset/done/', auth_views.PasswordResetCompleteView.as_view(), name="password_reset_complete"), ] exts_pool.load_all() urlpatterns += exts_pool.get_urls() extra_routes = core_signals.extra_uprefs_routes.send(sender="urls") if extra_routes: extra_routes = reduce( lambda a, b: a + b, [route[1] for route in extra_routes]) urlpatterns += extra_routes # API urls schema_view = get_schema_view( title="Modoboa API", version="1.0.0", public=False, renderer_classes=[JSONOpenAPIRenderer], )
urlpatterns = [ url(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'), url(r'^ckeditor/upload/', login_required(cku_views.upload), name="ckeditor_upload"), url(r'^ckeditor/browse/', login_required(cku_views.browse), name="ckeditor_browse"), url('', include('modoboa.core.urls', namespace="core")), url('^user/forward/', forward, name="user_forward"), url('admin/', include('modoboa.admin.urls', namespace="admin")), url('relaydomains/', include('modoboa.relaydomains.urls', namespace="relaydomains")), ] urlpatterns += exts_pool.load_all() extra_routes = core_signals.extra_uprefs_routes.send(sender="urls") if extra_routes: extra_routes = reduce(lambda a, b: a + b, [route[1] for route in extra_routes]) urlpatterns += extra_routes # API urls urlpatterns += [ url("^api/v1/", include("modoboa.urls_api", namespace="external_api")), url("^docs/api/", include('rest_framework_swagger.urls')), ] if settings.DEBUG: from django.contrib.staticfiles.urls import staticfiles_urlpatterns