Files
modoboa/extensions/limits/permissions.py
T
Antoine Nguyen 1c51e97179 wip: Limits and resellers
* refactoring, limits are working pretty well
* domain admins can now create domains (under control) when the limits extension is enabled

see #105
2012-01-24 11:23:31 +01:00

61 lines
1.9 KiB
Python

# coding: utf-8
from django.utils.translation import ugettext as _, ugettext_noop
from django.contrib.auth.models import User
from modoboa.admin.permissions import Permissions
from modoboa.admin.lib import set_object_ownership
from modoboa.admin.models import ObjectOwner
from modoboa.lib import events
from modoboa.lib.webutils import _render, _render_to_string
from tables import *
from forms import *
class ResellersPerms(Permissions):
title = ugettext_noop("New reseller")
role = "resellers"
add_success_msg = ugettext_noop("Reseller added")
def get_add_form(self, request):
form = ResellerWithPasswordForm()
return self._render_form(request, form)
def add(self, request):
form = ResellerWithPasswordForm(request.POST)
error = None
if form.is_valid():
r = form.save(group="Resellers")
set_object_ownership(request.user, r)
return True, None
content = self._render_form(request, form, True)
return False, dict(status="ko", content=content)
def delete(self, selection):
ct = ContentType.objects.get_for_model(User)
for u in User.objects.filter(id__in=selection):
try:
ObjectOwner.objects.get(content_type=ct, object_id=u.id).delete()
except ObjectOwner.DoesNotExist:
pass
u.delete()
def get(self, request):
resellers = User.objects.filter(groups__name="Resellers")
return ResellersTable(request, resellers).render()
@events.observe('PermsGetTables')
def get_resellers_table(request):
if not request.user.is_superuser:
return []
return [{"id" : "resellers",
"title" : _("Resellers"),
"rel" : "350 300",
"content" : ResellersPerms().get(request)}]
@events.observe("PermsGetClass")
def get_perms_class(role):
print role
if role != "resellers":
return []
return [ResellersPerms]