Merge pull request #1008 from modoboa/feature/set_default_password

Possibility to change default password.
This commit is contained in:
Antoine Nguyen
2017-01-18 11:15:05 +01:00
committed by GitHub
5 changed files with 40 additions and 4 deletions
+2 -1
View File
@@ -238,7 +238,8 @@ class DomainFormOptions(forms.Form):
core_signals.can_create_object.send(
self.__class__, context=user, object_type="mailboxes")
da = User(username=username, email=username, is_active=True)
da.set_password("password")
da.set_password(
param_tools.get_global_parameter("default_password", app="core"))
da.save()
da.role = "DomainAdmins"
da.post_create(user)
+25
View File
@@ -99,6 +99,31 @@ class DomainTestCase(ModoTestCase):
)
self.assertTrue(da.can_access(al))
def test_create_with_template_and_custom_password(self):
"""Test creation of a domain with a template and custom password."""
password = "Toto1000"
self.set_global_parameter("default_password", password, app="core")
values = {
"name": "pouet.com", "quota": 0, "create_dom_admin": True,
"dom_admin_username": "toto", "create_aliases": True,
"type": "domain", "stepid": 'step3'
}
self.ajax_post(
reverse("admin:domain_add"),
values
)
dom = Domain.objects.get(name="pouet.com")
da = User.objects.get(username="toto@pouet.com")
self.assertIn(da, dom.admins)
al = Alias.objects.get(address="postmaster@pouet.com")
self.assertTrue(
al.aliasrecipient_set.filter(r_mailbox=da.mailbox)
.exists()
)
self.assertTrue(da.can_access(al))
self.assertTrue(
self.client.login(username="toto@pouet.com", password=password))
def test_create_using_default_quota(self):
self.set_global_parameter("default_domain_quota", 50)
values = {
+10
View File
@@ -3,6 +3,8 @@ from django import forms
from django.conf import settings
from django.utils.translation import ugettext as _, ugettext_lazy
from passwords import validators
from modoboa.lib import fields as lib_fields
from modoboa.lib.cryptutils import random_key
from modoboa.lib.form_utils import (
@@ -72,6 +74,14 @@ class GeneralParametersForm(param_forms.AdminParametersForm):
widget=forms.TextInput(attrs={"class": "form-control"})
)
default_password = forms.CharField(
label=ugettext_lazy("Default password"),
initial="password",
help_text=ugettext_lazy(
"Default password for automatically created accounts."),
validators=[validators.validate_length, validators.complexity]
)
# LDAP specific settings
ldap_sep = SeparatorField(label=ugettext_lazy("LDAP settings"))
@@ -19,8 +19,7 @@ from ... import signals
class Command(BaseCommand):
"""Command defintion."""
"""Command definition."""
help = "Load Modoboa initial data"
+2 -1
View File
@@ -125,7 +125,8 @@ class SettingsTestCase(ModoTestCase):
"limits-deflt_user_domains_limit": "0",
"core-ldap_search_filter": "(mail=%(user)s)",
"core-ldap_secured": "False",
"core-ldap_user_dn_template": ""
"core-ldap_user_dn_template": "",
"core-default_password": "Toto1000"
}
def test_get_settings(self):