Merge pull request #2849 from ryanpetrello/fix-custom-cred-encryption-nit

allow encrypted fields in custom credentials to be empty

Reviewed-by: https://github.com/softwarefactory-project-zuul[bot]
This commit is contained in:
softwarefactory-project-zuul[bot] 2018-11-30 21:07:30 +00:00 committed by GitHub
commit 8005b47c14
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 0 deletions

View File

@ -383,6 +383,8 @@ class Credential(PasswordFieldsModel, CommonModelNameNotUnique, ResourceMixin):
super(Credential, self).save(*args, **kwargs)
def encrypt_field(self, field, ask):
if not hasattr(self, field):
return None
encrypted = encrypt_field(self, field, ask=ask)
if encrypted:
self.inputs[field] = encrypted

View File

@ -15,3 +15,24 @@ def test_unique_hash_with_unicode():
credential_type_id=42
)
assert cred.unique_hash(display=True) == u'Väult (id=🐉🐉🐉)'
def test_custom_cred_with_empty_encrypted_field():
ct = CredentialType(
name='My Custom Cred',
kind='custom',
inputs={
'fields': [{
'id': 'some_field',
'label': 'My Field',
'secret': True
}]
}
)
cred = Credential(
id=4,
name='Testing 1 2 3',
credential_type=ct,
inputs={}
)
assert cred.encrypt_field('some_field', None) is None