From 04de9db6d4e278e461e19afbc11ba1f3543dcfba Mon Sep 17 00:00:00 2001 From: root Date: Sun, 15 Jul 2018 20:31:42 +0000 Subject: [PATCH] =?UTF-8?q?serialisation=20des=20alias=20mail=20des=20user?= =?UTF-8?q?s=20ayant=20activ=C3=A9=20l'adresse=20interne?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/serializers.py | 14 ++++++++++++++ api/urls.py | 2 ++ api/views.py | 11 +++++++++++ users/models.py | 6 ++++++ 4 files changed, 33 insertions(+) mode change 100644 => 100755 api/serializers.py mode change 100644 => 100755 api/urls.py mode change 100644 => 100755 api/views.py mode change 100644 => 100755 users/models.py diff --git a/api/serializers.py b/api/serializers.py old mode 100644 new mode 100755 index e5e92c24..c9825f32 --- a/api/serializers.py +++ b/api/serializers.py @@ -608,6 +608,9 @@ class MailAliasSerializer(NamespacedHMSerializer): fields = ('user', 'valeur', 'complete_mail') + + + # SERVICE REGEN @@ -624,6 +627,17 @@ class ServiceRegenSerializer(NamespacedHMSerializer): extra_kwargs = { 'api_url': {'view_name': 'serviceregen-detail'} } + +# Configuration mail + + +class UserMailAliasSerializer(NamespacedHMSerializer): + get_mail_aliases = MailAliasSerializer(read_only=True, many=True) + + class Meta: + model = users.User + fields = ('pseudo', 'get_mail_aliases') + # DHCP diff --git a/api/urls.py b/api/urls.py old mode 100644 new mode 100755 index 80194bf5..049d99bf --- a/api/urls.py +++ b/api/urls.py @@ -98,6 +98,8 @@ router.register_viewset(r'users/mailalias', views.MailAliasViewSet) router.register_viewset(r'services/regen', views.ServiceRegenViewSet, base_name='serviceregen') # DHCP router.register_view(r'dhcp/hostmacip', views.HostMacIpView), +# Mail config +router.register_view(r'mail/alias', views.UserMailAliasView), # DNS router.register_view(r'dns/zones', views.DNSZonesView), # MAILING diff --git a/api/views.py b/api/views.py old mode 100644 new mode 100755 index bd5c8f8b..4d5cae27 --- a/api/views.py +++ b/api/views.py @@ -496,6 +496,17 @@ class ServiceRegenViewSet(viewsets.ModelViewSet): return queryset +# Server mail config + + +class UserMailAliasView(generics.ListAPIView): + """Expose all the aliases of the users that activated the internal address + """ + + queryset = users.User.objects.filter(internal_address=True) + serializer_class = serializers.UserMailAliasSerializer + + # DHCP class HostMacIpView(generics.ListAPIView): diff --git a/users/models.py b/users/models.py old mode 100644 new mode 100755 index 91995d61..d6607623 --- a/users/models.py +++ b/users/models.py @@ -684,6 +684,12 @@ class User(RevMixin, FieldPermissionModelMixin, AbstractBaseUser, else: return str(self.mailalias_set.get(valeur=self.pseudo)) + @cached_property + def get_mail_aliases(self): + if self.internal_address: + return self.mailalias_set.all() + return None + def get_next_domain_name(self): """Look for an available name for a new interface for this user by trying "pseudo0", "pseudo1", "pseudo2", ...