Misc. fixes

see #105
This commit is contained in:
Antoine Nguyen
2012-02-21 16:57:24 +01:00
parent 23f77f64aa
commit d17e78ad02
6 changed files with 30 additions and 18 deletions
+1 -7
View File
@@ -69,13 +69,7 @@ class SuperAdminsPerms(Permissions):
def get(self, request):
admins = User.objects.filter(is_superuser=True)
admins_list = []
for admin in admins:
admins_list += [{"id" : admin.id, "user_name" : admin.username,
"full_name" : "%s %s" % (admin.first_name, admin.last_name),
"date_joined" : admin.date_joined,
"enabled" : admin.is_active}]
return SuperAdminsTable(request, admins_list).render()
return SuperAdminsTable(request, admins).render()
class DomainAdminsPerms(Permissions):
+13 -4
View File
@@ -135,13 +135,22 @@ class ExtensionsTable(tables.Table):
class SuperAdminsTable(tables.Table):
idkey = "id"
selection = tables.SelectionColumn("selection", width="4%", first=True)
user_name = tables.Column("user_name", label=ugettext_noop("User name"))
full_name = tables.Column("full_name", label=ugettext_noop("Full name"))
selection = tables.SelectionColumn("selection", width="4%")
username = tables.Column("username", label=ugettext_noop("User name"))
first_name = tables.Column("first_name", label=ugettext_noop("First name"))
last_name = tables.Column("last_name", label=ugettext_noop("Last name"))
date_joined = tables.Column("date_joined", label=ugettext_noop("Defined"))
enabled = tables.Column("enabled", label=gender("Enabled", "m"), width="10%")
cols_order = ["selection", "user_name", "full_name", "date_joined", "enabled"]
cols_order = ["selection", "username", "first_name", "last_name",
"date_joined", "enabled"]
def __init__(self, request, users):
super(SuperAdminsTable, self).__init__(request)
self.populate(self._rows_from_model(users))
def parse_enabled(self, value):
return _("yes") if value else _("no")
class DomainAdminsTable(tables.Table):
idkey = "id"
+2 -1
View File
@@ -513,9 +513,9 @@ def add_permission(request):
messages.error(request, _("Permission denied!"),
fail_silently=True)
else:
events.raiseEvent("CanCreate", request.user, role)
pobj = pclass()
if request.method == "GET":
events.raiseEvent("CanCreate", request.user, role)
return pobj.get_add_form(request)
status, data = pobj.add(request)
if not status:
@@ -530,6 +530,7 @@ def add_permission(request):
@login_required
@permission_required("auth.view_permissions")
def create_domain_admin(request, tplname="admin/create_domain_admin.html"):
events.raiseEvent("CanCreate", request.user, "domain_admins")
if request.method == "POST":
form = UserWithPasswordForm(request.POST)
if form.is_valid():
+4
View File
@@ -62,6 +62,8 @@ class ResellerPoolForm(forms.Form):
def load_from_user(self, user):
for l in reseller_limits_tpl:
if not self.fields.has_key(l):
continue
self.fields[l].initial = user.limitspool.getmaxvalue(l)
def allocate_from_pool(self, limit, pool):
@@ -85,6 +87,8 @@ class ResellerPoolForm(forms.Form):
def save_new_limits(self, pool):
owner = get_object_owner(pool.user)
for lname in reseller_limits_tpl:
if not self.cleaned_data.has_key(lname):
continue
l = pool.limit_set.get(name=lname)
if not owner.is_superuser:
self.allocate_from_pool(l, owner.limitspool)
+1 -1
View File
@@ -3,5 +3,5 @@ from django.conf.urls.defaults import *
urlpatterns = patterns(
'modoboa.extensions.limits.views',
(r'reseller/edit/(?P<resid>\d+)/$', 'edit_reseller'),
(r'pool/edit/(?P<resid>\d+)/$', 'edit_limits_pool'),
(r'pool/edit/(?P<uid>\d+)/$', 'edit_limits_pool'),
)
+9 -5
View File
@@ -41,19 +41,23 @@ def edit_reseller(request, resid, tplname="admin/add_permission.html"):
@login_required
@permission_required("auth.view_permissions")
@transaction.commit_on_success
def edit_limits_pool(request, resid, tplname="limits/pool.html"):
reseller = User.objects.get(pk=resid)
ctx = dict(reseller=reseller)
def edit_limits_pool(request, uid, tplname="limits/pool.html"):
user = User.objects.get(pk=uid)
ctx = dict(reseller=user)
if request.method == "POST":
form = ResellerPoolForm(request.POST)
if not user.belongs_to_group('Resellers'):
del form.fields["domain_admins_limit"]
if form.is_valid():
form.save_new_limits(reseller.limitspool)
form.save_new_limits(user.limitspool)
messages.info(request, _("Pool updated"), fail_silently=True)
return ajax_response(request, url=reverse("modoboa.admin.views.permissions"))
ctx.update(form=form)
return ajax_response(request, status="ko", template=tplname, **ctx)
form = ResellerPoolForm()
form.load_from_user(reseller)
if not user.belongs_to_group('Resellers'):
del form.fields["domain_admins_limit"]
form.load_from_user(user)
ctx.update(form=form)
return _render(request, tplname, ctx)