def from_model(cls, model, mask_secrets=True): if not KeyValuePairAPI.crypto_setup: KeyValuePairAPI._setup_crypto() doc = cls._from_model(model, mask_secrets=mask_secrets) if getattr(model, 'expire_timestamp', None) and model.expire_timestamp: doc['expire_timestamp'] = isotime.format(model.expire_timestamp, offset=False) encrypted = False secret = getattr(model, 'secret', False) if secret: encrypted = True if not mask_secrets and secret: doc['value'] = symmetric_decrypt(KeyValuePairAPI.crypto_key, model.value) encrypted = False scope = getattr(model, 'scope', SYSTEM_SCOPE) if scope: doc['scope'] = scope key = doc.get('name', None) if (scope == USER_SCOPE or scope == FULL_USER_SCOPE) and key: doc['user'] = UserKeyReference.get_user(key) doc['name'] = UserKeyReference.get_name(key) doc['encrypted'] = encrypted attrs = {attr: value for attr, value in six.iteritems(doc) if value is not None} return cls(**attrs)
def from_model(cls, model, mask_secrets=True): if not KeyValuePairAPI.crypto_setup: KeyValuePairAPI._setup_crypto() doc = cls._from_model(model, mask_secrets=mask_secrets) if getattr(model, "expire_timestamp", None) and model.expire_timestamp: doc["expire_timestamp"] = isotime.format(model.expire_timestamp, offset=False) encrypted = False secret = getattr(model, "secret", False) if secret: encrypted = True if not mask_secrets and secret: doc["value"] = symmetric_decrypt(KeyValuePairAPI.crypto_key, model.value) encrypted = False scope = getattr(model, "scope", SYSTEM_SCOPE) if scope: doc["scope"] = scope key = doc.get("name", None) if (scope == USER_SCOPE or scope == FULL_USER_SCOPE) and key: doc["user"] = UserKeyReference.get_user(key) doc["name"] = UserKeyReference.get_name(key) doc["encrypted"] = encrypted attrs = { attr: value for attr, value in six.iteritems(doc) if value is not None } return cls(**attrs)
def from_model(cls, model, mask_secrets=True): if not KeyValuePairAPI.crypto_setup: KeyValuePairAPI._setup_crypto() doc = cls._from_model(model, mask_secrets=mask_secrets) if getattr(model, 'expire_timestamp', None) and model.expire_timestamp: doc['expire_timestamp'] = isotime.format(model.expire_timestamp, offset=False) encrypted = False secret = getattr(model, 'secret', False) if secret: encrypted = True if not mask_secrets and secret: doc['value'] = symmetric_decrypt(KeyValuePairAPI.crypto_key, model.value) encrypted = False scope = getattr(model, 'scope', SYSTEM_SCOPE) if scope: doc['scope'] = scope key = doc.get('name', None) if scope == USER_SCOPE and key: doc['user'] = UserKeyReference.get_user(key) doc['name'] = UserKeyReference.get_name(key) doc['encrypted'] = encrypted attrs = {attr: value for attr, value in six.iteritems(doc) if value is not None} return cls(**attrs)