mirror of
https://github.com/ansible/awx.git
synced 2024-11-02 01:21:21 +03:00
fix a bug in team-based credential validation
when a credential is created with `team` in the payload, set the credential's `organization` *prior* to validation so that we don't miss organization-oriented validators (like the org + name + kind unique validation) see: #3303
This commit is contained in:
parent
d39dba9892
commit
e832a56506
@ -2117,6 +2117,10 @@ class CredentialSerializerCreate(CredentialSerializer):
|
||||
attrs.pop(field)
|
||||
if not owner_fields:
|
||||
raise serializers.ValidationError({"detail": _("Missing 'user', 'team', or 'organization'.")})
|
||||
|
||||
if attrs.get('team'):
|
||||
attrs['organization'] = attrs['team'].organization
|
||||
|
||||
try:
|
||||
return super(CredentialSerializerCreate, self).validate(attrs)
|
||||
except ValidationError as e:
|
||||
@ -2134,8 +2138,6 @@ class CredentialSerializerCreate(CredentialSerializer):
|
||||
def create(self, validated_data):
|
||||
user = validated_data.pop('user', None)
|
||||
team = validated_data.pop('team', None)
|
||||
if team:
|
||||
validated_data['organization'] = team.organization
|
||||
|
||||
# If our payload contains v1 credential fields, translate to the new
|
||||
# model
|
||||
|
Loading…
Reference in New Issue
Block a user