From 9358a76d890b97d633fc8dc581498fffd6032a20 Mon Sep 17 00:00:00 2001 From: kaiyou Date: Sun, 17 Sep 2017 14:36:44 +0200 Subject: [PATCH 1/7] Start moving things out of the admin module --- admin/mailu/__init__.py | 33 ++++++++++++------ admin/mailu/{admin => }/access.py | 0 admin/mailu/admin/__init__.py | 33 ------------------ admin/mailu/{admin => }/dkim.py | 0 admin/mailu/{admin => }/forms.py | 0 admin/mailu/{admin => }/models.py | 0 .../static/adminlte/css/AdminLTE.min.css | 0 .../static/adminlte/css/skin-blue.min.css | 0 .../{admin => }/static/adminlte/js/app.min.js | 0 admin/mailu/{admin => }/static/app.css | 0 .../static/bootstrap/css/bootstrap.css.map | 0 .../static/bootstrap/css/bootstrap.min.css | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../fonts/glyphicons-halflings-regular.woff2 | Bin .../static/bootstrap/js/bootstrap.min.js | 0 .../static/jquery/js/jquery-2.2.2.min.js | 0 .../static/select2/css/select2.min.css | 0 .../{admin => }/static/select2/js/i18n/ar.js | 0 .../{admin => }/static/select2/js/i18n/az.js | 0 .../{admin => }/static/select2/js/i18n/bg.js | 0 .../{admin => }/static/select2/js/i18n/ca.js | 0 .../{admin => }/static/select2/js/i18n/cs.js | 0 .../{admin => }/static/select2/js/i18n/da.js | 0 .../{admin => }/static/select2/js/i18n/de.js | 0 .../{admin => }/static/select2/js/i18n/el.js | 0 .../{admin => }/static/select2/js/i18n/en.js | 0 .../{admin => }/static/select2/js/i18n/es.js | 0 .../{admin => }/static/select2/js/i18n/et.js | 0 .../{admin => }/static/select2/js/i18n/eu.js | 0 .../{admin => }/static/select2/js/i18n/fa.js | 0 .../{admin => }/static/select2/js/i18n/fi.js | 0 .../{admin => }/static/select2/js/i18n/fr.js | 0 .../{admin => }/static/select2/js/i18n/gl.js | 0 .../{admin => }/static/select2/js/i18n/he.js | 0 .../{admin => }/static/select2/js/i18n/hi.js | 0 .../{admin => }/static/select2/js/i18n/hr.js | 0 .../{admin => }/static/select2/js/i18n/hu.js | 0 .../{admin => }/static/select2/js/i18n/id.js | 0 .../{admin => }/static/select2/js/i18n/is.js | 0 .../{admin => }/static/select2/js/i18n/it.js | 0 .../{admin => }/static/select2/js/i18n/ja.js | 0 .../{admin => }/static/select2/js/i18n/km.js | 0 .../{admin => }/static/select2/js/i18n/ko.js | 0 .../{admin => }/static/select2/js/i18n/lt.js | 0 .../{admin => }/static/select2/js/i18n/lv.js | 0 .../{admin => }/static/select2/js/i18n/mk.js | 0 .../{admin => }/static/select2/js/i18n/ms.js | 0 .../{admin => }/static/select2/js/i18n/nb.js | 0 .../{admin => }/static/select2/js/i18n/nl.js | 0 .../{admin => }/static/select2/js/i18n/pl.js | 0 .../static/select2/js/i18n/pt-BR.js | 0 .../{admin => }/static/select2/js/i18n/pt.js | 0 .../{admin => }/static/select2/js/i18n/ro.js | 0 .../{admin => }/static/select2/js/i18n/ru.js | 0 .../{admin => }/static/select2/js/i18n/sk.js | 0 .../static/select2/js/i18n/sr-Cyrl.js | 0 .../{admin => }/static/select2/js/i18n/sr.js | 0 .../{admin => }/static/select2/js/i18n/sv.js | 0 .../{admin => }/static/select2/js/i18n/th.js | 0 .../{admin => }/static/select2/js/i18n/tr.js | 0 .../{admin => }/static/select2/js/i18n/uk.js | 0 .../{admin => }/static/select2/js/i18n/vi.js | 0 .../static/select2/js/i18n/zh-CN.js | 0 .../static/select2/js/i18n/zh-TW.js | 0 .../static/select2/js/select2.full.min.js | 0 .../static/select2/js/select2.min.js | 0 .../{admin => }/templates/admin/create.html | 0 .../{admin => }/templates/admin/list.html | 0 .../{admin => }/templates/alias/create.html | 0 .../{admin => }/templates/alias/edit.html | 0 .../{admin => }/templates/alias/list.html | 0 .../templates/alternative/create.html | 0 .../templates/alternative/list.html | 0 .../{admin => }/templates/announcement.html | 0 admin/mailu/{admin => }/templates/base.html | 0 .../mailu/{admin => }/templates/confirm.html | 0 .../{admin => }/templates/docker-error.html | 0 .../{admin => }/templates/domain/create.html | 0 .../{admin => }/templates/domain/details.html | 0 .../{admin => }/templates/domain/edit.html | 0 .../{admin => }/templates/domain/list.html | 0 .../{admin => }/templates/fetch/create.html | 0 .../{admin => }/templates/fetch/edit.html | 0 .../{admin => }/templates/fetch/list.html | 0 admin/mailu/{admin => }/templates/form.html | 0 .../mailu/{admin => }/templates/helpers.html | 0 admin/mailu/{admin => }/templates/index.html | 0 admin/mailu/{admin => }/templates/login.html | 0 admin/mailu/{admin => }/templates/macros.html | 0 .../{admin => }/templates/manager/create.html | 0 .../{admin => }/templates/manager/list.html | 0 .../{admin => }/templates/relay/create.html | 0 .../{admin => }/templates/relay/edit.html | 0 .../{admin => }/templates/relay/list.html | 0 .../mailu/{admin => }/templates/services.html | 0 .../mailu/{admin => }/templates/sidebar.html | 0 .../{admin => }/templates/user/create.html | 0 .../{admin => }/templates/user/edit.html | 0 .../{admin => }/templates/user/forward.html | 0 .../{admin => }/templates/user/list.html | 0 .../{admin => }/templates/user/password.html | 0 .../{admin => }/templates/user/reply.html | 0 .../{admin => }/templates/user/settings.html | 0 .../mailu/{admin => }/templates/working.html | 0 admin/mailu/{admin => }/views/__init__.py | 0 admin/mailu/{admin => }/views/admins.py | 0 admin/mailu/{admin => }/views/aliases.py | 0 admin/mailu/{admin => }/views/alternatives.py | 0 admin/mailu/{admin => }/views/base.py | 0 admin/mailu/{admin => }/views/domains.py | 0 admin/mailu/{admin => }/views/fetches.py | 0 admin/mailu/{admin => }/views/managers.py | 0 admin/mailu/{admin => }/views/relays.py | 0 admin/mailu/{admin => }/views/users.py | 0 117 files changed, 22 insertions(+), 44 deletions(-) rename admin/mailu/{admin => }/access.py (100%) delete mode 100644 admin/mailu/admin/__init__.py rename admin/mailu/{admin => }/dkim.py (100%) rename admin/mailu/{admin => }/forms.py (100%) rename admin/mailu/{admin => }/models.py (100%) rename admin/mailu/{admin => }/static/adminlte/css/AdminLTE.min.css (100%) rename admin/mailu/{admin => }/static/adminlte/css/skin-blue.min.css (100%) rename admin/mailu/{admin => }/static/adminlte/js/app.min.js (100%) rename admin/mailu/{admin => }/static/app.css (100%) rename admin/mailu/{admin => }/static/bootstrap/css/bootstrap.css.map (100%) rename admin/mailu/{admin => }/static/bootstrap/css/bootstrap.min.css (100%) rename admin/mailu/{admin => }/static/bootstrap/fonts/glyphicons-halflings-regular.eot (100%) rename admin/mailu/{admin => }/static/bootstrap/fonts/glyphicons-halflings-regular.svg (100%) rename admin/mailu/{admin => }/static/bootstrap/fonts/glyphicons-halflings-regular.ttf (100%) rename admin/mailu/{admin => }/static/bootstrap/fonts/glyphicons-halflings-regular.woff (100%) rename admin/mailu/{admin => }/static/bootstrap/fonts/glyphicons-halflings-regular.woff2 (100%) rename admin/mailu/{admin => }/static/bootstrap/js/bootstrap.min.js (100%) rename admin/mailu/{admin => }/static/jquery/js/jquery-2.2.2.min.js (100%) rename admin/mailu/{admin => }/static/select2/css/select2.min.css (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ar.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/az.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/bg.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ca.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/cs.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/da.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/de.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/el.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/en.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/es.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/et.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/eu.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/fa.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/fi.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/fr.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/gl.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/he.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/hi.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/hr.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/hu.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/id.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/is.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/it.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ja.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/km.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ko.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/lt.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/lv.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/mk.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ms.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/nb.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/nl.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/pl.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/pt-BR.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/pt.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ro.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/ru.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/sk.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/sr-Cyrl.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/sr.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/sv.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/th.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/tr.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/uk.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/vi.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/zh-CN.js (100%) rename admin/mailu/{admin => }/static/select2/js/i18n/zh-TW.js (100%) rename admin/mailu/{admin => }/static/select2/js/select2.full.min.js (100%) rename admin/mailu/{admin => }/static/select2/js/select2.min.js (100%) rename admin/mailu/{admin => }/templates/admin/create.html (100%) rename admin/mailu/{admin => }/templates/admin/list.html (100%) rename admin/mailu/{admin => }/templates/alias/create.html (100%) rename admin/mailu/{admin => }/templates/alias/edit.html (100%) rename admin/mailu/{admin => }/templates/alias/list.html (100%) rename admin/mailu/{admin => }/templates/alternative/create.html (100%) rename admin/mailu/{admin => }/templates/alternative/list.html (100%) rename admin/mailu/{admin => }/templates/announcement.html (100%) rename admin/mailu/{admin => }/templates/base.html (100%) rename admin/mailu/{admin => }/templates/confirm.html (100%) rename admin/mailu/{admin => }/templates/docker-error.html (100%) rename admin/mailu/{admin => }/templates/domain/create.html (100%) rename admin/mailu/{admin => }/templates/domain/details.html (100%) rename admin/mailu/{admin => }/templates/domain/edit.html (100%) rename admin/mailu/{admin => }/templates/domain/list.html (100%) rename admin/mailu/{admin => }/templates/fetch/create.html (100%) rename admin/mailu/{admin => }/templates/fetch/edit.html (100%) rename admin/mailu/{admin => }/templates/fetch/list.html (100%) rename admin/mailu/{admin => }/templates/form.html (100%) rename admin/mailu/{admin => }/templates/helpers.html (100%) rename admin/mailu/{admin => }/templates/index.html (100%) rename admin/mailu/{admin => }/templates/login.html (100%) rename admin/mailu/{admin => }/templates/macros.html (100%) rename admin/mailu/{admin => }/templates/manager/create.html (100%) rename admin/mailu/{admin => }/templates/manager/list.html (100%) rename admin/mailu/{admin => }/templates/relay/create.html (100%) rename admin/mailu/{admin => }/templates/relay/edit.html (100%) rename admin/mailu/{admin => }/templates/relay/list.html (100%) rename admin/mailu/{admin => }/templates/services.html (100%) rename admin/mailu/{admin => }/templates/sidebar.html (100%) rename admin/mailu/{admin => }/templates/user/create.html (100%) rename admin/mailu/{admin => }/templates/user/edit.html (100%) rename admin/mailu/{admin => }/templates/user/forward.html (100%) rename admin/mailu/{admin => }/templates/user/list.html (100%) rename admin/mailu/{admin => }/templates/user/password.html (100%) rename admin/mailu/{admin => }/templates/user/reply.html (100%) rename admin/mailu/{admin => }/templates/user/settings.html (100%) rename admin/mailu/{admin => }/templates/working.html (100%) rename admin/mailu/{admin => }/views/__init__.py (100%) rename admin/mailu/{admin => }/views/admins.py (100%) rename admin/mailu/{admin => }/views/aliases.py (100%) rename admin/mailu/{admin => }/views/alternatives.py (100%) rename admin/mailu/{admin => }/views/base.py (100%) rename admin/mailu/{admin => }/views/domains.py (100%) rename admin/mailu/{admin => }/views/fetches.py (100%) rename admin/mailu/{admin => }/views/managers.py (100%) rename admin/mailu/{admin => }/views/relays.py (100%) rename admin/mailu/{admin => }/views/users.py (100%) diff --git a/admin/mailu/__init__.py b/admin/mailu/__init__.py index d6f6a457..de282ac6 100644 --- a/admin/mailu/__init__.py +++ b/admin/mailu/__init__.py @@ -11,6 +11,8 @@ import docker from apscheduler.schedulers import background +from mailu import models + # Create application app = flask.Flask(__name__, static_url_path='/admin/app_static') @@ -41,36 +43,45 @@ default_config = { for key, value in default_config.items(): app.config[key] = os.environ.get(key, value) -# Setup components +# Base application flask_bootstrap.Bootstrap(app) db = flask_sqlalchemy.SQLAlchemy(app) migrate = flask_migrate.Migrate(app, db) -login_manager = flask_login.LoginManager() -login_manager.init_app(app) -babel = flask_babel.Babel(app) -translations = list(map(str, babel.list_translations())) -scheduler = background.BackgroundScheduler({ - 'apscheduler.timezone': 'UTC' -}) # Manager commnad manager = flask_script.Manager(app) manager.add_command('db', flask_migrate.MigrateCommand) # Task scheduling +scheduler = background.BackgroundScheduler({ + 'apscheduler.timezone': 'UTC' +}) if not app.debug or os.environ.get('WERKZEUG_RUN_MAIN') == 'true': scheduler.start() from mailu import tlstasks # Babel configuration +babel = flask_babel.Babel(app) +translations = list(map(str, babel.list_translations())) + @babel.localeselector def get_locale(): return flask.request.accept_languages.best_match(translations) -# Finally setup the blueprint and redirect / -from mailu import admin -app.register_blueprint(admin.app, url_prefix='/admin') +# Login configuration +login_manager = flask_login.LoginManager() +login_manager.init_app(app) +login_manager.login_view = "admin.login" +login_manager.user_loader(models.User.query.get) + +@app.context_processor +def inject_user(): + return dict(current_user=flask_login.current_user) @app.route("/") def index(): return flask.redirect("/webmail/") + + +# Import views +from mailu.views import * diff --git a/admin/mailu/admin/access.py b/admin/mailu/access.py similarity index 100% rename from admin/mailu/admin/access.py rename to admin/mailu/access.py diff --git a/admin/mailu/admin/__init__.py b/admin/mailu/admin/__init__.py deleted file mode 100644 index fc895134..00000000 --- a/admin/mailu/admin/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -from flask import Blueprint -from mailu import login_manager, db - -import flask_login - - -app = Blueprint( - 'admin', __name__, - template_folder='templates', - static_folder='static') - -# Import models -from mailu.admin import models - -# Register the login components -login_manager.login_view = "admin.login" -login_manager.user_loader(models.User.query.get) - -@app.context_processor -def inject_user(): - return dict(current_user=flask_login.current_user) - -# Import views -from mailu.admin.views import \ - admins, \ - managers, \ - base, \ - aliases, \ - users, \ - domains, \ - relays, \ - alternatives, \ - fetches diff --git a/admin/mailu/admin/dkim.py b/admin/mailu/dkim.py similarity index 100% rename from admin/mailu/admin/dkim.py rename to admin/mailu/dkim.py diff --git a/admin/mailu/admin/forms.py b/admin/mailu/forms.py similarity index 100% rename from admin/mailu/admin/forms.py rename to admin/mailu/forms.py diff --git a/admin/mailu/admin/models.py b/admin/mailu/models.py similarity index 100% rename from admin/mailu/admin/models.py rename to admin/mailu/models.py diff --git a/admin/mailu/admin/static/adminlte/css/AdminLTE.min.css b/admin/mailu/static/adminlte/css/AdminLTE.min.css similarity index 100% rename from admin/mailu/admin/static/adminlte/css/AdminLTE.min.css rename to admin/mailu/static/adminlte/css/AdminLTE.min.css diff --git a/admin/mailu/admin/static/adminlte/css/skin-blue.min.css b/admin/mailu/static/adminlte/css/skin-blue.min.css similarity index 100% rename from admin/mailu/admin/static/adminlte/css/skin-blue.min.css rename to admin/mailu/static/adminlte/css/skin-blue.min.css diff --git a/admin/mailu/admin/static/adminlte/js/app.min.js b/admin/mailu/static/adminlte/js/app.min.js similarity index 100% rename from admin/mailu/admin/static/adminlte/js/app.min.js rename to admin/mailu/static/adminlte/js/app.min.js diff --git a/admin/mailu/admin/static/app.css b/admin/mailu/static/app.css similarity index 100% rename from admin/mailu/admin/static/app.css rename to admin/mailu/static/app.css diff --git a/admin/mailu/admin/static/bootstrap/css/bootstrap.css.map b/admin/mailu/static/bootstrap/css/bootstrap.css.map similarity index 100% rename from admin/mailu/admin/static/bootstrap/css/bootstrap.css.map rename to admin/mailu/static/bootstrap/css/bootstrap.css.map diff --git a/admin/mailu/admin/static/bootstrap/css/bootstrap.min.css b/admin/mailu/static/bootstrap/css/bootstrap.min.css similarity index 100% rename from admin/mailu/admin/static/bootstrap/css/bootstrap.min.css rename to admin/mailu/static/bootstrap/css/bootstrap.min.css diff --git a/admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.eot b/admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.eot rename to admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.eot diff --git a/admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.svg b/admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.svg rename to admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.svg diff --git a/admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.ttf b/admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.ttf rename to admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.ttf diff --git a/admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.woff b/admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.woff rename to admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.woff diff --git a/admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from admin/mailu/admin/static/bootstrap/fonts/glyphicons-halflings-regular.woff2 rename to admin/mailu/static/bootstrap/fonts/glyphicons-halflings-regular.woff2 diff --git a/admin/mailu/admin/static/bootstrap/js/bootstrap.min.js b/admin/mailu/static/bootstrap/js/bootstrap.min.js similarity index 100% rename from admin/mailu/admin/static/bootstrap/js/bootstrap.min.js rename to admin/mailu/static/bootstrap/js/bootstrap.min.js diff --git a/admin/mailu/admin/static/jquery/js/jquery-2.2.2.min.js b/admin/mailu/static/jquery/js/jquery-2.2.2.min.js similarity index 100% rename from admin/mailu/admin/static/jquery/js/jquery-2.2.2.min.js rename to admin/mailu/static/jquery/js/jquery-2.2.2.min.js diff --git a/admin/mailu/admin/static/select2/css/select2.min.css b/admin/mailu/static/select2/css/select2.min.css similarity index 100% rename from admin/mailu/admin/static/select2/css/select2.min.css rename to admin/mailu/static/select2/css/select2.min.css diff --git a/admin/mailu/admin/static/select2/js/i18n/ar.js b/admin/mailu/static/select2/js/i18n/ar.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ar.js rename to admin/mailu/static/select2/js/i18n/ar.js diff --git a/admin/mailu/admin/static/select2/js/i18n/az.js b/admin/mailu/static/select2/js/i18n/az.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/az.js rename to admin/mailu/static/select2/js/i18n/az.js diff --git a/admin/mailu/admin/static/select2/js/i18n/bg.js b/admin/mailu/static/select2/js/i18n/bg.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/bg.js rename to admin/mailu/static/select2/js/i18n/bg.js diff --git a/admin/mailu/admin/static/select2/js/i18n/ca.js b/admin/mailu/static/select2/js/i18n/ca.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ca.js rename to admin/mailu/static/select2/js/i18n/ca.js diff --git a/admin/mailu/admin/static/select2/js/i18n/cs.js b/admin/mailu/static/select2/js/i18n/cs.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/cs.js rename to admin/mailu/static/select2/js/i18n/cs.js diff --git a/admin/mailu/admin/static/select2/js/i18n/da.js b/admin/mailu/static/select2/js/i18n/da.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/da.js rename to admin/mailu/static/select2/js/i18n/da.js diff --git a/admin/mailu/admin/static/select2/js/i18n/de.js b/admin/mailu/static/select2/js/i18n/de.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/de.js rename to admin/mailu/static/select2/js/i18n/de.js diff --git a/admin/mailu/admin/static/select2/js/i18n/el.js b/admin/mailu/static/select2/js/i18n/el.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/el.js rename to admin/mailu/static/select2/js/i18n/el.js diff --git a/admin/mailu/admin/static/select2/js/i18n/en.js b/admin/mailu/static/select2/js/i18n/en.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/en.js rename to admin/mailu/static/select2/js/i18n/en.js diff --git a/admin/mailu/admin/static/select2/js/i18n/es.js b/admin/mailu/static/select2/js/i18n/es.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/es.js rename to admin/mailu/static/select2/js/i18n/es.js diff --git a/admin/mailu/admin/static/select2/js/i18n/et.js b/admin/mailu/static/select2/js/i18n/et.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/et.js rename to admin/mailu/static/select2/js/i18n/et.js diff --git a/admin/mailu/admin/static/select2/js/i18n/eu.js b/admin/mailu/static/select2/js/i18n/eu.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/eu.js rename to admin/mailu/static/select2/js/i18n/eu.js diff --git a/admin/mailu/admin/static/select2/js/i18n/fa.js b/admin/mailu/static/select2/js/i18n/fa.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/fa.js rename to admin/mailu/static/select2/js/i18n/fa.js diff --git a/admin/mailu/admin/static/select2/js/i18n/fi.js b/admin/mailu/static/select2/js/i18n/fi.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/fi.js rename to admin/mailu/static/select2/js/i18n/fi.js diff --git a/admin/mailu/admin/static/select2/js/i18n/fr.js b/admin/mailu/static/select2/js/i18n/fr.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/fr.js rename to admin/mailu/static/select2/js/i18n/fr.js diff --git a/admin/mailu/admin/static/select2/js/i18n/gl.js b/admin/mailu/static/select2/js/i18n/gl.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/gl.js rename to admin/mailu/static/select2/js/i18n/gl.js diff --git a/admin/mailu/admin/static/select2/js/i18n/he.js b/admin/mailu/static/select2/js/i18n/he.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/he.js rename to admin/mailu/static/select2/js/i18n/he.js diff --git a/admin/mailu/admin/static/select2/js/i18n/hi.js b/admin/mailu/static/select2/js/i18n/hi.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/hi.js rename to admin/mailu/static/select2/js/i18n/hi.js diff --git a/admin/mailu/admin/static/select2/js/i18n/hr.js b/admin/mailu/static/select2/js/i18n/hr.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/hr.js rename to admin/mailu/static/select2/js/i18n/hr.js diff --git a/admin/mailu/admin/static/select2/js/i18n/hu.js b/admin/mailu/static/select2/js/i18n/hu.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/hu.js rename to admin/mailu/static/select2/js/i18n/hu.js diff --git a/admin/mailu/admin/static/select2/js/i18n/id.js b/admin/mailu/static/select2/js/i18n/id.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/id.js rename to admin/mailu/static/select2/js/i18n/id.js diff --git a/admin/mailu/admin/static/select2/js/i18n/is.js b/admin/mailu/static/select2/js/i18n/is.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/is.js rename to admin/mailu/static/select2/js/i18n/is.js diff --git a/admin/mailu/admin/static/select2/js/i18n/it.js b/admin/mailu/static/select2/js/i18n/it.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/it.js rename to admin/mailu/static/select2/js/i18n/it.js diff --git a/admin/mailu/admin/static/select2/js/i18n/ja.js b/admin/mailu/static/select2/js/i18n/ja.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ja.js rename to admin/mailu/static/select2/js/i18n/ja.js diff --git a/admin/mailu/admin/static/select2/js/i18n/km.js b/admin/mailu/static/select2/js/i18n/km.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/km.js rename to admin/mailu/static/select2/js/i18n/km.js diff --git a/admin/mailu/admin/static/select2/js/i18n/ko.js b/admin/mailu/static/select2/js/i18n/ko.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ko.js rename to admin/mailu/static/select2/js/i18n/ko.js diff --git a/admin/mailu/admin/static/select2/js/i18n/lt.js b/admin/mailu/static/select2/js/i18n/lt.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/lt.js rename to admin/mailu/static/select2/js/i18n/lt.js diff --git a/admin/mailu/admin/static/select2/js/i18n/lv.js b/admin/mailu/static/select2/js/i18n/lv.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/lv.js rename to admin/mailu/static/select2/js/i18n/lv.js diff --git a/admin/mailu/admin/static/select2/js/i18n/mk.js b/admin/mailu/static/select2/js/i18n/mk.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/mk.js rename to admin/mailu/static/select2/js/i18n/mk.js diff --git a/admin/mailu/admin/static/select2/js/i18n/ms.js b/admin/mailu/static/select2/js/i18n/ms.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ms.js rename to admin/mailu/static/select2/js/i18n/ms.js diff --git a/admin/mailu/admin/static/select2/js/i18n/nb.js b/admin/mailu/static/select2/js/i18n/nb.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/nb.js rename to admin/mailu/static/select2/js/i18n/nb.js diff --git a/admin/mailu/admin/static/select2/js/i18n/nl.js b/admin/mailu/static/select2/js/i18n/nl.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/nl.js rename to admin/mailu/static/select2/js/i18n/nl.js diff --git a/admin/mailu/admin/static/select2/js/i18n/pl.js b/admin/mailu/static/select2/js/i18n/pl.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/pl.js rename to admin/mailu/static/select2/js/i18n/pl.js diff --git a/admin/mailu/admin/static/select2/js/i18n/pt-BR.js b/admin/mailu/static/select2/js/i18n/pt-BR.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/pt-BR.js rename to admin/mailu/static/select2/js/i18n/pt-BR.js diff --git a/admin/mailu/admin/static/select2/js/i18n/pt.js b/admin/mailu/static/select2/js/i18n/pt.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/pt.js rename to admin/mailu/static/select2/js/i18n/pt.js diff --git a/admin/mailu/admin/static/select2/js/i18n/ro.js b/admin/mailu/static/select2/js/i18n/ro.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ro.js rename to admin/mailu/static/select2/js/i18n/ro.js diff --git a/admin/mailu/admin/static/select2/js/i18n/ru.js b/admin/mailu/static/select2/js/i18n/ru.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/ru.js rename to admin/mailu/static/select2/js/i18n/ru.js diff --git a/admin/mailu/admin/static/select2/js/i18n/sk.js b/admin/mailu/static/select2/js/i18n/sk.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/sk.js rename to admin/mailu/static/select2/js/i18n/sk.js diff --git a/admin/mailu/admin/static/select2/js/i18n/sr-Cyrl.js b/admin/mailu/static/select2/js/i18n/sr-Cyrl.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/sr-Cyrl.js rename to admin/mailu/static/select2/js/i18n/sr-Cyrl.js diff --git a/admin/mailu/admin/static/select2/js/i18n/sr.js b/admin/mailu/static/select2/js/i18n/sr.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/sr.js rename to admin/mailu/static/select2/js/i18n/sr.js diff --git a/admin/mailu/admin/static/select2/js/i18n/sv.js b/admin/mailu/static/select2/js/i18n/sv.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/sv.js rename to admin/mailu/static/select2/js/i18n/sv.js diff --git a/admin/mailu/admin/static/select2/js/i18n/th.js b/admin/mailu/static/select2/js/i18n/th.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/th.js rename to admin/mailu/static/select2/js/i18n/th.js diff --git a/admin/mailu/admin/static/select2/js/i18n/tr.js b/admin/mailu/static/select2/js/i18n/tr.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/tr.js rename to admin/mailu/static/select2/js/i18n/tr.js diff --git a/admin/mailu/admin/static/select2/js/i18n/uk.js b/admin/mailu/static/select2/js/i18n/uk.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/uk.js rename to admin/mailu/static/select2/js/i18n/uk.js diff --git a/admin/mailu/admin/static/select2/js/i18n/vi.js b/admin/mailu/static/select2/js/i18n/vi.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/vi.js rename to admin/mailu/static/select2/js/i18n/vi.js diff --git a/admin/mailu/admin/static/select2/js/i18n/zh-CN.js b/admin/mailu/static/select2/js/i18n/zh-CN.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/zh-CN.js rename to admin/mailu/static/select2/js/i18n/zh-CN.js diff --git a/admin/mailu/admin/static/select2/js/i18n/zh-TW.js b/admin/mailu/static/select2/js/i18n/zh-TW.js similarity index 100% rename from admin/mailu/admin/static/select2/js/i18n/zh-TW.js rename to admin/mailu/static/select2/js/i18n/zh-TW.js diff --git a/admin/mailu/admin/static/select2/js/select2.full.min.js b/admin/mailu/static/select2/js/select2.full.min.js similarity index 100% rename from admin/mailu/admin/static/select2/js/select2.full.min.js rename to admin/mailu/static/select2/js/select2.full.min.js diff --git a/admin/mailu/admin/static/select2/js/select2.min.js b/admin/mailu/static/select2/js/select2.min.js similarity index 100% rename from admin/mailu/admin/static/select2/js/select2.min.js rename to admin/mailu/static/select2/js/select2.min.js diff --git a/admin/mailu/admin/templates/admin/create.html b/admin/mailu/templates/admin/create.html similarity index 100% rename from admin/mailu/admin/templates/admin/create.html rename to admin/mailu/templates/admin/create.html diff --git a/admin/mailu/admin/templates/admin/list.html b/admin/mailu/templates/admin/list.html similarity index 100% rename from admin/mailu/admin/templates/admin/list.html rename to admin/mailu/templates/admin/list.html diff --git a/admin/mailu/admin/templates/alias/create.html b/admin/mailu/templates/alias/create.html similarity index 100% rename from admin/mailu/admin/templates/alias/create.html rename to admin/mailu/templates/alias/create.html diff --git a/admin/mailu/admin/templates/alias/edit.html b/admin/mailu/templates/alias/edit.html similarity index 100% rename from admin/mailu/admin/templates/alias/edit.html rename to admin/mailu/templates/alias/edit.html diff --git a/admin/mailu/admin/templates/alias/list.html b/admin/mailu/templates/alias/list.html similarity index 100% rename from admin/mailu/admin/templates/alias/list.html rename to admin/mailu/templates/alias/list.html diff --git a/admin/mailu/admin/templates/alternative/create.html b/admin/mailu/templates/alternative/create.html similarity index 100% rename from admin/mailu/admin/templates/alternative/create.html rename to admin/mailu/templates/alternative/create.html diff --git a/admin/mailu/admin/templates/alternative/list.html b/admin/mailu/templates/alternative/list.html similarity index 100% rename from admin/mailu/admin/templates/alternative/list.html rename to admin/mailu/templates/alternative/list.html diff --git a/admin/mailu/admin/templates/announcement.html b/admin/mailu/templates/announcement.html similarity index 100% rename from admin/mailu/admin/templates/announcement.html rename to admin/mailu/templates/announcement.html diff --git a/admin/mailu/admin/templates/base.html b/admin/mailu/templates/base.html similarity index 100% rename from admin/mailu/admin/templates/base.html rename to admin/mailu/templates/base.html diff --git a/admin/mailu/admin/templates/confirm.html b/admin/mailu/templates/confirm.html similarity index 100% rename from admin/mailu/admin/templates/confirm.html rename to admin/mailu/templates/confirm.html diff --git a/admin/mailu/admin/templates/docker-error.html b/admin/mailu/templates/docker-error.html similarity index 100% rename from admin/mailu/admin/templates/docker-error.html rename to admin/mailu/templates/docker-error.html diff --git a/admin/mailu/admin/templates/domain/create.html b/admin/mailu/templates/domain/create.html similarity index 100% rename from admin/mailu/admin/templates/domain/create.html rename to admin/mailu/templates/domain/create.html diff --git a/admin/mailu/admin/templates/domain/details.html b/admin/mailu/templates/domain/details.html similarity index 100% rename from admin/mailu/admin/templates/domain/details.html rename to admin/mailu/templates/domain/details.html diff --git a/admin/mailu/admin/templates/domain/edit.html b/admin/mailu/templates/domain/edit.html similarity index 100% rename from admin/mailu/admin/templates/domain/edit.html rename to admin/mailu/templates/domain/edit.html diff --git a/admin/mailu/admin/templates/domain/list.html b/admin/mailu/templates/domain/list.html similarity index 100% rename from admin/mailu/admin/templates/domain/list.html rename to admin/mailu/templates/domain/list.html diff --git a/admin/mailu/admin/templates/fetch/create.html b/admin/mailu/templates/fetch/create.html similarity index 100% rename from admin/mailu/admin/templates/fetch/create.html rename to admin/mailu/templates/fetch/create.html diff --git a/admin/mailu/admin/templates/fetch/edit.html b/admin/mailu/templates/fetch/edit.html similarity index 100% rename from admin/mailu/admin/templates/fetch/edit.html rename to admin/mailu/templates/fetch/edit.html diff --git a/admin/mailu/admin/templates/fetch/list.html b/admin/mailu/templates/fetch/list.html similarity index 100% rename from admin/mailu/admin/templates/fetch/list.html rename to admin/mailu/templates/fetch/list.html diff --git a/admin/mailu/admin/templates/form.html b/admin/mailu/templates/form.html similarity index 100% rename from admin/mailu/admin/templates/form.html rename to admin/mailu/templates/form.html diff --git a/admin/mailu/admin/templates/helpers.html b/admin/mailu/templates/helpers.html similarity index 100% rename from admin/mailu/admin/templates/helpers.html rename to admin/mailu/templates/helpers.html diff --git a/admin/mailu/admin/templates/index.html b/admin/mailu/templates/index.html similarity index 100% rename from admin/mailu/admin/templates/index.html rename to admin/mailu/templates/index.html diff --git a/admin/mailu/admin/templates/login.html b/admin/mailu/templates/login.html similarity index 100% rename from admin/mailu/admin/templates/login.html rename to admin/mailu/templates/login.html diff --git a/admin/mailu/admin/templates/macros.html b/admin/mailu/templates/macros.html similarity index 100% rename from admin/mailu/admin/templates/macros.html rename to admin/mailu/templates/macros.html diff --git a/admin/mailu/admin/templates/manager/create.html b/admin/mailu/templates/manager/create.html similarity index 100% rename from admin/mailu/admin/templates/manager/create.html rename to admin/mailu/templates/manager/create.html diff --git a/admin/mailu/admin/templates/manager/list.html b/admin/mailu/templates/manager/list.html similarity index 100% rename from admin/mailu/admin/templates/manager/list.html rename to admin/mailu/templates/manager/list.html diff --git a/admin/mailu/admin/templates/relay/create.html b/admin/mailu/templates/relay/create.html similarity index 100% rename from admin/mailu/admin/templates/relay/create.html rename to admin/mailu/templates/relay/create.html diff --git a/admin/mailu/admin/templates/relay/edit.html b/admin/mailu/templates/relay/edit.html similarity index 100% rename from admin/mailu/admin/templates/relay/edit.html rename to admin/mailu/templates/relay/edit.html diff --git a/admin/mailu/admin/templates/relay/list.html b/admin/mailu/templates/relay/list.html similarity index 100% rename from admin/mailu/admin/templates/relay/list.html rename to admin/mailu/templates/relay/list.html diff --git a/admin/mailu/admin/templates/services.html b/admin/mailu/templates/services.html similarity index 100% rename from admin/mailu/admin/templates/services.html rename to admin/mailu/templates/services.html diff --git a/admin/mailu/admin/templates/sidebar.html b/admin/mailu/templates/sidebar.html similarity index 100% rename from admin/mailu/admin/templates/sidebar.html rename to admin/mailu/templates/sidebar.html diff --git a/admin/mailu/admin/templates/user/create.html b/admin/mailu/templates/user/create.html similarity index 100% rename from admin/mailu/admin/templates/user/create.html rename to admin/mailu/templates/user/create.html diff --git a/admin/mailu/admin/templates/user/edit.html b/admin/mailu/templates/user/edit.html similarity index 100% rename from admin/mailu/admin/templates/user/edit.html rename to admin/mailu/templates/user/edit.html diff --git a/admin/mailu/admin/templates/user/forward.html b/admin/mailu/templates/user/forward.html similarity index 100% rename from admin/mailu/admin/templates/user/forward.html rename to admin/mailu/templates/user/forward.html diff --git a/admin/mailu/admin/templates/user/list.html b/admin/mailu/templates/user/list.html similarity index 100% rename from admin/mailu/admin/templates/user/list.html rename to admin/mailu/templates/user/list.html diff --git a/admin/mailu/admin/templates/user/password.html b/admin/mailu/templates/user/password.html similarity index 100% rename from admin/mailu/admin/templates/user/password.html rename to admin/mailu/templates/user/password.html diff --git a/admin/mailu/admin/templates/user/reply.html b/admin/mailu/templates/user/reply.html similarity index 100% rename from admin/mailu/admin/templates/user/reply.html rename to admin/mailu/templates/user/reply.html diff --git a/admin/mailu/admin/templates/user/settings.html b/admin/mailu/templates/user/settings.html similarity index 100% rename from admin/mailu/admin/templates/user/settings.html rename to admin/mailu/templates/user/settings.html diff --git a/admin/mailu/admin/templates/working.html b/admin/mailu/templates/working.html similarity index 100% rename from admin/mailu/admin/templates/working.html rename to admin/mailu/templates/working.html diff --git a/admin/mailu/admin/views/__init__.py b/admin/mailu/views/__init__.py similarity index 100% rename from admin/mailu/admin/views/__init__.py rename to admin/mailu/views/__init__.py diff --git a/admin/mailu/admin/views/admins.py b/admin/mailu/views/admins.py similarity index 100% rename from admin/mailu/admin/views/admins.py rename to admin/mailu/views/admins.py diff --git a/admin/mailu/admin/views/aliases.py b/admin/mailu/views/aliases.py similarity index 100% rename from admin/mailu/admin/views/aliases.py rename to admin/mailu/views/aliases.py diff --git a/admin/mailu/admin/views/alternatives.py b/admin/mailu/views/alternatives.py similarity index 100% rename from admin/mailu/admin/views/alternatives.py rename to admin/mailu/views/alternatives.py diff --git a/admin/mailu/admin/views/base.py b/admin/mailu/views/base.py similarity index 100% rename from admin/mailu/admin/views/base.py rename to admin/mailu/views/base.py diff --git a/admin/mailu/admin/views/domains.py b/admin/mailu/views/domains.py similarity index 100% rename from admin/mailu/admin/views/domains.py rename to admin/mailu/views/domains.py diff --git a/admin/mailu/admin/views/fetches.py b/admin/mailu/views/fetches.py similarity index 100% rename from admin/mailu/admin/views/fetches.py rename to admin/mailu/views/fetches.py diff --git a/admin/mailu/admin/views/managers.py b/admin/mailu/views/managers.py similarity index 100% rename from admin/mailu/admin/views/managers.py rename to admin/mailu/views/managers.py diff --git a/admin/mailu/admin/views/relays.py b/admin/mailu/views/relays.py similarity index 100% rename from admin/mailu/admin/views/relays.py rename to admin/mailu/views/relays.py diff --git a/admin/mailu/admin/views/users.py b/admin/mailu/views/users.py similarity index 100% rename from admin/mailu/admin/views/users.py rename to admin/mailu/views/users.py From fed7665a0a8a885eb165130c862670bb5c633abc Mon Sep 17 00:00:00 2001 From: kaiyou Date: Sun, 17 Sep 2017 14:37:10 +0200 Subject: [PATCH 2/7] Fix all references to mailu.admin --- admin/mailu/__init__.py | 10 +--------- admin/mailu/access.py | 2 +- admin/mailu/models.py | 5 +++-- admin/mailu/views/__init__.py | 1 + admin/mailu/views/admins.py | 2 +- admin/mailu/views/aliases.py | 2 +- admin/mailu/views/alternatives.py | 2 +- admin/mailu/views/base.py | 5 ++--- admin/mailu/views/domains.py | 5 ++--- admin/mailu/views/fetches.py | 2 +- admin/mailu/views/managers.py | 2 +- admin/mailu/views/relays.py | 3 +-- admin/mailu/views/users.py | 2 +- admin/manage.py | 3 +-- 14 files changed, 18 insertions(+), 28 deletions(-) diff --git a/admin/mailu/__init__.py b/admin/mailu/__init__.py index de282ac6..f16f1c17 100644 --- a/admin/mailu/__init__.py +++ b/admin/mailu/__init__.py @@ -11,8 +11,6 @@ import docker from apscheduler.schedulers import background -from mailu import models - # Create application app = flask.Flask(__name__, static_url_path='/admin/app_static') @@ -71,17 +69,11 @@ def get_locale(): # Login configuration login_manager = flask_login.LoginManager() login_manager.init_app(app) -login_manager.login_view = "admin.login" -login_manager.user_loader(models.User.query.get) +login_manager.login_view = ".login" @app.context_processor def inject_user(): return dict(current_user=flask_login.current_user) -@app.route("/") -def index(): - return flask.redirect("/webmail/") - - # Import views from mailu.views import * diff --git a/admin/mailu/access.py b/admin/mailu/access.py index 778423d0..b4179a53 100644 --- a/admin/mailu/access.py +++ b/admin/mailu/access.py @@ -1,4 +1,4 @@ -from mailu.admin import db, models, forms +from mailu import db, models, forms import flask import flask_login diff --git a/admin/mailu/models.py b/admin/mailu/models.py index 9fcfca1d..d1c5ebb4 100644 --- a/admin/mailu/models.py +++ b/admin/mailu/models.py @@ -1,5 +1,4 @@ -from mailu.admin import db, dkim -from mailu import app +from mailu import app, db, dkim, login_manager from sqlalchemy.ext import declarative from passlib import context @@ -236,6 +235,8 @@ class User(Base, Email): user = cls.query.get(email) return user if (user and user.check_password(password)) else None +login_manager.user_loader(User.query.get) + class Alias(Base, Email): """ An alias is an email address that redirects to some destination. diff --git a/admin/mailu/views/__init__.py b/admin/mailu/views/__init__.py index e69de29b..e4f5d7d2 100644 --- a/admin/mailu/views/__init__.py +++ b/admin/mailu/views/__init__.py @@ -0,0 +1 @@ +__all__ = ['admins', 'aliases', 'alternatives', 'base', 'domains', 'fetches', 'managers', 'users', 'relays'] diff --git a/admin/mailu/views/admins.py b/admin/mailu/views/admins.py index 2027bd39..bbefaa1a 100644 --- a/admin/mailu/views/admins.py +++ b/admin/mailu/views/admins.py @@ -1,4 +1,4 @@ -from mailu.admin import app, db, models, forms, access +from mailu import app, db, models, forms, access import flask import flask_login diff --git a/admin/mailu/views/aliases.py b/admin/mailu/views/aliases.py index 734d61f6..c61e5715 100644 --- a/admin/mailu/views/aliases.py +++ b/admin/mailu/views/aliases.py @@ -1,4 +1,4 @@ -from mailu.admin import app, db, models, forms, access +from mailu import app, db, models, forms, access import flask import wtforms_components diff --git a/admin/mailu/views/alternatives.py b/admin/mailu/views/alternatives.py index ce237d45..aa13bd3a 100644 --- a/admin/mailu/views/alternatives.py +++ b/admin/mailu/views/alternatives.py @@ -1,4 +1,4 @@ -from mailu.admin import app, db, models, forms, access +from mailu import app, db, models, forms, access import flask import wtforms_components diff --git a/admin/mailu/views/base.py b/admin/mailu/views/base.py index 4ab91325..c2950178 100644 --- a/admin/mailu/views/base.py +++ b/admin/mailu/views/base.py @@ -1,5 +1,4 @@ -from mailu import dockercli, app as flask_app -from mailu.admin import app, db, models, forms, access +from mailu import dockercli, app, db, models, forms, access import flask import flask_login @@ -53,7 +52,7 @@ def services(): @access.global_admin def announcement(): from_address = '{}@{}'.format( - flask_app.config['POSTMASTER'], flask_app.config['DOMAIN']) + app.config['POSTMASTER'], app.config['DOMAIN']) form = forms.AnnouncementForm() if form.validate_on_submit(): with smtplib.SMTP('smtp') as smtp: diff --git a/admin/mailu/views/domains.py b/admin/mailu/views/domains.py index cebe5c8b..f2542d4d 100644 --- a/admin/mailu/views/domains.py +++ b/admin/mailu/views/domains.py @@ -1,5 +1,4 @@ -from mailu.admin import app, db, models, forms, access -from mailu import app as flask_app +from mailu import app, db, models, forms, access import flask import wtforms_components @@ -63,7 +62,7 @@ def domain_delete(domain_name): def domain_details(domain_name): domain = models.Domain.query.get(domain_name) or flask.abort(404) return flask.render_template('domain/details.html', domain=domain, - config=flask_app.config) + config=app.config) @app.route('/domain/genkeys/', methods=['GET', 'POST']) diff --git a/admin/mailu/views/fetches.py b/admin/mailu/views/fetches.py index 306fa872..e3be2bdd 100644 --- a/admin/mailu/views/fetches.py +++ b/admin/mailu/views/fetches.py @@ -1,4 +1,4 @@ -from mailu.admin import app, db, models, forms, access +from mailu import app, db, models, forms, access import flask import flask_login diff --git a/admin/mailu/views/managers.py b/admin/mailu/views/managers.py index 98b1def8..731ee1c7 100644 --- a/admin/mailu/views/managers.py +++ b/admin/mailu/views/managers.py @@ -1,4 +1,4 @@ -from mailu.admin import app, db, models, forms, access +from mailu import app, db, models, forms, access import flask import flask_login diff --git a/admin/mailu/views/relays.py b/admin/mailu/views/relays.py index 73a9ad9d..599f2514 100644 --- a/admin/mailu/views/relays.py +++ b/admin/mailu/views/relays.py @@ -1,5 +1,4 @@ -from mailu.admin import app, db, models, forms, access -from mailu import app as flask_app +from mailu import app, db, models, forms, access import flask import wtforms_components diff --git a/admin/mailu/views/users.py b/admin/mailu/views/users.py index 0d086e23..1e6c533a 100644 --- a/admin/mailu/views/users.py +++ b/admin/mailu/views/users.py @@ -1,4 +1,4 @@ -from mailu.admin import app, db, models, forms, access +from mailu import app, db, models, forms, access import flask import flask_login diff --git a/admin/manage.py b/admin/manage.py index 252bfe0a..a9d4a020 100644 --- a/admin/manage.py +++ b/admin/manage.py @@ -1,5 +1,4 @@ -from mailu import app, manager, db -from mailu.admin import models +from mailu import app, manager, db, models @manager.command From bb8c4e86c191718835a2db971d39fc0ce9402adc Mon Sep 17 00:00:00 2001 From: kaiyou Date: Sun, 17 Sep 2017 14:38:00 +0200 Subject: [PATCH 3/7] Update translations after moving mailu.admin --- admin/mailu/translations/de/LC_MESSAGES/messages.po | 2 +- admin/mailu/translations/en/LC_MESSAGES/messages.po | 2 +- admin/mailu/translations/fr/LC_MESSAGES/messages.po | 2 +- admin/mailu/translations/pt/LC_MESSAGES/messages.po | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/admin/mailu/translations/de/LC_MESSAGES/messages.po b/admin/mailu/translations/de/LC_MESSAGES/messages.po index 4488f662..4a0b2afa 100644 --- a/admin/mailu/translations/de/LC_MESSAGES/messages.po +++ b/admin/mailu/translations/de/LC_MESSAGES/messages.po @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.5.0\n" +"Generated-By: Babel 2.5.1\n" #: mailu/admin/forms.py:32 msgid "Invalid email address." diff --git a/admin/mailu/translations/en/LC_MESSAGES/messages.po b/admin/mailu/translations/en/LC_MESSAGES/messages.po index 88604cbc..b73486e7 100644 --- a/admin/mailu/translations/en/LC_MESSAGES/messages.po +++ b/admin/mailu/translations/en/LC_MESSAGES/messages.po @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.5.0\n" +"Generated-By: Babel 2.5.1\n" #: mailu/admin/forms.py:32 msgid "Invalid email address." diff --git a/admin/mailu/translations/fr/LC_MESSAGES/messages.po b/admin/mailu/translations/fr/LC_MESSAGES/messages.po index 97d394ca..ef75609c 100644 --- a/admin/mailu/translations/fr/LC_MESSAGES/messages.po +++ b/admin/mailu/translations/fr/LC_MESSAGES/messages.po @@ -12,7 +12,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.5.0\n" +"Generated-By: Babel 2.5.1\n" #: mailu/admin/forms.py:32 msgid "Invalid email address." diff --git a/admin/mailu/translations/pt/LC_MESSAGES/messages.po b/admin/mailu/translations/pt/LC_MESSAGES/messages.po index 8ab3cb7c..53d3b7a9 100644 --- a/admin/mailu/translations/pt/LC_MESSAGES/messages.po +++ b/admin/mailu/translations/pt/LC_MESSAGES/messages.po @@ -16,7 +16,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.5.0\n" +"Generated-By: Babel 2.5.1\n" #: mailu/admin/forms.py:32 msgid "Invalid email address." From f615af4a8889f2365f2f2c4d09d5f1cf152989c6 Mon Sep 17 00:00:00 2001 From: kaiyou Date: Sun, 17 Sep 2017 18:55:54 +0200 Subject: [PATCH 4/7] Fix the behavior during login --- admin/mailu/__init__.py | 22 +++++++++++++++++++++- admin/mailu/views/base.py | 8 +++----- docker-compose.yml.dist | 2 +- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/admin/mailu/__init__.py b/admin/mailu/__init__.py index f16f1c17..aae26a4f 100644 --- a/admin/mailu/__init__.py +++ b/admin/mailu/__init__.py @@ -34,7 +34,7 @@ default_config = { 'FRONTEND': 'none', 'TLS_FLAVOR': 'cert', 'CERTS_PATH': '/certs', - 'PASSWORD_SCHEME': 'SHA512-CRYPT' + 'PASSWORD_SCHEME': 'SHA512-CRYPT', } # Load configuration from the environment if available @@ -71,9 +71,29 @@ login_manager = flask_login.LoginManager() login_manager.init_app(app) login_manager.login_view = ".login" +@login_manager.unauthorized_handler +def handle_needs_login(): + return flask.redirect( + flask.url_for('.login', next=flask.request.endpoint) + ) + @app.context_processor def inject_user(): return dict(current_user=flask_login.current_user) # Import views from mailu.views import * + +# Create the prefix middleware +class PrefixMiddleware(object): + + def __init__(self, app): + self.app = app + + def __call__(self, environ, start_response): + prefix = environ.get('HTTP_X_FORWARDED_PREFIX', '') + if prefix: + environ['SCRIPT_NAME'] = prefix + return self.app(environ, start_response) + +app.wsgi_app = PrefixMiddleware(app.wsgi_app) diff --git a/admin/mailu/views/base.py b/admin/mailu/views/base.py index c2950178..2375977a 100644 --- a/admin/mailu/views/base.py +++ b/admin/mailu/views/base.py @@ -21,11 +21,9 @@ def login(): user = models.User.login(form.email.data, form.pw.data) if user: flask_login.login_user(user) - redirect = flask.request.args.get('next') - parsed_redirect = parse.urlparse(redirect) - if parsed_redirect.scheme or parsed_redirect.netloc: - return flask.abort(400) - return flask.redirect(redirect or flask.url_for('.index')) + endpoint = flask.request.args.get('next') + return flask.redirect(flask.url_for(endpoint) + or flask.url_for('.index')) else: flask.flash('Wrong e-mail or password', 'error') return flask.render_template('login.html', form=form) diff --git a/docker-compose.yml.dist b/docker-compose.yml.dist index 85626cc6..9068e70f 100644 --- a/docker-compose.yml.dist +++ b/docker-compose.yml.dist @@ -90,7 +90,7 @@ services: image: mailu/admin:$VERSION labels: - traefik.enable=true - - traefik.admin.frontend.rule=Host:$HOSTNAME;PathPrefix:/admin/ + - traefik.admin.frontend.rule=Host:$HOSTNAME;PathPrefixStrip:/admin/ - traefik.admin.port=80 - traefik.home.frontend.rule=Host:$HOSTNAME;Path:/ - traefik.home.port=80 From 6cd8e0e3360a907dec09f5e707f02c28d8957a85 Mon Sep 17 00:00:00 2001 From: kaiyou Date: Sun, 17 Sep 2017 19:01:02 +0200 Subject: [PATCH 5/7] Fix the redirect to /webmail --- admin/mailu/views/base.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/admin/mailu/views/base.py b/admin/mailu/views/base.py index 2375977a..850c06ff 100644 --- a/admin/mailu/views/base.py +++ b/admin/mailu/views/base.py @@ -8,6 +8,11 @@ from email.mime import text from urllib import parse +@app.route('/home', methods=["GET"]) +def home(): + return flask.redirect('/webmail/') + + @app.route('/', methods=["GET"]) @access.authenticated def index(): From 8fc080898b62567d6b99f8eaa06ae125d82eccaa Mon Sep 17 00:00:00 2001 From: kaiyou Date: Sun, 17 Sep 2017 19:19:28 +0200 Subject: [PATCH 6/7] Prepare the webmail to be accessed at / directly --- rainloop/Dockerfile | 6 +++--- roundcube/Dockerfile | 9 ++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/rainloop/Dockerfile b/rainloop/Dockerfile index 7ee9b97f..8a340cc7 100644 --- a/rainloop/Dockerfile +++ b/rainloop/Dockerfile @@ -6,8 +6,8 @@ RUN apt-get update && apt-get install -y \ ENV RAINLOOP_URL https://github.com/RainLoop/rainloop-webmail/releases/download/v1.10.3.151/rainloop-community-1.10.3.151-aa8d0c41baec166a35bb9855ee3d07b9.zip RUN rm -rf /var/www/html/ \ - && mkdir -p /var/www/html/webmail \ - && cd /var/www/html/webmail \ + && mkdir /var/www/html \ + && cd /var/www/html \ && curl -L -O ${RAINLOOP_URL} \ && unzip *.zip \ && rm -f *.zip \ @@ -16,7 +16,7 @@ RUN rm -rf /var/www/html/ \ && find . -type f -exec chmod 644 {} \; \ && chown -R www-data: * -COPY include.php /var/www/html/webmail/include.php +COPY include.php /var/www/html/include.php COPY php.ini /usr/local/etc/php/conf.d/rainloop.ini COPY config.ini /config.ini diff --git a/roundcube/Dockerfile b/roundcube/Dockerfile index 995a0c1c..eb8a1667 100644 --- a/roundcube/Dockerfile +++ b/roundcube/Dockerfile @@ -12,17 +12,16 @@ ENV ROUNDCUBE_URL https://github.com/roundcube/roundcubemail/releases/download/1 RUN echo date.timezone=UTC > /usr/local/etc/php/conf.d/timezone.ini RUN rm -rf /var/www/html/ \ - && mkdir /var/www/html \ - && cd /var/www/html \ + && cd /var/www \ && curl -L -O ${ROUNDCUBE_URL} \ && tar -xf *.tar.gz \ && rm -f *.tar.gz \ - && mv roundcubemail-* webmail \ - && cd webmail \ + && mv roundcubemail-* html \ + && cd html \ && rm -rf CHANGELOG INSTALL LICENSE README.md UPGRADING composer.json-dist installer \ && chown -R www-data: logs -COPY config.inc.php /var/www/html/webmail/config/ +COPY config.inc.php /var/www/html/config/ COPY start.sh /start.sh From 5c45aa6b38fb3fb896395a506fb8941fb0606a72 Mon Sep 17 00:00:00 2001 From: kaiyou Date: Sun, 17 Sep 2017 19:19:58 +0200 Subject: [PATCH 7/7] Strip the path when accessing the webmail --- docker-compose.yml.dist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml.dist b/docker-compose.yml.dist index 9068e70f..11b5079f 100644 --- a/docker-compose.yml.dist +++ b/docker-compose.yml.dist @@ -109,7 +109,7 @@ services: image: "mailu/$WEBMAIL:$VERSION" labels: - traefik.enable=true - - traefik.frontend.rule=Host:$HOSTNAME;PathPrefix:/webmail/ + - traefik.frontend.rule=Host:$HOSTNAME;PathPrefixStrip:/webmail/ - traefik.port=80 restart: always env_file: .env