allow encrypted fields in custom credentials to be empty

This commit is contained in:
Ryan Petrello 2018-11-30 14:01:45 -05:00
parent 28733800c4
commit 7252883094
No known key found for this signature in database
GPG Key ID: F2AA5F2122351777
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