API refactoring and new domain form fields.

This commit is contained in:
Antoine Nguyen
2020-10-21 19:20:23 +02:00
parent 00a112dbcb
commit ddbd7f6c19
4 changed files with 19 additions and 9 deletions
+10 -1
View File
@@ -13,6 +13,7 @@
:error-messages="formErrors['name']"
>
</v-text-field>
<v-select label="Type" :items="domainTypes" />
<v-text-field label="Quota"
v-model="domain.quota"
suffix="MB"
@@ -27,6 +28,13 @@
:error-messages="formErrors['default_mailbox_quota']"
>
</v-text-field>
<v-text-field label="Message sending limit"
v-model="domain.message_limit"
suffix="per day"
:error="formErrors['message_limit']"
:error-messages="formErrors['message_limit']"
>
</v-text-field>
<v-checkbox label="Enabled"
v-model="domain.enabled"
>
@@ -71,7 +79,8 @@ export default {
data () {
return {
formErrors: {},
domain: {}
domain: {},
domainTypes: ['Domain', 'Relay domain']
}
},
computed: {
+1 -1
View File
@@ -7,7 +7,7 @@ function setupAxios (token) {
}
function fetchUser (commit) {
return Vue.prototype.$axios.get('/accounts/me').then(resp => {
return Vue.prototype.$axios.get('/account/me').then(resp => {
commit('SET_AUTH_USER', { authUser: resp.data, isAuthenticated: true })
})
}
-7
View File
@@ -67,7 +67,6 @@ class AccountViewSet(viewsets.ModelViewSet):
"""Return a serializer."""
action_dict = {
"list": serializers.AccountSerializer,
"me": serializers.AccountSerializer,
"retrieve": serializers.AccountSerializer,
"password": serializers.AccountPasswordSerializer,
"reset_password": serializers.ResetPasswordSerializer,
@@ -87,12 +86,6 @@ class AccountViewSet(viewsets.ModelViewSet):
queryset = queryset.filter(mailbox__domain__name=domain)
return queryset
@action(methods=["get"], detail=False)
def me(self, request):
"""Return information about connected user."""
serializer = self.get_serializer(request.user)
return Response(serializer.data)
@action(methods=["put"], detail=True)
def password(self, request, pk=None):
"""Change account password."""
+8
View File
@@ -8,6 +8,8 @@ from django_otp.plugins.otp_totp.models import TOTPDevice
from rest_framework import permissions, response, viewsets
from rest_framework.decorators import action
from modoboa.admin import serializers as admin_serializers
from . import models
from . import serializers
@@ -20,6 +22,12 @@ class AccountViewSet(viewsets.ViewSet):
permission_classes = (permissions.IsAuthenticated, )
@action(methods=["get"], detail=False)
def me(self, request):
"""Return information about connected user."""
serializer = admin_serializers.AccountSerializer(request.user)
return response.Response(serializer.data)
@action(methods=["post"], detail=False, url_path="tfa/setup")
def tfa_setup(self, request):
"""Initiate TFA setup."""