mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
@@ -9,6 +9,7 @@ from django.core.urlresolvers import reverse
|
||||
from rest_framework.authtoken.models import Token
|
||||
|
||||
from modoboa.core import models as core_models
|
||||
from modoboa.lib import parameters
|
||||
from modoboa.lib.tests import ModoAPITestCase
|
||||
|
||||
from .. import factories
|
||||
@@ -401,6 +402,7 @@ class AliasAPITestCase(ModoAPITestCase):
|
||||
def setUpTestData(cls):
|
||||
"""Create test data."""
|
||||
super(AliasAPITestCase, cls).setUpTestData()
|
||||
parameters.save_admin("ENABLE_ADMIN_LIMITS", "no", app="limits")
|
||||
factories.populate_database()
|
||||
cls.da_token = Token.objects.create(
|
||||
user=core_models.User.objects.get(username="admin@test.com"))
|
||||
|
||||
@@ -12,6 +12,12 @@ class ParametersForm(AdminParametersForm):
|
||||
|
||||
defv_sep = SeparatorField(label=_("Default per-admin limits"))
|
||||
|
||||
enable_admin_limits = YesNoField(
|
||||
label=_("Enable per-admin limits"),
|
||||
initial="yes",
|
||||
help_text=_("Enable or disable per-admin limits")
|
||||
)
|
||||
|
||||
deflt_user_domain_admins_limit = forms.IntegerField(
|
||||
label=_("Domain admins"),
|
||||
initial=0,
|
||||
@@ -117,6 +123,11 @@ class ParametersForm(AdminParametersForm):
|
||||
)
|
||||
|
||||
visibility_rules = {
|
||||
"deflt_user_domains_limit": "enable_admin_limits=yes",
|
||||
"deflt_user_domain_aliases_limit": "enable_admin_limits=yes",
|
||||
"deflt_user_mailboxes_limit": "enable_admin_limits=yes",
|
||||
"deflt_user_mailbox_aliases_limit": "enable_admin_limits=yes",
|
||||
"deflt_user_domain_admins_limit": "enable_admin_limits=yes",
|
||||
"deflt_domain_mailboxes_limit": "enable_domain_limits=yes",
|
||||
"deflt_domain_mailbox_aliases_limit": "enable_domain_limits=yes",
|
||||
"deflt_domain_domain_aliases_limit": "enable_domain_limits=yes",
|
||||
|
||||
@@ -20,6 +20,8 @@ from . import utils
|
||||
def check_object_limit(sender, context, object_type, **kwargs):
|
||||
"""Check if user can create a new object."""
|
||||
if context.__class__.__name__ == "User":
|
||||
if parameters.get_admin("ENABLE_ADMIN_LIMITS") == "no":
|
||||
return
|
||||
if context.is_superuser:
|
||||
return True
|
||||
limit = context.userobjectlimit_set.get(name=object_type)
|
||||
|
||||
Reference in New Issue
Block a user