mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
More work (again) about permissions.
This commit is contained in:
+3
-2
@@ -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<dom_id>\d+)/edit/$', 'editdomain'),
|
||||
(r'^domains/(?P<dom_id>\d+)/delete/$', 'deldomain'),
|
||||
@@ -12,6 +12,7 @@ urlpatterns = patterns('mailng.admin.views',
|
||||
(r'^domains/(?P<dom_id>\d+)/newalias/(?P<mbox_id>\d+)/$', 'newalias'),
|
||||
(r'^domains/(?P<dom_id>\d+)/editalias/(?P<alias_id>\d+)/$', 'editalias'),
|
||||
(r'^domains/(?P<dom_id>\d+)/$', 'mailboxes'),
|
||||
(r'^domains/(?P<dom_id>\d+)/raw/$', 'mailboxes_raw'),
|
||||
url(r'^domains/(?P<dom_id>\d+)/aliases/$', "aliases", name="full-aliases"),
|
||||
url(r'^domains/(?P<dom_id>\d+)/aliases/(?P<mbox_id>\d+)/$', "aliases", name="mbox-aliases"),
|
||||
(r'^domains/(?P<dom_id>\d+)/delalias/(?P<alias_id>\d+)/$', 'delalias'),
|
||||
|
||||
@@ -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
|
||||
|
||||
+5
-4
@@ -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);
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -2,12 +2,29 @@
|
||||
{% load i18n %}
|
||||
{% block html_head %}
|
||||
<script src="/static/js/form.js" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
window.addEvent("domready", function() {
|
||||
$("id_domain").addEvent("change", function(event) {
|
||||
domid = this.value;
|
||||
if (domid == "") {
|
||||
$("id_user").set("html", "");
|
||||
return;
|
||||
}
|
||||
{% url domains as doms_url %}
|
||||
new Request({url: "{{ doms_url }}" + domid + "/raw/",
|
||||
method: "get", onSuccess: function(data) {
|
||||
$("id_user").set("html", data);
|
||||
}}).send();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div class="title"><h1>{% trans "Add permission" %}</h1></div>
|
||||
|
||||
{% if error %}<div class="error">{{ error }}</div>{% endif %}
|
||||
{% url admin.views.add_permission as addperm_url %}
|
||||
{% url admin.views.addpermission as addperm_url %}
|
||||
<form action="{{ addperm_url }}" method="POST" id="permform" name="permform">
|
||||
{% include "admin/genericform.html" %}
|
||||
<div class="spacer"></div>
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{% for mb in mailboxes %}
|
||||
<option value='{{ mb.id }}'>{{ mb.name }}</option>
|
||||
{% endfor %}
|
||||
Reference in New Issue
Block a user