mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-19 05:58:34 +02:00
Added fixtures for initial admin data.
perms object is no longer passed to builtins or filters, we use user instead (it seems that perms content is different with Django 1.2) #48 : I think I've found a way to include templatetags dynamically, using add_to_builtins.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
[{"pk": 1, "model": "auth.group", "fields": {"name": "DomainAdmins", "permissions": [37, 33, 38, 34, 39, 35, 40, 31, 36]}}]
|
||||
@@ -12,7 +12,7 @@ genders = {
|
||||
}
|
||||
|
||||
@register.simple_tag
|
||||
def domain_menu(domain_id, selection, perms):
|
||||
def domain_menu(domain_id, selection, user):
|
||||
entries = [
|
||||
{"name" : "",
|
||||
"url" : reverse(admin.views.newmailbox, args=[domain_id]),
|
||||
@@ -30,7 +30,7 @@ def domain_menu(domain_id, selection, perms):
|
||||
"label" : _("Aliases")},
|
||||
]
|
||||
|
||||
if perms.user.has_perm("admin.change_domain"):
|
||||
if user.has_perm("admin.change_domain"):
|
||||
entries += [
|
||||
{"name" : "",
|
||||
"url" : reverse(admin.views.editdomain, args=[domain_id]),
|
||||
@@ -40,13 +40,13 @@ def domain_menu(domain_id, selection, perms):
|
||||
"rel" : "{handler:'iframe',size:{x:300,y:180}}"}
|
||||
]
|
||||
entries += events.raiseQueryEvent("AdminMenuDisplay", target="admin_menu_bar",
|
||||
perms=perms, domain=domain_id)
|
||||
user=user, domain=domain_id)
|
||||
return render_to_string('common/menu.html',
|
||||
{"selection" : selection, "entries" : entries,
|
||||
"perms" : perms})
|
||||
"user" : user})
|
||||
|
||||
@register.simple_tag
|
||||
def settings_menu(selection, perms):
|
||||
def settings_menu(selection, user):
|
||||
entries = [
|
||||
{"name" : "permissions",
|
||||
"url" : reverse(admin.views.settings),
|
||||
@@ -68,10 +68,10 @@ def settings_menu(selection, perms):
|
||||
]
|
||||
return render_to_string('common/menu.html',
|
||||
{"selection" : selection, "entries" : entries,
|
||||
"perms" : perms})
|
||||
"user" : user})
|
||||
|
||||
@register.simple_tag
|
||||
def domains_menu(selection, perms):
|
||||
def domains_menu(selection, user):
|
||||
entries = [
|
||||
{"name" : "newdomain",
|
||||
"url" : reverse(admin.views.newdomain),
|
||||
@@ -85,17 +85,17 @@ def domains_menu(selection, perms):
|
||||
"img" : "/static/pics/domains.png"}
|
||||
]
|
||||
entries += events.raiseQueryEvent("AdminMenuDisplay", target="admin_menu_box",
|
||||
perms=perms)
|
||||
user=user)
|
||||
return render_to_string('common/menu.html',
|
||||
{"entries" : entries, "selection" : selection,
|
||||
"perms" : perms})
|
||||
"user" : user})
|
||||
|
||||
@register.simple_tag
|
||||
def loadadminextmenu(perms):
|
||||
def loadadminextmenu(user):
|
||||
menu = events.raiseQueryEvent("AdminMenuDisplay", target="admin_menu_box",
|
||||
perms=perms)
|
||||
user=user)
|
||||
return render_to_string('common/menulist.html',
|
||||
{"entries" : menu, "perms" : perms})
|
||||
{"entries" : menu, "user" : user})
|
||||
|
||||
@register.simple_tag
|
||||
def param(app, definition):
|
||||
|
||||
@@ -6,9 +6,19 @@ extensions = {}
|
||||
|
||||
def loadextensions():
|
||||
from admin.models import Extension
|
||||
from django.template import add_to_builtins
|
||||
|
||||
exts = Extension.objects.filter(enabled=True)
|
||||
for ext in exts:
|
||||
tagsdir = "extensions/%s/templatetags" % ext.name
|
||||
if os.path.isdir("extensions/%s/templatetags" % ext.name):
|
||||
for f in os.listdir(tagsdir):
|
||||
if f in ["__init__.py", "__init__.pyc"]:
|
||||
continue
|
||||
parts = f.split('.')
|
||||
if len(parts) == 2 and parts[1] == "py":
|
||||
add_to_builtins("extensions.%s.templatetags.%s" \
|
||||
% (ext.name, parts[0]))
|
||||
module = __import__(ext.name, globals(), locals(), ['main'])
|
||||
module.main.init()
|
||||
globals()['extensions'][ext] = module
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{% extends "common/email_listing.html" %}
|
||||
{% load i18n %}
|
||||
{% load amextras %}
|
||||
{% block css %}
|
||||
thead tr {
|
||||
position: relative;
|
||||
|
||||
@@ -34,8 +34,7 @@ window.addEvent("domready", function() {
|
||||
{% endblock %}
|
||||
{% block middletitle %}{% trans "Mail content" %}{% endblock %}
|
||||
{% block menu %}
|
||||
{% load amextras %}
|
||||
{% viewm_menu "" mail_id page_id perms %}
|
||||
{% viewm_menu "" mail_id page_id user %}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div id="table-container">
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{% extends "nlayout.html" %}
|
||||
{% load i18n %}
|
||||
{% load stats_extra %}
|
||||
{% load admin_extras %}
|
||||
{% block html_head %}
|
||||
<style type="text/css">
|
||||
@@ -29,7 +28,7 @@ window.addEvent("domready", function() {
|
||||
<script type="text/javascript" src="/static/js/calendar.js"></script>
|
||||
{% endblock %}
|
||||
{% block middletitle %}{% trans "Global statistics" %}{% endblock %}
|
||||
{% block menu %}{% domains_menu "stats" perms %}{% endblock %}
|
||||
{% block menu %}{% domains_menu "stats" user %}{% endblock %}
|
||||
{% block content %}
|
||||
<div id="graphcontent">
|
||||
<div id="selectors">
|
||||
|
||||
@@ -22,7 +22,7 @@ window.addEvent("domready", function() {
|
||||
{% block menu %}
|
||||
{% if domain %}
|
||||
{% load admin_extras %}
|
||||
{% domain_menu domain.id "stats" perms %}
|
||||
{% domain_menu domain.id "stats" user %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block domcontent %}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{% load i18n %}
|
||||
{% load webextras %}
|
||||
<h3>{% trans "Folders" %}</h3>
|
||||
<ul>
|
||||
{% print_folders folders %}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{% extends "common/email_listing.html" %}
|
||||
{% load i18n %}
|
||||
{% load webextras %}
|
||||
{% block css %}
|
||||
#listing {
|
||||
position: absolute;
|
||||
|
||||
@@ -8,7 +8,7 @@ from mailng.extensions.webmail.imap_listing import IMAPheader
|
||||
register = template.Library()
|
||||
|
||||
@register.simple_tag
|
||||
def viewm_menu(selection, backurl, folder, mail_id, perms):
|
||||
def viewm_menu(selection, backurl, folder, mail_id, user):
|
||||
entries = [
|
||||
{"name" : "back",
|
||||
"url" : backurl,
|
||||
@@ -34,10 +34,10 @@ def viewm_menu(selection, backurl, folder, mail_id, perms):
|
||||
|
||||
return render_to_string('common/menu.html',
|
||||
{"selection" : selection, "entries" : entries,
|
||||
"perms" : perms})
|
||||
"user" : user})
|
||||
|
||||
@register.simple_tag
|
||||
def compose_menu(selection, backurl, perms):
|
||||
def compose_menu(selection, backurl, user):
|
||||
entries = [
|
||||
{"name" : "back",
|
||||
"url" : backurl,
|
||||
@@ -50,10 +50,10 @@ def compose_menu(selection, backurl, perms):
|
||||
]
|
||||
return render_to_string('common/menu.html',
|
||||
{"selection" : selection, "entries" : entries,
|
||||
"perms" : perms})
|
||||
"user" : user})
|
||||
|
||||
@register.simple_tag
|
||||
def listing_menu(selection, folder, perms):
|
||||
def listing_menu(selection, folder, user):
|
||||
entries = [
|
||||
{"name" : "compose",
|
||||
"url" : reverse(webmail.views.compose),
|
||||
@@ -92,7 +92,7 @@ def listing_menu(selection, folder, perms):
|
||||
]
|
||||
menu = render_to_string("common/menu.html",
|
||||
{"selection" : selection, "entries" : entries,
|
||||
"perms" : perms})
|
||||
"user" : user})
|
||||
searchbar = render_to_string("common/email_searchbar.html", {})
|
||||
return menu + searchbar
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% extends "admin/domain_header.html" %}
|
||||
{% block menu %}
|
||||
{% load admin_extras %}
|
||||
{% domain_menu domain.id "aliases" perms %}
|
||||
{% domain_menu domain.id "aliases" user %}
|
||||
{% endblock %}
|
||||
{% block domcontent %}
|
||||
{% load i18n %}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
</script>
|
||||
{% endblock %}
|
||||
{% block middletitle %}{% trans "Available domains" %}{% endblock %}
|
||||
{% block menu %}{% domains_menu "domains" perms %}{% endblock %}
|
||||
{% block menu %}{% domains_menu "domains" user %}{% endblock %}
|
||||
{% block content %}
|
||||
<div id="domcontent">
|
||||
{% if not domains %}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% extends "admin/settings_header.html" %}
|
||||
{% block menu %}
|
||||
{% load admin_extras %}
|
||||
{% settings_menu "extensions" perms %}
|
||||
{% settings_menu "extensions" user %}
|
||||
{% endblock %}
|
||||
{% block setcontent %}
|
||||
{% load i18n %}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{% load i18n %}
|
||||
{% block menu %}
|
||||
{% load admin_extras %}
|
||||
{% domain_menu domain.id "mailboxes" perms %}
|
||||
{% domain_menu domain.id "mailboxes" user %}
|
||||
{% endblock %}
|
||||
{% block domcontent %}
|
||||
{% load i18n %}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% extends "admin/settings_header.html" %}
|
||||
{% block menu %}
|
||||
{% load admin_extras %}
|
||||
{% settings_menu "parameters" perms %}
|
||||
{% settings_menu "parameters" user %}
|
||||
{% endblock %}
|
||||
{% block setcontent %}
|
||||
{% load i18n %}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% extends "admin/settings_header.html" %}
|
||||
{% block menu %}
|
||||
{% load admin_extras %}
|
||||
{% settings_menu "permissions" perms %}
|
||||
{% settings_menu "permissions" user %}
|
||||
{% endblock %}
|
||||
{% block setcontent %}
|
||||
{% load i18n %}
|
||||
|
||||
@@ -1,124 +0,0 @@
|
||||
{% load i18n %}
|
||||
{% load main_extras %}
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head profile="http://www.w3.org/2005/10/profile">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>MailNG - {%block pagetitle %}{% endblock %}</title>
|
||||
<link rel="icon" type="image/png" href="/static/stylesheets/logo-icon.png" />
|
||||
<link rel="stylesheet" type="text/css" href="/static/stylesheets/basic.css" />
|
||||
<link rel="stylesheet" type="text/css" href="/static/stylesheets/SqueezeBox.css" />
|
||||
<script src="/static/js/mootools.js" type="text/javascript"></script>
|
||||
<script src="/static/js/mootools-more.js" type="text/javascript"></script>
|
||||
<script src="/static/js/SqueezeBox.js" type="text/javascript"></script>
|
||||
<script src="/static/js/common.js" type="text/javascript"></script>
|
||||
{% url django.views.i18n.javascript_catalog as catalog_url %}
|
||||
<script type="text/javascript" src="{{ catalog_url }}"></script>
|
||||
{%block html_head %}{% endblock %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="first-container">
|
||||
<div id="header" class="rounded">
|
||||
<div id="logo"></div>
|
||||
<div id="title">
|
||||
<h1>MailNG</h1>
|
||||
<h2>Simple virtual domains</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="body">
|
||||
{% if user.is_authenticated %}
|
||||
<div id="leftcol">
|
||||
<div id="userbox" class="leftbox">
|
||||
{% if user.first_name %}
|
||||
<h3>{{ user.first_name }} {{ user.last_name }}</h3>
|
||||
{% else %}
|
||||
<h3>{{ user.username }}</h3>
|
||||
{% endif %}
|
||||
<ul>
|
||||
{% if user.is_superuser or perms.admin.view_domain %}
|
||||
<li>
|
||||
{% url admin.views.domains as dom_url %}
|
||||
<a href="{{ dom_url }}">
|
||||
<img src="/static/pics/settings.png" border="0" />{% trans "Admin" %}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if not user.is_superuser %}
|
||||
<li>
|
||||
{% url main.views.index as index_url %}
|
||||
<a href="{{ index_url }}">
|
||||
<img src="/static/pics/user.png" border="0" />{% trans "Preferences" %}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% loadextmenu perms %}
|
||||
<li>
|
||||
{% url django.contrib.auth.views.logout_then_login as logout_url %}
|
||||
<a href="{{ logout_url }}">
|
||||
<img src="/static/pics/logout.png" border="0" />{% trans "Logout" %}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br/>
|
||||
{% if user.is_superuser %}
|
||||
{% load admin_extras %}
|
||||
<div id="menubox" class="leftbox">
|
||||
<ul>
|
||||
<li>
|
||||
{% url admin.views.newdomain as newdom_url %}
|
||||
<a href="{{ newdom_url }}" class="boxed"
|
||||
rel="{handler:'iframe',size:{x:300,y:200}}">
|
||||
<img src="/static/pics/add.png" border="0"/>
|
||||
{% trans "New domain" %}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
{% url admin.views.domains as dom_url %}
|
||||
<a href="{{ dom_url }}">
|
||||
<img src="/static/pics/domains.png" border="0"/>
|
||||
{% trans "Domains" %}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
{% url admin.views.settings as settings_url %}
|
||||
<a href="{{ settings_url }}">
|
||||
<img src="/static/pics/settings.png" border="0"/>
|
||||
{% trans "Settings" %}
|
||||
</a>
|
||||
</li>
|
||||
{% loadadminextmenu perms %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% block leftmenu %}{% endblock %}
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
{% else %}
|
||||
<div id="content2">
|
||||
{% endif %}
|
||||
<div class="header">
|
||||
<h1>{% block middletitle %}{% endblock %}</h1>
|
||||
<div id="infos">
|
||||
{% if messages %}
|
||||
{% for m in messages %}{{ m }}{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="spacer"></div>
|
||||
<div id="menubar" class="menu2">
|
||||
{% block menu %}{% endblock %}
|
||||
</div>
|
||||
{% block content %}{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="spacer"></div>
|
||||
|
||||
<div id="footer">
|
||||
© Antoine Nguyen 2009
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -24,10 +24,10 @@
|
||||
<div id="topmenubar" class="uibar menubar">
|
||||
<div class="left" style="width: 50%">
|
||||
<ul>
|
||||
{% loadextmenu perms %}
|
||||
{% uprefs_menu perms %}
|
||||
{% loadextmenu user %}
|
||||
{% uprefs_menu user %}
|
||||
|
||||
{% if user.is_superuser or perms.admin.view_domains %}
|
||||
{% if user.is_superuser or perms.admin.view_domain %}
|
||||
<li class="dropdown topdropdown">
|
||||
<img src="/static/pics/admin.png" border="0" />
|
||||
<label>{% trans "Admin" %}</label>
|
||||
@@ -37,12 +37,14 @@
|
||||
<img src="/static/pics/domains.png" />{% trans "Domains" %}
|
||||
</a>
|
||||
</li>
|
||||
{% if user.is_superuser %}
|
||||
<li>
|
||||
<a href="{% url admin.views.settings %}">
|
||||
<img src="/static/pics/settings.png" border="0"/>
|
||||
{% trans "Settings" %}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
@@ -8,7 +8,7 @@ from mailng.lib import events
|
||||
register = template.Library()
|
||||
|
||||
@register.simple_tag
|
||||
def uprefs_menu(perms):
|
||||
def uprefs_menu(user):
|
||||
entries = [
|
||||
{"name" : "userprefs",
|
||||
"img" : "/static/pics/user.png",
|
||||
@@ -28,11 +28,11 @@ def uprefs_menu(perms):
|
||||
target="user_menu_bar")
|
||||
|
||||
return render_to_string('common/menulist.html',
|
||||
{"entries" : entries, "perms" : perms})
|
||||
{"entries" : entries, "user" : user})
|
||||
|
||||
@register.simple_tag
|
||||
def loadextmenu(perms):
|
||||
def loadextmenu(user):
|
||||
menu = events.raiseQueryEvent("UserMenuDisplay", target="user_menu_box",
|
||||
perms=perms)
|
||||
user=user)
|
||||
return render_to_string('common/menulist.html',
|
||||
{"entries" : menu, "perms" : perms})
|
||||
{"entries" : menu, "user" : user})
|
||||
|
||||
Reference in New Issue
Block a user