mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
@@ -61,7 +61,7 @@ class AccountFormGeneral(forms.ModelForm):
|
||||
model = User
|
||||
fields = (
|
||||
"username", "first_name", "last_name", "role", "is_active",
|
||||
"master_user"
|
||||
"master_user",
|
||||
)
|
||||
labels = {
|
||||
"is_active": ugettext_lazy("Enabled")
|
||||
@@ -190,6 +190,14 @@ class AccountFormGeneral(forms.ModelForm):
|
||||
return account
|
||||
|
||||
|
||||
class AccountProfileForm(forms.ModelForm):
|
||||
"""Form to edit account profile."""
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ("secondary_email", "phone_number", "language")
|
||||
|
||||
|
||||
class AccountFormMail(forms.Form, DynamicForm):
|
||||
"""Form to handle mail part."""
|
||||
|
||||
@@ -457,6 +465,9 @@ class AccountForm(TabForms):
|
||||
"formtpl": "admin/account_general_form.html",
|
||||
"cls": AccountFormGeneral,
|
||||
"new_args": [self.user], "mandatory": True},
|
||||
{"id": "profile", "title": _("Profile"),
|
||||
"formtpl": "admin/account_profile_form.html",
|
||||
"cls": AccountProfileForm},
|
||||
{"id": "mail",
|
||||
"title": _("Mail"), "formtpl": "admin/mailform.html",
|
||||
"cls": AccountFormMail,
|
||||
@@ -521,10 +532,11 @@ class AccountForm(TabForms):
|
||||
As forms interact with each other, it is simpler to make
|
||||
custom code to save them.
|
||||
"""
|
||||
self.forms[1]["instance"].save(self.user, self.account)
|
||||
if len(self.forms) <= 2:
|
||||
self.forms[1]["instance"].save()
|
||||
self.forms[2]["instance"].save(self.user, self.account)
|
||||
if len(self.forms) <= 3:
|
||||
return
|
||||
for f in self.forms[2:]:
|
||||
for f in self.forms[3:]:
|
||||
f["instance"].save()
|
||||
|
||||
def done(self):
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{% load form_tags %}
|
||||
|
||||
{% render_form form %}
|
||||
@@ -53,10 +53,16 @@ class AccountTestCase(ModoTestCase):
|
||||
alias__internal=True).exists()
|
||||
)
|
||||
|
||||
values.update({"username": "pouet@test.com"})
|
||||
values.update({
|
||||
"username": "pouet@test.com", "language": "en",
|
||||
"secondary_email": "homer@simpson.com",
|
||||
"phone_number": "123456789"
|
||||
})
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[account.id]), values
|
||||
)
|
||||
account.refresh_from_db()
|
||||
self.assertEqual(account.secondary_email, values["secondary_email"])
|
||||
mb = models.Mailbox.objects.get(pk=mb.pk)
|
||||
self.assertEqual(mb.full_address, "pouet@test.com")
|
||||
self.assertEqual(mb.quota_value.username, "pouet@test.com")
|
||||
@@ -87,7 +93,8 @@ class AccountTestCase(ModoTestCase):
|
||||
)
|
||||
values = {
|
||||
"username": "user@test.com", "role": "DomainAdmins",
|
||||
"is_active": True, "email": "user@test.com"
|
||||
"is_active": True, "email": "user@test.com",
|
||||
"language": "en"
|
||||
}
|
||||
account = User.objects.get(username="user@test.com")
|
||||
self.ajax_post(
|
||||
@@ -101,7 +108,8 @@ class AccountTestCase(ModoTestCase):
|
||||
"username": "user@test.com", "first_name": "Tester",
|
||||
"last_name": "Toto", "role": "SimpleUsers",
|
||||
"quota_act": True, "is_active": True, "email": "user@test.com",
|
||||
"senderaddress": "test@titi.com", "senderaddress_1": "toto@go.com"
|
||||
"senderaddress": "test@titi.com", "senderaddress_1": "toto@go.com",
|
||||
"language": "en"
|
||||
}
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[account.pk]), values)
|
||||
@@ -174,7 +182,8 @@ class AccountTestCase(ModoTestCase):
|
||||
account = User.objects.get(username=email)
|
||||
values = {
|
||||
"username": email, "role": "SimpleUsers", "quota_act": False,
|
||||
"is_active": True, "quota": value, "email": email
|
||||
"is_active": True, "quota": value, "email": email,
|
||||
"language": "en"
|
||||
}
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[account.id]),
|
||||
@@ -294,7 +303,7 @@ class PermissionsTestCase(ModoTestCase):
|
||||
self.values = {
|
||||
"username": self.user.username, "role": "DomainAdmins",
|
||||
"is_active": self.user.is_active, "email": "user@test.com",
|
||||
"quota_act": True
|
||||
"quota_act": True, "language": "en"
|
||||
}
|
||||
|
||||
def tearDown(self):
|
||||
@@ -342,7 +351,8 @@ class PermissionsTestCase(ModoTestCase):
|
||||
values = {
|
||||
"username": "admin@test.com", "first_name": "Admin",
|
||||
"password1": "", "password2": "",
|
||||
"quota": 10, "is_active": True, "email": "admin@test.com"
|
||||
"quota": 10, "is_active": True, "email": "admin@test.com",
|
||||
"language": "en"
|
||||
}
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[admin.id]),
|
||||
@@ -366,7 +376,7 @@ class PermissionsTestCase(ModoTestCase):
|
||||
values = {
|
||||
"username": self.reseller.username, "first_name": "Reseller",
|
||||
"password1": "", "password2": "",
|
||||
"is_active": True
|
||||
"is_active": True, "language": "en"
|
||||
}
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[self.reseller.pk]),
|
||||
|
||||
@@ -26,7 +26,8 @@ class AliasTestCase(ModoTestCase):
|
||||
values = dict(
|
||||
username="user@test.com", role=user.role,
|
||||
is_active=user.is_active, email="user@test.com",
|
||||
aliases="toto@test.com", aliases_1="titi@test.com"
|
||||
aliases="toto@test.com", aliases_1="titi@test.com",
|
||||
language="en"
|
||||
)
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
@@ -68,7 +69,7 @@ class AliasTestCase(ModoTestCase):
|
||||
values = dict(
|
||||
username="user@test.com", role=user.role,
|
||||
is_active=user.is_active, email="user@test.com",
|
||||
aliases="Toto@test.com"
|
||||
aliases="Toto@test.com", language="en"
|
||||
)
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
@@ -97,7 +98,8 @@ class AliasTestCase(ModoTestCase):
|
||||
user = User.objects.get(username="user@test.com")
|
||||
values = dict(
|
||||
username="user@test.com", role=user.role,
|
||||
is_active=user.is_active, email="user@test.com"
|
||||
is_active=user.is_active, email="user@test.com",
|
||||
language="en"
|
||||
)
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
@@ -252,7 +254,8 @@ class AliasTestCase(ModoTestCase):
|
||||
values = dict(
|
||||
username=user.username, first_name="Tester", last_name="Toto",
|
||||
password1="Toto1234", password2="Toto1234", role="SimpleUsers",
|
||||
quota_act=True, is_active=True, email=user.email
|
||||
quota_act=True, is_active=True, email=user.email,
|
||||
language="en"
|
||||
)
|
||||
self.ajax_post(reverse("admin:account_change", args=[user.id]), values)
|
||||
|
||||
@@ -277,7 +280,8 @@ class AliasTestCase(ModoTestCase):
|
||||
values = dict(
|
||||
username="user@test.com", role=user.role,
|
||||
is_active=user.is_active, email="user@test.com",
|
||||
aliases="toto@test.com", aliases_1="titi@test2.com"
|
||||
aliases="toto@test.com", aliases_1="titi@test2.com",
|
||||
language="en"
|
||||
)
|
||||
response = self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
|
||||
@@ -65,7 +65,8 @@ class MailboxOperationTestCase(ModoTestCase):
|
||||
address="admin", domain__name="test.com")
|
||||
values = {
|
||||
"username": "admin2@test.com", "role": "DomainAdmins",
|
||||
"is_active": True, "email": "admin2@test.com"
|
||||
"is_active": True, "email": "admin2@test.com",
|
||||
"language": "en"
|
||||
}
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[mb.user.pk]), values
|
||||
|
||||
@@ -178,7 +178,8 @@ def editaccount(request, pk):
|
||||
raise PermDeniedException
|
||||
mb = account.mailbox if hasattr(account, "mailbox") else None
|
||||
|
||||
instances = dict(general=account, mail=mb, perms=account)
|
||||
instances = dict(
|
||||
general=account, profile=account, mail=mb, perms=account)
|
||||
results = signals.get_account_form_instances.send(
|
||||
sender="editaccount", user=request.user, account=account)
|
||||
for result in results:
|
||||
|
||||
@@ -92,7 +92,7 @@ class DomainLimitsTestCase(lib_tests.ModoTestCase):
|
||||
"username": user.username, "role": user.role,
|
||||
"is_active": user.is_active, "email": user.email,
|
||||
"quota_act": True, "domains": "test2.com",
|
||||
"domains_1": "test.com"
|
||||
"domains_1": "test.com", "language": "en"
|
||||
}
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
@@ -146,7 +146,8 @@ class DomainLimitsTestCase(lib_tests.ModoTestCase):
|
||||
"username": user.username, "role": user.role,
|
||||
"is_active": user.is_active, "email": user.email,
|
||||
"quota_act": True,
|
||||
"aliases": "alias@test.com", "aliases_1": "alias1@test.com"
|
||||
"aliases": "alias@test.com", "aliases_1": "alias1@test.com",
|
||||
"language": "en"
|
||||
}
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
|
||||
@@ -175,7 +175,8 @@ class DomainAdminTestCase(ResourceTestCase):
|
||||
values = dict(
|
||||
username=user.username, role=user.role,
|
||||
is_active=user.is_active, email=user.email, quota_act=True,
|
||||
aliases="alias1@test.com", aliases_1="alias2@test.com"
|
||||
aliases="alias1@test.com", aliases_1="alias2@test.com",
|
||||
language="en"
|
||||
)
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
@@ -262,7 +263,7 @@ class ResellerTestCase(ResourceTestCase):
|
||||
values = {
|
||||
"username": user.username, "role": "DomainAdmins",
|
||||
"quota_act": True, "is_active": user.is_active,
|
||||
"email": user.email
|
||||
"email": user.email, "language": "en"
|
||||
}
|
||||
resp = self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
@@ -362,7 +363,8 @@ class ResellerTestCase(ResourceTestCase):
|
||||
values = {
|
||||
'username': user.username, 'role': user.role, 'quota_act': True,
|
||||
'is_active': user.is_active, 'email': user.email,
|
||||
'mailboxes_limit': 1, 'mailbox_aliases_limit': 2
|
||||
'mailboxes_limit': 1, 'mailbox_aliases_limit': 2,
|
||||
'language': 'en'
|
||||
}
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
@@ -389,7 +391,8 @@ class ResellerTestCase(ResourceTestCase):
|
||||
values = {
|
||||
'username': user.username, 'role': user.role, 'quota_act': True,
|
||||
'is_active': user.is_active, 'email': user.email,
|
||||
'mailboxes_limit': 1, 'mailbox_aliases_limit': 2
|
||||
'mailboxes_limit': 1, 'mailbox_aliases_limit': 2,
|
||||
'language': 'en'
|
||||
}
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
@@ -421,7 +424,8 @@ class ResellerTestCase(ResourceTestCase):
|
||||
values = {
|
||||
'username': user.username, 'role': user.role, 'quota_act': True,
|
||||
'is_active': user.is_active, 'email': user.email,
|
||||
'mailboxes_limit': 1, 'mailbox_aliases_limit': 2
|
||||
'mailboxes_limit': 1, 'mailbox_aliases_limit': 2,
|
||||
'language': 'en'
|
||||
}
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
@@ -436,6 +440,7 @@ class ResellerTestCase(ResourceTestCase):
|
||||
'username': user.username, 'role': 'SimpleUsers',
|
||||
'quota_act': True,
|
||||
'is_active': user.is_active, 'email': user.email,
|
||||
'language': 'en',
|
||||
}
|
||||
self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
@@ -453,7 +458,8 @@ class ResellerTestCase(ResourceTestCase):
|
||||
values = {
|
||||
'username': user.username, 'role': user.role, 'quota_act': True,
|
||||
'is_active': user.is_active, 'email': user.email,
|
||||
'mailboxes_limit': 2, 'mailbox_aliases_limit': 3
|
||||
'mailboxes_limit': 2, 'mailbox_aliases_limit': 3,
|
||||
'language': 'en'
|
||||
}
|
||||
resp = self.ajax_post(
|
||||
reverse("admin:account_change", args=[user.id]),
|
||||
|
||||
Reference in New Issue
Block a user