mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
@@ -3,7 +3,7 @@
|
||||
from django import forms
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from modoboa.lib.form_utils import SeparatorField
|
||||
from modoboa.lib.form_utils import SeparatorField, YesNoField
|
||||
from modoboa.lib.parameters import AdminParametersForm
|
||||
|
||||
|
||||
@@ -67,6 +67,12 @@ class ParametersForm(AdminParametersForm):
|
||||
|
||||
domain_limits_sep = SeparatorField(label=_("Default per-domain limits"))
|
||||
|
||||
enable_domain_limits = YesNoField(
|
||||
label=_("Enable per-domain limits"),
|
||||
initial="no",
|
||||
help_text=_("Enable or disable per-domain limits")
|
||||
)
|
||||
|
||||
# deflt_domain_domain_admins_limit = forms.IntegerField(
|
||||
# label=_("Domain admins"),
|
||||
# initial=0,
|
||||
@@ -110,6 +116,12 @@ class ParametersForm(AdminParametersForm):
|
||||
attrs={"class": "col-md-1 form-control"})
|
||||
)
|
||||
|
||||
visibility_rules = {
|
||||
"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",
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(AdminParametersForm, self).__init__(*args, **kwargs)
|
||||
self._load_extra_parameters('A')
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from modoboa.lib import events
|
||||
from modoboa.lib import events, parameters
|
||||
|
||||
from . import forms
|
||||
from . import utils
|
||||
@@ -53,6 +53,8 @@ def extra_account_form(user, account=None):
|
||||
@events.observe("ExtraDomainForm")
|
||||
def extra_domain_form(user, domain):
|
||||
"""Include domain limits form."""
|
||||
if parameters.get_admin("ENABLE_DOMAIN_LIMITS") == "no":
|
||||
return []
|
||||
if not user.has_perm("admin.change_domain"):
|
||||
return []
|
||||
return [{
|
||||
@@ -64,6 +66,8 @@ def extra_domain_form(user, domain):
|
||||
@events.observe("FillDomainInstances")
|
||||
def fill_domain_instances(user, domain, instances):
|
||||
"""Set domain instance for resources form."""
|
||||
if parameters.get_admin("ENABLE_DOMAIN_LIMITS") == "no":
|
||||
return
|
||||
if not user.has_perm("admin.change_domain"):
|
||||
return
|
||||
instances["resources"] = domain
|
||||
|
||||
@@ -24,6 +24,8 @@ def check_object_limit(sender, context, object_type, **kwargs):
|
||||
return True
|
||||
limit = context.userobjectlimit_set.get(name=object_type)
|
||||
elif context.__class__.__name__ == "Domain":
|
||||
if parameters.get_admin("ENABLE_DOMAIN_LIMITS") == "no":
|
||||
return
|
||||
limit = context.domainobjectlimit_set.get(name=object_type)
|
||||
else:
|
||||
raise NotImplementedError
|
||||
|
||||
Reference in New Issue
Block a user