mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-19 05:58:34 +02:00
Merge pull request #3013 from modoboa/fix-message-limit
Fixed disabling message_limit
This commit is contained in:
@@ -24,15 +24,21 @@
|
||||
/>
|
||||
</validation-provider>
|
||||
<label class="m-label">{{ $gettext('Daily message sending limit') }}</label>
|
||||
<v-text-field
|
||||
v-model="form.mailbox.message_limit"
|
||||
:placeholder="'Leave empty for no limit' | translate"
|
||||
:hint="'Number of messages this mailbox can send per day. Leave empty for no limit.' | translate"
|
||||
persistent-hint
|
||||
outlined
|
||||
dense
|
||||
@input="update"
|
||||
/>
|
||||
<validation-provider
|
||||
v-slot="{ errors }"
|
||||
rules="numeric"
|
||||
>
|
||||
<v-text-field
|
||||
v-model="form.mailbox.message_limit"
|
||||
:placeholder="'Leave empty for no limit' | translate"
|
||||
:hint="'Number of messages this mailbox can send per day. Leave empty for no limit.' | translate"
|
||||
persistent-hint
|
||||
outlined
|
||||
dense
|
||||
:error-messages="errors"
|
||||
@input="update"
|
||||
/>
|
||||
</validation-provider>
|
||||
</validation-observer>
|
||||
</template>
|
||||
|
||||
@@ -94,6 +100,9 @@ export default {
|
||||
if (this.form.role === 'SimpleUsers') {
|
||||
this.$set(this.form.mailbox, 'full_address', this.form.username)
|
||||
}
|
||||
if (newValue.mailbox.message_limit === '') {
|
||||
this.form.mailbox.message_limit = null
|
||||
}
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
|
||||
@@ -258,6 +258,48 @@ class AccountViewSetTestCase(ModoAPITestCase):
|
||||
resp = self.client.patch(url, data, format="json")
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
|
||||
def test_message_limit_update(self):
|
||||
account = core_models.User.objects.get(username="user@test.com")
|
||||
url = reverse("v2:account-detail", args=[account.pk])
|
||||
data = {
|
||||
"username": "user@test.com",
|
||||
"role": "SimpleUsers",
|
||||
"password": "Toto12345",
|
||||
"mailbox": {
|
||||
"message_limit": 10
|
||||
}
|
||||
}
|
||||
resp = self.client.patch(url, data, format="json")
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
account.refresh_from_db()
|
||||
self.assertEqual(account.mailbox.message_limit, 10)
|
||||
|
||||
data = {
|
||||
"username": "user@test.com",
|
||||
"role": "SimpleUsers",
|
||||
"password": "Toto12345",
|
||||
"mailbox": {
|
||||
"quota": 10
|
||||
}
|
||||
}
|
||||
resp = self.client.patch(url, data, format="json")
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
account.refresh_from_db()
|
||||
self.assertEqual(account.mailbox.message_limit, 10)
|
||||
|
||||
data = {
|
||||
"username": "user@test.com",
|
||||
"role": "SimpleUsers",
|
||||
"password": "Toto12345",
|
||||
"mailbox": {
|
||||
"message_limit": None
|
||||
}
|
||||
}
|
||||
resp = self.client.patch(url, data, format="json")
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
account.refresh_from_db()
|
||||
self.assertEqual(account.mailbox.message_limit, None)
|
||||
|
||||
def test_update_admin(self):
|
||||
account = core_models.User.objects.get(username="admin")
|
||||
url = reverse("v2:account-detail", args=[account.pk])
|
||||
|
||||
@@ -322,7 +322,8 @@ class Mailbox(mixins.MessageLimitMixin, AdminObject):
|
||||
not user.userobjectlimit_set.get(name="quota").max_value
|
||||
)
|
||||
self.set_quota(values["quota"], override_rules)
|
||||
self.message_limit = values.get("message_limit")
|
||||
if "message_limit" in values:
|
||||
self.message_limit = values["message_limit"]
|
||||
if newaddress:
|
||||
self.rename(local_part, domain)
|
||||
self.save()
|
||||
|
||||
Reference in New Issue
Block a user