diff --git a/admin/urls.py b/admin/urls.py index 8e4d4c8bb..7d86ab0c2 100644 --- a/admin/urls.py +++ b/admin/urls.py @@ -1,8 +1,8 @@ from django.conf.urls.defaults import * urlpatterns = patterns('mailng.admin.views', - (r'^$', 'domains'), - (r'^domains/$', 'domains'), + url(r'^$', 'domains', name="index"), + url(r'^domains/$', 'domains', name="domains"), (r'^domains/new/', 'newdomain'), (r'^domains/(?P\d+)/edit/$', 'editdomain'), (r'^domains/(?P\d+)/delete/$', 'deldomain'), @@ -12,6 +12,7 @@ urlpatterns = patterns('mailng.admin.views', (r'^domains/(?P\d+)/newalias/(?P\d+)/$', 'newalias'), (r'^domains/(?P\d+)/editalias/(?P\d+)/$', 'editalias'), (r'^domains/(?P\d+)/$', 'mailboxes'), + (r'^domains/(?P\d+)/raw/$', 'mailboxes_raw'), url(r'^domains/(?P\d+)/aliases/$', "aliases", name="full-aliases"), url(r'^domains/(?P\d+)/aliases/(?P\d+)/$', "aliases", name="mbox-aliases"), (r'^domains/(?P\d+)/delalias/(?P\d+)/$', 'delalias'), diff --git a/admin/views.py b/admin/views.py index 9e41d624b..3d7915f83 100644 --- a/admin/views.py +++ b/admin/views.py @@ -101,6 +101,13 @@ def mailboxes(request, dom_id=None): "mailboxes" : mailboxes, "domain" : domain }) +@login_required +def mailboxes_raw(request, dom_id=None): + mailboxes = Mailbox.objects.filter(domain=dom_id) + return _render(request, 'admin/mailboxes_raw.html', { + "mailboxes" : mailboxes + }) + @login_required def newmailbox(request, dom_id=None): domain = Domain.objects.get(pk=dom_id) @@ -288,6 +295,23 @@ def settings(request): @login_required def addpermission(request): + if request.method == "POST": + form = PermissionForm(request.POST) + if form.is_valid(): + mb = Mailbox.objects.get(pk=request.POST["user"]) + if request.POST["role"] == "SuperAdmin": + mb.user.is_superadmin = True + else: + mb.user.groups.add("DomainAdmins") + mb.user.save() + ctx = _ctx_ok(reverse(admin.views.permissions)) + return HttpResponse(simplejson.dumps(ctx), + mimetype="application/json") + ctx = _ctx_ko("admin/addpermission.html", { + "form" : form + }) + return HttpResponse(simplejson.dumps(ctx), mimetype="application/json") + form = PermissionForm() return _render(request, 'admin/addpermission.html', { "form" : form diff --git a/static/js/form.js b/static/js/form.js index b276b79bd..891e581a2 100644 --- a/static/js/form.js +++ b/static/js/form.js @@ -28,6 +28,9 @@ window.addEvent("domready", function() { alias_submit = function(event) { generic_submit(this, event, "aliasform", alias_submit); } + permission_submit = function(event) { + generic_submit(this, event, "permform", permission_submit); + } if ($("domform")) $("domform").addEvent("submit", domain_submit); @@ -38,9 +41,7 @@ window.addEvent("domready", function() { if ($("aliasform")) $("aliasform").addEvent("submit", alias_submit); - if ($("permform")) { - $("id_domain").addEvent("change", function(event) { + if ($("permform")) + $("permform").addEvent("submit", permission_submit); - }); - } }); diff --git a/templates/admin/addpermission.html b/templates/admin/addpermission.html index 47f19743c..e6eef8392 100644 --- a/templates/admin/addpermission.html +++ b/templates/admin/addpermission.html @@ -2,12 +2,29 @@ {% load i18n %} {% block html_head %} + + {% endblock %} {% block content %}

{% trans "Add permission" %}

{% if error %}
{{ error }}
{% endif %} -{% url admin.views.add_permission as addperm_url %} +{% url admin.views.addpermission as addperm_url %}
{% include "admin/genericform.html" %}
diff --git a/templates/admin/mailboxes_raw.html b/templates/admin/mailboxes_raw.html new file mode 100644 index 000000000..f77fbdd7e --- /dev/null +++ b/templates/admin/mailboxes_raw.html @@ -0,0 +1,3 @@ +{% for mb in mailboxes %} + +{% endfor %} \ No newline at end of file