mirror of
https://github.com/ansible/awx.git
synced 2026-02-18 11:40:05 -03:30
AC-637 Credential now requires scm_key_unlock when saving encrypted ssh_key_data.
This commit is contained in:
@@ -93,6 +93,7 @@ class ChoiceField(fields.ChoiceField):
|
||||
# ModelSerializer.
|
||||
serializers.ChoiceField = ChoiceField
|
||||
|
||||
|
||||
class BaseSerializer(serializers.ModelSerializer):
|
||||
|
||||
# add the URL and related resources
|
||||
@@ -184,10 +185,6 @@ class BaseSerializer(serializers.ModelSerializer):
|
||||
else:
|
||||
return obj.active
|
||||
|
||||
def validate_description(self, attrs, source):
|
||||
# Description should always be empty string, never null.
|
||||
attrs[source] = attrs.get(source, None) or ''
|
||||
return attrs
|
||||
|
||||
class UserSerializer(BaseSerializer):
|
||||
|
||||
@@ -275,6 +272,7 @@ class UserSerializer(BaseSerializer):
|
||||
def validate_is_superuser(self, attrs, source):
|
||||
return self._validate_ldap_managed_field(attrs, source)
|
||||
|
||||
|
||||
class OrganizationSerializer(BaseSerializer):
|
||||
|
||||
class Meta:
|
||||
@@ -296,6 +294,7 @@ class OrganizationSerializer(BaseSerializer):
|
||||
))
|
||||
return res
|
||||
|
||||
|
||||
class ProjectSerializer(BaseSerializer):
|
||||
|
||||
playbooks = serializers.Field(source='playbooks', help_text='Array of playbooks available within this project.')
|
||||
@@ -415,6 +414,7 @@ class ProjectSerializer(BaseSerializer):
|
||||
|
||||
# FIXME: Validate combination of SCM URL and credential!
|
||||
|
||||
|
||||
class ProjectPlaybooksSerializer(ProjectSerializer):
|
||||
|
||||
class Meta:
|
||||
@@ -425,6 +425,7 @@ class ProjectPlaybooksSerializer(ProjectSerializer):
|
||||
ret = super(ProjectPlaybooksSerializer, self).to_native(obj)
|
||||
return ret.get('playbooks', [])
|
||||
|
||||
|
||||
class ProjectUpdateSerializer(BaseSerializer):
|
||||
|
||||
class Meta:
|
||||
@@ -443,6 +444,7 @@ class ProjectUpdateSerializer(BaseSerializer):
|
||||
))
|
||||
return res
|
||||
|
||||
|
||||
class BaseSerializerWithVariables(BaseSerializer):
|
||||
|
||||
def validate_variables(self, attrs, source):
|
||||
@@ -455,6 +457,7 @@ class BaseSerializerWithVariables(BaseSerializer):
|
||||
raise serializers.ValidationError('Must be valid JSON or YAML')
|
||||
return attrs
|
||||
|
||||
|
||||
class InventorySerializer(BaseSerializerWithVariables):
|
||||
|
||||
class Meta:
|
||||
@@ -483,6 +486,7 @@ class InventorySerializer(BaseSerializerWithVariables):
|
||||
))
|
||||
return res
|
||||
|
||||
|
||||
class HostSerializer(BaseSerializerWithVariables):
|
||||
|
||||
class Meta:
|
||||
@@ -613,6 +617,7 @@ class GroupSerializer(BaseSerializerWithVariables):
|
||||
raise serializers.ValidationError('Invalid group name')
|
||||
return attrs
|
||||
|
||||
|
||||
class GroupTreeSerializer(GroupSerializer):
|
||||
|
||||
children = serializers.SerializerMethodField('get_children')
|
||||
@@ -630,6 +635,7 @@ class GroupTreeSerializer(GroupSerializer):
|
||||
children_qs = obj.children.filter(active=True)
|
||||
return GroupTreeSerializer(children_qs, many=True).data
|
||||
|
||||
|
||||
class BaseVariableDataSerializer(BaseSerializer):
|
||||
|
||||
def to_native(self, obj):
|
||||
@@ -645,24 +651,28 @@ class BaseVariableDataSerializer(BaseSerializer):
|
||||
data = {'variables': json.dumps(data)}
|
||||
return super(BaseVariableDataSerializer, self).from_native(data, files)
|
||||
|
||||
|
||||
class InventoryVariableDataSerializer(BaseVariableDataSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Inventory
|
||||
fields = ('variables',)
|
||||
|
||||
|
||||
class HostVariableDataSerializer(BaseVariableDataSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Host
|
||||
fields = ('variables',)
|
||||
|
||||
|
||||
class GroupVariableDataSerializer(BaseVariableDataSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Group
|
||||
fields = ('variables',)
|
||||
|
||||
|
||||
class InventorySourceSerializer(BaseSerializer):
|
||||
|
||||
#source_password = serializers.WritableField(required=False, default='')
|
||||
@@ -732,6 +742,7 @@ class InventorySourceSerializer(BaseSerializer):
|
||||
# FIXME
|
||||
return attrs
|
||||
|
||||
|
||||
class InventoryUpdateSerializer(BaseSerializer):
|
||||
|
||||
class Meta:
|
||||
@@ -751,6 +762,7 @@ class InventoryUpdateSerializer(BaseSerializer):
|
||||
))
|
||||
return res
|
||||
|
||||
|
||||
class TeamSerializer(BaseSerializer):
|
||||
|
||||
class Meta:
|
||||
@@ -770,6 +782,7 @@ class TeamSerializer(BaseSerializer):
|
||||
))
|
||||
return res
|
||||
|
||||
|
||||
class PermissionSerializer(BaseSerializer):
|
||||
|
||||
class Meta:
|
||||
@@ -791,6 +804,7 @@ class PermissionSerializer(BaseSerializer):
|
||||
res['inventory'] = reverse('api:inventory_detail', args=(obj.inventory.pk,))
|
||||
return res
|
||||
|
||||
|
||||
def validate(self, attrs):
|
||||
# Can only set either user or team.
|
||||
if attrs['user'] and attrs['team']:
|
||||
@@ -806,6 +820,7 @@ class PermissionSerializer(BaseSerializer):
|
||||
'assigning deployment permissions')
|
||||
return attrs
|
||||
|
||||
|
||||
class CredentialSerializer(BaseSerializer):
|
||||
|
||||
# FIXME: may want to make some of these filtered based on user accessing
|
||||
@@ -847,6 +862,7 @@ class CredentialSerializer(BaseSerializer):
|
||||
res['team'] = reverse('api:team_detail', args=(obj.team.pk,))
|
||||
return res
|
||||
|
||||
|
||||
class JobTemplateSerializer(BaseSerializer):
|
||||
|
||||
class Meta:
|
||||
@@ -881,6 +897,7 @@ class JobTemplateSerializer(BaseSerializer):
|
||||
raise serializers.ValidationError('Playbook not found for project')
|
||||
return attrs
|
||||
|
||||
|
||||
class JobSerializer(BaseSerializer):
|
||||
|
||||
passwords_needed_to_start = serializers.Field(source='passwords_needed_to_start')
|
||||
@@ -943,6 +960,7 @@ class JobSerializer(BaseSerializer):
|
||||
data.setdefault('job_tags', job_template.job_tags)
|
||||
return super(JobSerializer, self).from_native(data, files)
|
||||
|
||||
|
||||
class JobHostSummarySerializer(BaseSerializer):
|
||||
|
||||
class Meta:
|
||||
@@ -972,6 +990,7 @@ class JobHostSummarySerializer(BaseSerializer):
|
||||
pass
|
||||
return d
|
||||
|
||||
|
||||
class JobEventSerializer(BaseSerializer):
|
||||
|
||||
event_display = serializers.Field(source='get_event_display2')
|
||||
@@ -1013,6 +1032,7 @@ class JobEventSerializer(BaseSerializer):
|
||||
pass
|
||||
return d
|
||||
|
||||
|
||||
class AuthTokenSerializer(serializers.Serializer):
|
||||
|
||||
username = serializers.CharField()
|
||||
|
||||
Reference in New Issue
Block a user