"""Source API Views""" from rest_framework.serializers import ModelSerializer from rest_framework.viewsets import ModelViewSet from passbook.admin.forms.source import SOURCE_SERIALIZER_FIELDS from passbook.sources.ldap.models import LDAPPropertyMapping, LDAPSource class LDAPSourceSerializer(ModelSerializer): """LDAP Source Serializer""" class Meta: model = LDAPSource fields = SOURCE_SERIALIZER_FIELDS + [ 'server_uri', 'bind_cn', 'bind_password', 'start_tls', 'base_dn', 'additional_user_dn', 'additional_group_dn', 'user_object_filter', 'group_object_filter', 'user_group_membership_field', 'object_uniqueness_field', 'sync_groups', 'sync_parent_group', 'property_mappings', ] extra_kwargs = { 'bind_password': {'write_only': True} } class LDAPPropertyMappingSerializer(ModelSerializer): """LDAP PropertyMapping Serializer""" class Meta: model = LDAPPropertyMapping fields = ['pk', 'name', 'ldap_property', 'object_field'] class LDAPSourceViewSet(ModelViewSet): """LDAP Source Viewset""" queryset = LDAPSource.objects.all() serializer_class = LDAPSourceSerializer class LDAPPropertyMappingViewSet(ModelViewSet): """LDAP PropertyMapping Viewset""" queryset = LDAPPropertyMapping.objects.all() serializer_class = LDAPPropertyMappingSerializer