serializers.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from rest_framework import serializers
  2. from dcim.api.serializers import NestedDeviceSerializer
  3. from secrets.models import Secret, SecretRole
  4. #
  5. # SecretRoles
  6. #
  7. class SecretRoleSerializer(serializers.ModelSerializer):
  8. class Meta:
  9. model = SecretRole
  10. fields = ['id', 'name', 'slug']
  11. class NestedSecretRoleSerializer(serializers.ModelSerializer):
  12. url = serializers.HyperlinkedIdentityField(view_name='secrets-api:secretrole-detail')
  13. class Meta:
  14. model = SecretRole
  15. fields = ['id', 'url', 'name', 'slug']
  16. #
  17. # Secrets
  18. #
  19. class SecretSerializer(serializers.ModelSerializer):
  20. device = NestedDeviceSerializer()
  21. role = NestedSecretRoleSerializer()
  22. class Meta:
  23. model = Secret
  24. fields = ['id', 'device', 'role', 'name', 'plaintext', 'hash', 'created', 'last_updated']
  25. class WritableSecretSerializer(serializers.ModelSerializer):
  26. plaintext = serializers.CharField()
  27. class Meta:
  28. model = Secret
  29. fields = ['id', 'device', 'role', 'name', 'plaintext']