Files
modoboa/extensions/limits/permissions.py
T
Antoine Nguyen 3681bb4198 wip: resellers and limits
I've finally started to rethink the database structure. The goal I'm trying to reach: only use User objects to manage permissions and accesses to the webui and associate other objects to them if needed (like mailboxes).

see #105
2012-01-20 17:33:05 +01:00

51 lines
1.6 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.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():
form.save(group="Resellers")
return True, None
content = self._render_form(request, form, True)
return False, dict(status="ko", content=content)
def delete(self, selection):
User.objects.filter(id__in=selection).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]