diff --git a/services/src/data_center/form_data_mgr.cpp b/services/src/data_center/form_data_mgr.cpp index 5f707a7231a7756eddd777571d04a76dbc5726cb..34685e48ed1f80c8379faf8010c1fdf3ff0b514b 100644 --- a/services/src/data_center/form_data_mgr.cpp +++ b/services/src/data_center/form_data_mgr.cpp @@ -220,7 +220,7 @@ static void initFormRecord(FormRecord &newRecord, const FormItemInfo &formInfo) newRecord.isThemeForm = formInfo.GetIsThemeForm(); newRecord.enableForm = formInfo.IsEnableForm(); newRecord.lockForm = formInfo.IsLockForm(); - newRecord.protectForm = formInfo.IsLockForm(); + newRecord.protectForm = formInfo.IsProtectForm(); } /** diff --git a/services/src/form_mgr/form_mgr_adapter.cpp b/services/src/form_mgr/form_mgr_adapter.cpp index e05af83a7aecf36a3c80851a03242b3f369d28c0..7072dc8b3e7048acdd78461910f1276c0bcd7c56 100644 --- a/services/src/form_mgr/form_mgr_adapter.cpp +++ b/services/src/form_mgr/form_mgr_adapter.cpp @@ -1523,9 +1523,9 @@ void FormMgrAdapter::SetFormEnableAndLockState(FormInfo &formInfo, FormItemInfo void FormMgrAdapter::SetLockFormStateOfFormItemInfo(FormInfo &formInfo, FormItemInfo &formConfigInfo) { auto formId = formConfigInfo.GetFormId(); - // exempt form are never unlocked if (formId > 0 && FormExemptLockMgr::GetInstance().IsExemptLock(formId)) { - formConfigInfo.SetLockForm(false); + // exempt form must belong to a locked application + formConfigInfo.SetLockForm(true); return; } @@ -1538,10 +1538,12 @@ void FormMgrAdapter::SetLockFormStateOfFormItemInfo(FormInfo &formInfo, FormItem FormDbCache::GetInstance().UpdateDBRecord(formId, record); } formConfigInfo.SetLockForm(isBundleProtect); + formConfigInfo.SetProtectForm(isBundleProtect); } else { bool isMultiAppForm = FormInfoMgr::GetInstance().IsMultiAppForm(formInfo) && formConfigInfo.GetSystemAppFlag(); formConfigInfo.SetLockForm(isBundleProtect && !isMultiAppForm); + formConfigInfo.SetProtectForm(isBundleProtect && !isMultiAppForm); } } @@ -4123,7 +4125,8 @@ ErrCode FormMgrAdapter::SwitchLockForms(const std::string &bundleName, int32_t u HILOG_INFO("userId:%{public}d, infosSize:%{public}zu, lock:%{public}d", userId, formInfos.size(), lock); for (auto iter = formInfos.begin(); iter != formInfos.end();) { - HILOG_DEBUG("bundleName:%{public}s, lockForm:%{public}d", iter->bundleName.c_str(), iter->lockForm); + HILOG_INFO("bundleName:%{public}s, lockForm:%{public}d, formId:%{public}" PRId64, + iter->bundleName.c_str(), iter->lockForm, iter->formId); bool isSystemApp = iter->isSystemApp; FormInfo formInfo; FormInfoMgr::GetInstance().GetFormsInfoByRecord(*iter, formInfo); diff --git a/test/unittest/fms_form_mgr_adapter_test/fms_form_mgr_adapter_test3.cpp b/test/unittest/fms_form_mgr_adapter_test/fms_form_mgr_adapter_test3.cpp index 0f1e3fbff0784a0b6d92d3f4c87c2c6306064282..366aaff2fbf5ca54e5344a53b71a35c30f15da77 100644 --- a/test/unittest/fms_form_mgr_adapter_test/fms_form_mgr_adapter_test3.cpp +++ b/test/unittest/fms_form_mgr_adapter_test/fms_form_mgr_adapter_test3.cpp @@ -1310,4 +1310,17 @@ HWTEST_F(FmsFormMgrAdapterTest3, FormMgrAdapter_CheckUpdateFormRecord, TestSize. EXPECT_EQ(RecycleStatus::NON_RECYCLABLE, formRecord.recycleStatus); GTEST_LOG_(INFO) << "FormMgrAdapter_CheckUpdateFormRecord end"; } + +/** + * @tc.name: FormMgrAdapter_SwitchLockForms + * @tc.desc: test SwitchLockForms function. + * @tc.type: FUNC + */ +HWTEST_F(FmsFormMgrAdapterTest3, FormMgrAdapter_SwitchLockForms, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "FormMgrAdapter_SwitchLockForms start"; + FormMgrAdapter formMgrAdapter; + EXPECT_EQ(ERR_OK, formMgrAdapter.SwitchLockForms("bundleName", 0, false)); + GTEST_LOG_(INFO) << "FormMgrAdapter_SwitchLockForms end"; +} } \ No newline at end of file