improve a few permission-related errors for CredentialType update/delete

see: #6385
This commit is contained in:
Ryan Petrello
2017-05-31 15:48:34 -04:00
parent 5af5f50797
commit 462b2c6696
3 changed files with 12 additions and 8 deletions

View File

@@ -1873,12 +1873,14 @@ class CredentialTypeSerializer(BaseSerializer):
def validate(self, attrs):
if self.instance and self.instance.managed_by_tower:
raise serializers.ValidationError(
{"detail": _("Modifications not allowed for credential types managed by Tower")})
raise PermissionDenied(
detail=_("Modifications not allowed for credential types managed by Tower")
)
if self.instance and self.instance.credentials.exists():
if 'inputs' in attrs and attrs['inputs'] != self.instance.inputs:
raise serializers.ValidationError(
{"inputs": _("Modifications to inputs are not allowed for credential types that are in use")})
raise PermissionDenied(
detail= _("Modifications to inputs are not allowed for credential types that are in use")
)
fields = attrs.get('inputs', {}).get('fields', [])
for field in fields:
if field.get('ask_at_runtime', False):