mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-30 08:32:26 +00:00
serialisation des alias mail des users ayant activé l'adresse interne
This commit is contained in:
parent
5c433acd79
commit
04de9db6d4
4 changed files with 33 additions and 0 deletions
14
api/serializers.py
Normal file → Executable file
14
api/serializers.py
Normal file → Executable file
|
@ -608,6 +608,9 @@ class MailAliasSerializer(NamespacedHMSerializer):
|
||||||
fields = ('user', 'valeur', 'complete_mail')
|
fields = ('user', 'valeur', 'complete_mail')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# SERVICE REGEN
|
# SERVICE REGEN
|
||||||
|
|
||||||
|
|
||||||
|
@ -624,6 +627,17 @@ class ServiceRegenSerializer(NamespacedHMSerializer):
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'api_url': {'view_name': 'serviceregen-detail'}
|
'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
|
# DHCP
|
||||||
|
|
2
api/urls.py
Normal file → Executable file
2
api/urls.py
Normal file → Executable file
|
@ -98,6 +98,8 @@ router.register_viewset(r'users/mailalias', views.MailAliasViewSet)
|
||||||
router.register_viewset(r'services/regen', views.ServiceRegenViewSet, base_name='serviceregen')
|
router.register_viewset(r'services/regen', views.ServiceRegenViewSet, base_name='serviceregen')
|
||||||
# DHCP
|
# DHCP
|
||||||
router.register_view(r'dhcp/hostmacip', views.HostMacIpView),
|
router.register_view(r'dhcp/hostmacip', views.HostMacIpView),
|
||||||
|
# Mail config
|
||||||
|
router.register_view(r'mail/alias', views.UserMailAliasView),
|
||||||
# DNS
|
# DNS
|
||||||
router.register_view(r'dns/zones', views.DNSZonesView),
|
router.register_view(r'dns/zones', views.DNSZonesView),
|
||||||
# MAILING
|
# MAILING
|
||||||
|
|
11
api/views.py
Normal file → Executable file
11
api/views.py
Normal file → Executable file
|
@ -496,6 +496,17 @@ class ServiceRegenViewSet(viewsets.ModelViewSet):
|
||||||
return queryset
|
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
|
# DHCP
|
||||||
|
|
||||||
class HostMacIpView(generics.ListAPIView):
|
class HostMacIpView(generics.ListAPIView):
|
||||||
|
|
6
users/models.py
Normal file → Executable file
6
users/models.py
Normal file → Executable file
|
@ -684,6 +684,12 @@ class User(RevMixin, FieldPermissionModelMixin, AbstractBaseUser,
|
||||||
else:
|
else:
|
||||||
return str(self.mailalias_set.get(valeur=self.pseudo))
|
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):
|
def get_next_domain_name(self):
|
||||||
"""Look for an available name for a new interface for
|
"""Look for an available name for a new interface for
|
||||||
this user by trying "pseudo0", "pseudo1", "pseudo2", ...
|
this user by trying "pseudo0", "pseudo1", "pseudo2", ...
|
||||||
|
|
Loading…
Reference in a new issue