mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-18 05:51:26 +02:00
@@ -124,6 +124,12 @@ class User(DUser):
|
||||
def has_mailbox(self):
|
||||
return len(self.mailbox_set.all()) != 0
|
||||
|
||||
@property
|
||||
def fullname(self):
|
||||
if self.first_name != "":
|
||||
return "%s %s" % (self.first_name, self.last_name)
|
||||
return self.username
|
||||
|
||||
def belongs_to_group(self, name):
|
||||
"""Simple shortcut to check if this user is a member of a
|
||||
specific group.
|
||||
|
||||
@@ -14,46 +14,47 @@ genders = {
|
||||
|
||||
@register.simple_tag
|
||||
def admin_menu(user):
|
||||
entries = [
|
||||
{"name" : "admin",
|
||||
"img" : static_url('pics/admin.png'),
|
||||
"label" : _("Admin"),
|
||||
"class" : "topdropdown",
|
||||
"menu" : []
|
||||
}
|
||||
]
|
||||
# entries = [
|
||||
# {"name" : "admin",
|
||||
# "img" : static_url('pics/admin.png'),
|
||||
# "label" : _("Admin"),
|
||||
# "class" : "topdropdown",
|
||||
# "menu" : []
|
||||
# }
|
||||
# ]
|
||||
entries = []
|
||||
if user.has_perm("admin.view_domains"):
|
||||
entries[0]["menu"] += [
|
||||
entries += [
|
||||
{"name" : "domains",
|
||||
"url" : reverse(admin.views.domains),
|
||||
"label" : _("Domains"),
|
||||
"img" : static_url("pics/domains.png")}
|
||||
]
|
||||
elif user.has_perm("admin.view_mailboxes"):
|
||||
entries[0]["menu"] += [
|
||||
entries += [
|
||||
{"name" : "mailboxes",
|
||||
"url" : reverse(admin.views.domains),
|
||||
"label" : _("Mailboxes"),
|
||||
"img" : static_url("pics/mailbox.png")}
|
||||
]
|
||||
entries[0]["menu"] += \
|
||||
entries += \
|
||||
events.raiseQueryEvent("AdminMenuDisplay", "top_menu", user)
|
||||
if user.has_perm("auth.view_permissions"):
|
||||
entries[0]["menu"] += [
|
||||
entries += [
|
||||
{"name" : "permissions",
|
||||
"url" : reverse(admin.views.permissions),
|
||||
"label" : _("Permissions"),
|
||||
"label" : _("Accounts"),
|
||||
"img" : static_url("pics/permissions.png")}
|
||||
]
|
||||
if user.is_superuser:
|
||||
entries[0]["menu"] += [
|
||||
entries += [
|
||||
{"name" : "settings",
|
||||
"img" : static_url("pics/settings.png"),
|
||||
"label" : _("Settings"),
|
||||
"label" : _("Modoboa"),
|
||||
"url" : reverse(admin.views.viewparameters)}
|
||||
]
|
||||
|
||||
if not len(entries[0]["menu"]):
|
||||
if not len(entries):
|
||||
return ""
|
||||
return render_to_string("common/menulist.html",
|
||||
{"entries" : entries, "user" : user})
|
||||
|
||||
@@ -3,8 +3,12 @@ import os
|
||||
from django.conf import settings
|
||||
from django import template
|
||||
from django.contrib import messages
|
||||
from django.template.loader import render_to_string
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
from modoboa.lib import events
|
||||
from modoboa.lib.sysutils import exec_cmd
|
||||
from modoboa.lib.webutils import static_url
|
||||
|
||||
register = template.Library()
|
||||
|
||||
@@ -55,3 +59,43 @@ def load_optionalmenu(user):
|
||||
menu = events.raiseQueryEvent("UserMenuDisplay", "top_menu_middle", user)
|
||||
return template.loader.render_to_string('common/menulist.html',
|
||||
{"entries" : menu, "user" : user})
|
||||
|
||||
@register.simple_tag
|
||||
def user_menu(user):
|
||||
entries = [
|
||||
{"name" : "user",
|
||||
"img" : static_url('pics/administrators.png'),
|
||||
"label" : user.fullname,
|
||||
"class" : "topdropdown",
|
||||
"menu" : [
|
||||
{"name" : "changepwd",
|
||||
"url" : reverse("modoboa.userprefs.views.changepassword"),
|
||||
"img" : static_url("pics/edit.png"),
|
||||
"label" : _("Change password"),
|
||||
"class" : "boxed",
|
||||
"rel" : "{handler:'iframe',size:{x:360,y:200},closeBtn:true}"},
|
||||
{"name" : "preferences",
|
||||
"img" : static_url("pics/user.png"),
|
||||
"label" : _("Preferences"),
|
||||
"url" : reverse("modoboa.userprefs.views.preferences")},
|
||||
{"name" : "logout",
|
||||
"url" : reverse("modoboa.auth.views.dologout"),
|
||||
"label" : _("Logout"),
|
||||
"img" : static_url("pics/logout.png")}
|
||||
]
|
||||
}
|
||||
]
|
||||
if user.belongs_to_group('SimpleUsers'):
|
||||
entries[0]["menu"] += [{
|
||||
"name" : "setforwards",
|
||||
"url" : reverse("modoboa.userprefs.views.setforward"),
|
||||
"img" : static_url("pics/alias.png"),
|
||||
"label" : _("Forward"),
|
||||
"class" : "boxed",
|
||||
"rel" : "{handler:'iframe',size:{x:360,y:350},closeBtn:true}"
|
||||
}]
|
||||
|
||||
entries[0]["menu"] += events.raiseQueryEvent("UserMenuDisplay", "options_menu", user)
|
||||
|
||||
return render_to_string("common/menulist.html",
|
||||
{"entries" : entries, "user" : user})
|
||||
|
||||
@@ -29,6 +29,10 @@ div#topmenubar {
|
||||
bottom: auto;
|
||||
}
|
||||
|
||||
#usermenubox {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
div#footer {
|
||||
position: absolute;
|
||||
height: 30px;
|
||||
@@ -247,7 +251,7 @@ div.right {
|
||||
border-bottom: 5px solid #333;
|
||||
border-right: 5px solid #333;
|
||||
border-left: 5px solid #333;
|
||||
width: 150px;
|
||||
/*width: 150px;*/
|
||||
float: left;
|
||||
position: relative;
|
||||
z-index: 4;
|
||||
|
||||
+5
-1
@@ -72,8 +72,12 @@ function parse_menubar(id) {
|
||||
duration: 200
|
||||
});
|
||||
|
||||
var coords = elem.getCoordinates();
|
||||
|
||||
myFx.wrapper.setStyles({
|
||||
"position" : "absolute"
|
||||
position : "absolute",
|
||||
/*top: 30,*/
|
||||
left : coords['left']
|
||||
});
|
||||
myFx.hide();
|
||||
|
||||
|
||||
+3
-15
@@ -28,26 +28,14 @@
|
||||
<div class="left" style="width: 50%">
|
||||
<ul>
|
||||
{% loadextmenu user %}
|
||||
{% options_menu user %}
|
||||
|
||||
{% admin_menu user %}
|
||||
{% load_optionalmenu user %}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div id="usermenubox" class="right">
|
||||
<ul>
|
||||
<li class="title">
|
||||
{% if user.first_name %}
|
||||
{{ user.first_name }} {{ user.last_name }}
|
||||
{% else %}
|
||||
{{ user.username }}
|
||||
{% endif %}
|
||||
/
|
||||
</li>
|
||||
<li>
|
||||
{% url modoboa.auth.views.dologout as logout_url %}
|
||||
<a href="{{ logout_url }}">
|
||||
<img src="{{ MEDIA_URL }}pics/logout.png" border="0" />{% trans "Logout" %}</a>
|
||||
</li>
|
||||
{% user_menu user %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user