It is now possible to delete a SuperAdmin permission.

Postfix Autoreply plugin is not a real plugin... I've begun the conversion but it will cause a modification into the SQL schema and I don't know how to handle migrations yet...
This commit is contained in:
tonio
2009-10-22 18:31:43 +02:00
parent 52039a2b08
commit 981540b2b5
5 changed files with 39 additions and 13 deletions
+18 -7
View File
@@ -9,7 +9,7 @@ from django.core.urlresolvers import reverse
from django.contrib.auth.decorators \
import login_required, permission_required, user_passes_test
from django.contrib.auth.models import User, Group
from mailng import admin
from mailng import admin, main
from mailng.admin.models import Domain, Mailbox, Alias
from forms import MailboxForm, DomainForm, AliasForm, PermissionForm
from mailng.lib.authbackends import crypt_password
@@ -26,8 +26,11 @@ def is_superuser(user):
@login_required
def domains(request):
if not request.user.has_perm("admin.view_domains"):
mb = Mailbox.objects.get(user=request.user.id)
return mailboxes(request, dom_id=mb.domain.id)
if request.user.has_perm("admin.view_mailboxes"):
mb = Mailbox.objects.get(user=request.user.id)
return mailboxes(request, dom_id=mb.domain.id)
return HttpResponseRedirect(reverse(main.views.index))
domains = Domain.objects.all()
counters = {}
@@ -362,8 +365,16 @@ def addpermission(request):
@login_required
@user_passes_test(lambda u: u.is_superuser)
def deletepermission(request, mbox_id, group):
mbox = Mailbox.objects.get(pk=mbox_id)
grp = Group.objects.get(name=group)
mbox.user.groups.remove(grp)
mbox.user.save()
if group == "SuperAdmins":
user = User.objects.get(pk=mbox_id)
if user.username == "admin":
request.user.message_set.create(message=_("admin is intouchable!!"))
else:
user.is_superuser = False
user.save()
else:
mbox = Mailbox.objects.get(pk=mbox_id)
grp = Group.objects.get(name=group)
mbox.user.groups.remove(grp)
mbox.user.save()
return HttpResponseRedirect(reverse(admin.views.settings))
+2
View File
@@ -42,6 +42,8 @@ def urls():
include('mailng.extensions.amavis_quarantine.urls'))
def menu(**kwargs):
if kwargs["target"] != "user_menu_box":
return []
return [
{"name" : _("Quarantine"),
"url" : reverse(index),
+15
View File
@@ -7,7 +7,10 @@ This module provides a way to integrate MailNG auto-reply
functionality into Postfix.
"""
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext as _
from mailng.lib import events
from mailng import main
from models import Transport, Alias
def init():
@@ -17,9 +20,21 @@ def init():
events.register("DeleteMailbox", onDeleteMailbox)
events.register("ModifyMailbox", onModifyMailbox)
events.register("UserMenuDisplay", menu)
def urls():
return ()
def menu(**kwargs):
if kwargs["target"] != "user_menu_bar":
return []
return [
{"name" : "autoreply",
"url" : reverse(main.views.autoreply),
"img" : "/static/pics/auto-reply.png",
"label" : _("Auto-reply message")}
]
def onCreateDomain(**kwargs):
dom = kwargs["dom"]
transport = Transport()
+2 -5
View File
@@ -10,10 +10,6 @@ register = template.Library()
@register.simple_tag
def menu(selection, perms):
entries = [
{"name" : "autoreply",
"url" : reverse(main.views.autoreply),
"img" : "/static/pics/auto-reply.png",
"label" : _("Auto-reply message")},
{"name" : "changepwd",
"url" : reverse(main.views.changepassword),
"img" : "/static/pics/edit.png",
@@ -21,6 +17,7 @@ def menu(selection, perms):
"class" : "boxed",
"rel" : "{handler:'iframe',size:{x:350,y:220}}"}
]
entries += events.raiseQueryEvent("UserMenuDisplay", target="user_menu_bar")
return render_to_string('main/menu.html',
{"selection" : selection, "entries" : entries,
@@ -28,6 +25,6 @@ def menu(selection, perms):
@register.simple_tag
def loadextmenu(perms):
menu = events.raiseQueryEvent("UserMenuDisplay")
menu = events.raiseQueryEvent("UserMenuDisplay", target="user_menu_box")
return render_to_string('main/menulist.html',
{"menu" : menu, "perms" : perms})
+2 -1
View File
@@ -19,7 +19,8 @@
{% for admin in admins %}
<tr class="{% cycle 'odd' 'even' %}">
<td>
<a href=""><img src="/static/pics/remove.png" border="0" title="{% trans 'Remove permission' %}" /></a>
{% url admin.views.deletepermission admin.id "SuperAdmins" as del_url %}
<a href="{{ del_url }}"><img src="/static/pics/remove.png" border="0" title="{% trans 'Remove permission' %}" /></a>
</td>
<td>{{ admin.first_name }} {{ admin.last_name }}</td>
<td>{{ admin.username }}</td>