mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-18 05:51:26 +02:00
wip: Big refacto
Top menu is back.
This commit is contained in:
@@ -11,21 +11,8 @@ register = template.Library()
|
||||
|
||||
@register.simple_tag
|
||||
def core_menu(selection, user):
|
||||
entries = []
|
||||
# if user.has_perm("admin.view_domains"):
|
||||
# entries += [
|
||||
# {"name" : "domains",
|
||||
# "url" : reverse("modoboa.admin.views.domains"),
|
||||
# "label" : _("Domains")}
|
||||
# ]
|
||||
entries += \
|
||||
entries = \
|
||||
events.raiseQueryEvent("AdminMenuDisplay", "top_menu", user)
|
||||
# if user.has_perm("admin.add_user") or user.has_perm("admin.add_alias"):
|
||||
# entries += [
|
||||
# {"name" : "identities",
|
||||
# "url" : reverse("modoboa.admin.views.identities"),
|
||||
# "label" : _("Identities")},
|
||||
# ]
|
||||
if user.is_superuser:
|
||||
entries += [
|
||||
{"name": "settings",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# coding: utf-8
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.core.urlresolvers import reverse
|
||||
from modoboa.core.extensions import ModoExtension, exts_pool
|
||||
from modoboa.lib import parameters, events
|
||||
|
||||
@@ -19,3 +20,25 @@ class AdminConsole(ModoExtension):
|
||||
parameters.unregister()
|
||||
|
||||
exts_pool.register_extension(AdminConsole, show=False)
|
||||
|
||||
|
||||
@events.observe("AdminMenuDisplay")
|
||||
def menu(target, user):
|
||||
if target != "top_menu":
|
||||
print "rien"
|
||||
return []
|
||||
entries = []
|
||||
if user.has_perm("admin.view_domains"):
|
||||
entries += [
|
||||
{"name" : "domains",
|
||||
"url" : reverse("modoboa.extensions.admin.views.domain.domains"),
|
||||
"label" : _("Domains")}
|
||||
]
|
||||
if user.has_perm("admin.add_user") or user.has_perm("admin.add_alias"):
|
||||
entries += [
|
||||
{"name" : "identities",
|
||||
"url" : reverse("modoboa.extensions.admin.views.identity.identities"),
|
||||
"label" : _("Identities")},
|
||||
]
|
||||
print entries
|
||||
return entries
|
||||
|
||||
@@ -127,14 +127,18 @@ class observe(object):
|
||||
@wraps(f)
|
||||
def wrapped_f(*args):
|
||||
if extname:
|
||||
from modoboa.admin.models import Extension
|
||||
from modoboa.core.models import Extension
|
||||
from modoboa.core.extensions import exts_pool
|
||||
try:
|
||||
ext = Extension.objects.get(name=extname)
|
||||
except Extension.DoesNotExist:
|
||||
return []
|
||||
if not ext.enabled:
|
||||
return []
|
||||
elif not modname in settings.INSTALLED_APPS:
|
||||
extdef = exts_pool.get_extension(extname)
|
||||
if not extdef.always_active:
|
||||
return []
|
||||
else:
|
||||
if not ext.enabled:
|
||||
return []
|
||||
elif not modname in settings.MODOBOA_APPS:
|
||||
return []
|
||||
|
||||
return f(*args)
|
||||
|
||||
Reference in New Issue
Block a user