Merge pull request #3013 from modoboa/fix-message-limit

Fixed disabling message_limit
This commit is contained in:
Antoine Nguyen
2023-06-30 16:40:01 +02:00
committed by GitHub
3 changed files with 62 additions and 10 deletions
@@ -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
}
+42
View File
@@ -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])
+2 -1
View File
@@ -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()