From 072daeea35c1cb38acfe0da37a636dec614a365c Mon Sep 17 00:00:00 2001
From: pycook <pycook@126.com>
Date: Sun, 29 Oct 2023 11:42:07 +0800
Subject: [PATCH] Dev api password (#244)

* fix: delete CI password data

* fix(api): update CI password to flush cache
---
 cmdb-api/api/lib/cmdb/ci.py    | 3 +--
 cmdb-api/api/lib/cmdb/value.py | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/cmdb-api/api/lib/cmdb/ci.py b/cmdb-api/api/lib/cmdb/ci.py
index f1ef414..9920930 100644
--- a/cmdb-api/api/lib/cmdb/ci.py
+++ b/cmdb-api/api/lib/cmdb/ci.py
@@ -723,7 +723,6 @@ class CIManager(object):
     def save_password(cls, ci_id, attr_id, value, record_id, type_id):
         changed = None
         encrypt_value = None
-        
         value_table = ValueTypeMap.table[ValueTypeEnum.PASSWORD]
         if current_app.config.get('SECRETS_ENGINE') == 'inner':
             if value:
@@ -762,7 +761,7 @@ class CIManager(object):
                     current_app.logger.warning('delete password to vault failed: {}'.format(e))
 
         if changed is not None:
-            AttributeValueManager.write_change2(changed, record_id)
+            return AttributeValueManager.write_change2(changed, record_id)
 
     @classmethod
     def load_password(cls, ci_id, attr_id):
diff --git a/cmdb-api/api/lib/cmdb/value.py b/cmdb-api/api/lib/cmdb/value.py
index 3da3fbb..7a2e6f4 100644
--- a/cmdb-api/api/lib/cmdb/value.py
+++ b/cmdb-api/api/lib/cmdb/value.py
@@ -69,7 +69,7 @@ class AttributeValueManager(object):
             if attr.is_list:
                 res[field_name] = [ValueTypeMap.serialize[attr.value_type](i.value) for i in rs]
             elif attr.is_password and rs:
-                res[field_name] = '******'
+                res[field_name] = '******' if rs[0].value else ''
             else:
                 res[field_name] = ValueTypeMap.serialize[attr.value_type](rs[0].value) if rs else None