diff --git a/modoboa/core/app_settings.py b/modoboa/core/app_settings.py index 5288d3a5a..b08e0488d 100644 --- a/modoboa/core/app_settings.py +++ b/modoboa/core/app_settings.py @@ -20,9 +20,11 @@ def enabled_applications(): """Return the list of installed extensions.""" from modoboa.core.extensions import exts_pool - result = [("user", "user")] + result = [("user", _("User profile"))] for extension in exts_pool.list_all(): - result.append((extension["name"], extension["name"])) + if not extension["topredirection_url"]: + continue + result.append((extension["name"], extension["label"])) return sorted(result, key=lambda e: e[0]) diff --git a/modoboa/core/extensions.py b/modoboa/core/extensions.py index 78e8f36d1..bd15dac3c 100644 --- a/modoboa/core/extensions.py +++ b/modoboa/core/extensions.py @@ -19,13 +19,14 @@ class ModoExtension(object): url = None needs_media = False always_active = False - available_for_topredirection = False + topredirection_url = None def infos(self): """Information about this extension.""" return { "name": self.name, "label": self.label, "version": self.version, "description": self.description, "url": self.url, + "topredirection_url": self.topredirection_url, "always_active": self.always_active } diff --git a/modoboa/core/tests/test_extensions.py b/modoboa/core/tests/test_extensions.py index b99c1502c..aa3f57e6b 100644 --- a/modoboa/core/tests/test_extensions.py +++ b/modoboa/core/tests/test_extensions.py @@ -57,7 +57,8 @@ class ExtensionTestCase(TestCase): compare(infos, { "name": "stupid_extension_1", "label": "Stupid extension", "version": "1.0.0", "description": "A stupid extension", - "url": None, "always_active": False + "url": None, "always_active": False, + "topredirection_url": None }) def test_list_all(self): diff --git a/modoboa/core/views/auth.py b/modoboa/core/views/auth.py index 474c353a0..5f7507fc3 100644 --- a/modoboa/core/views/auth.py +++ b/modoboa/core/views/auth.py @@ -75,7 +75,7 @@ dologin = never_cache(dologin) def dologout(request): """Logout current user.""" if not request.user.is_anonymous(): - signals.user_logout.send(sender="dologout") + signals.user_logout.send(sender="dologout", request=request) logger = logging.getLogger("modoboa.auth") logger.info(_("User {} logged out").format(request.user.username)) logout(request) diff --git a/modoboa/core/views/base.py b/modoboa/core/views/base.py index be3708641..0129de9ac 100644 --- a/modoboa/core/views/base.py +++ b/modoboa/core/views/base.py @@ -20,7 +20,7 @@ def find_nextlocation(request, user): "default_top_redirection") if topredir != "user": infos = exts_pool.get_extension_infos(topredir) - nextlocation = infos["url"] if infos["url"] else infos["name"] + nextlocation = infos["topredirection_url"] else: nextlocation = reverse("core:user_index") else: