From 087e77cceab6af31b154ed3eb87d1296235bb8e5 Mon Sep 17 00:00:00 2001 From: Yunjin Lee Date: Fri, 23 Dec 2016 16:34:22 +0900 Subject: [PATCH] Add API to set/unset privilege disable list - Add API to set/unset privilege disable list - Add API to get disabled privilege list of certain user - Remove compile warning : invalid multibyte sequence Change-Id: Ib1a07e2adbb23430dde8aec7e3fe4b165a1288cd Signed-off-by: Yunjin Lee --- capi/include/privilege_db_manager.h | 1 + capi/include/privilege_info.h | 13 +- capi/include/privilege_manager.h | 28 +++- capi/res/dbspace/mobile_privacy_whitelist.csv | 1 - capi/src/privilege_db_manager.c | 20 ++- capi/src/privilege_info.c | 10 ++ capi/src/privilege_manager.c | 20 +++ test/tc-common.c | 14 ++ test/tc-common.h | 1 + test/tc-privilege-black-list.c | 205 +++++++++++++++++++++++++- test/tc-privilege-db-manager.c | 44 ------ test/tc-privilege-info.c | 28 ++-- 12 files changed, 313 insertions(+), 72 deletions(-) diff --git a/capi/include/privilege_db_manager.h b/capi/include/privilege_db_manager.h index 5b92b12..53c514b 100755 --- a/capi/include/privilege_db_manager.h +++ b/capi/include/privilege_db_manager.h @@ -63,6 +63,7 @@ typedef enum { } privilege_db_manager_privilege_level_e; typedef enum { + PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_NONE = -1, /* placeholder */ PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT = 0, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE = 1 } privilege_db_manager_package_type_e; diff --git a/capi/include/privilege_info.h b/capi/include/privilege_info.h index 9b5e765..9197cb9 100644 --- a/capi/include/privilege_info.h +++ b/capi/include/privilege_info.h @@ -206,7 +206,7 @@ EXPORT_API int privilege_info_get_privilege_list_by_privacy(const char *privacy, EXPORT_API int privilege_info_get_privacy_by_privilege(const char *privilege, char** privacy); /** - * @brief Gets the list of privilges marked as black list. + * @brief Gets the list of privilges marked as dpm black list. * @remarks @a privilege_list must be released with g_list_free() by you. * @param [in] uid The UID * @param [in] package_type The privilege_manager_package_type_e @@ -218,6 +218,17 @@ EXPORT_API int privilege_info_get_privacy_by_privilege(const char *privilege, ch */ EXPORT_API int privilege_info_get_black_list(int uid, privilege_manager_package_type_e package_type, GList **privilege_list); +/** + * @brief Gets the list of privilges marked as mdm black list for the given uid. + * @remarks @a privilege_list must be released with g_list_free() by you. + * @param [in] uid The UID + * @param [out] privilege_list The list for privileges marked as black list + * @return 0 on success, otherwise a nonzero error value. + * @retval #PRVMGR_ERR_NONE Successful + * @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error + */ +EXPORT_API int privilege_info_get_mdm_black_list(uid_t uid, GList **privilege_list); + #ifdef __cplusplus } #endif diff --git a/capi/include/privilege_manager.h b/capi/include/privilege_manager.h index f616a70..b4f53f0 100755 --- a/capi/include/privilege_manager.h +++ b/capi/include/privilege_manager.h @@ -105,7 +105,7 @@ EXPORT_API int privilege_manager_verify_privilege(uid_t uid, const char* api_ver EXPORT_API int privilege_manager_get_mapped_privilege_list(const char* api_version, privilege_manager_package_type_e package_type, GList* privilege_list, GList** mapped_privilege_list); /** - * @brief set privilege black list accoring to the given uid and privilege list + * @brief set dpm privilege black list accoring to the given uid and privilege list * @remarks @a privilege_list must be released by you * @param [in] uid The uid * @param [in] package_type The privilege_manager_pacakge_type_e @@ -118,7 +118,7 @@ EXPORT_API int privilege_manager_get_mapped_privilege_list(const char* api_versi EXPORT_API int privilege_manager_set_black_list(int uid, privilege_manager_package_type_e package_type, GList* privilege_list); /** - * @brief unset privilege black list accoring to the given uid and privilege list + * @brief unset dpm privilege black list accoring to the given uid and privilege list * @remarks @a privilege_list must be released by you * @param [in] uid The uid * @param [in] package_type The privilege_manager_pacakge_type_e @@ -131,6 +131,30 @@ EXPORT_API int privilege_manager_set_black_list(int uid, privilege_manager_packa EXPORT_API int privilege_manager_unset_black_list(int uid, privilege_manager_package_type_e package_type, GList* privilege_list); /** + * @brief set mdm privilege black list accoring to the given uid and privilege list + * @remarks @a privilege_list must be released by you + * @param [in] uid The uid + * @param [in] privilege_list The privilege list to set as black list + * @retrun 0 on success, otherwise a nonzero error value + * @retval #PRVMGR_ERR_NONE Successful + * @retval #PRVMGR_ERR_INVALID_PARAMETER Invalid parameter + * @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error + */ +EXPORT_API int privilege_manager_set_mdm_black_list(uid_t uid, GList* privilege_list); + +/** + * @brief unset mdm privilege black list accoring to the given uid and privilege list + * @remarks @a privilege_list must be released by you + * @param [in] uid The uid + * @param [in] privilege_list The privilege list to unset from black list + * @retrun 0 on success, otherwise a nonzero error value + * @retval #PRVMGR_ERR_NONE Successful + * @retval #PRVMGR_ERR_INVALID_PARAMETER Invalid parameter + * @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error + */ +EXPORT_API int privilege_manager_unset_mdm_black_list(uid_t uid, GList* privilege_list); + +/** * @brief verify metadata level in the metadata list. * @remarks @a metadata_list must be released with free() by you. * @remarks @a error_messsage must be released with free() by you. diff --git a/capi/res/dbspace/mobile_privacy_whitelist.csv b/capi/res/dbspace/mobile_privacy_whitelist.csv index 886d372..29d96a2 100644 --- a/capi/res/dbspace/mobile_privacy_whitelist.csv +++ b/capi/res/dbspace/mobile_privacy_whitelist.csv @@ -83,4 +83,3 @@ ug-bluetooth-efl,*-location,0 ug-setting-mobileap-efl,*-location,0 ug-setting-wifidirect-efl,*-location,0 wifi-efl-ug,*-location,0 -org.tizen.memo,*-location,0 diff --git a/capi/src/privilege_db_manager.c b/capi/src/privilege_db_manager.c index 87704ee..661d81d 100755 --- a/capi/src/privilege_db_manager.c +++ b/capi/src/privilege_db_manager.c @@ -90,8 +90,6 @@ int __initialize_db(privilege_db_type_e type, sqlite3 ** db, privilege_db_manage return PRIVILEGE_DB_MANAGER_ERR_INVALID_TYPE; } - _LOGD("DB PATH = %s", db_path); - if (access(db_path, F_OK) == -1 && errno == ENOENT) return PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY; @@ -817,7 +815,11 @@ int privilege_db_manager_get_black_list(privilege_manager_policy_type_e policy_t if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) return ret; _LOGD("Get privilege_name from %s where uid = %d, package_type = %d", __get_policy_table(policy_type), uid, package_type); - char* sql = sqlite3_mprintf("select privilege_name from %Q where uid=%d and package_type=%d", __get_policy_table(policy_type), uid, package_type); + char* sql = NULL; + if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE) + sql = sqlite3_mprintf("select privilege_name from %Q where (uid=%d or uid=%d)", __get_policy_table(policy_type), uid, GLOBAL_USER); + else if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT) + sql = sqlite3_mprintf("select privilege_name from %Q where uid=%d and package_type=%d", __get_policy_table(policy_type), uid, package_type); TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { @@ -858,7 +860,11 @@ int privilege_db_manager_set_black_list(privilege_manager_policy_type_e policy_t for (l = privilege_list; l != NULL; l = l->next) { char *privilege_name = (char *)l->data; _LOGD("insert into %s uid = %d, package_type = %d, privilege_name = %s", __get_policy_table(policy_type), uid, package_type, privilege_name); - char* sql = sqlite3_mprintf("insert or ignore into %Q (uid, package_type, privilege_name) values (%d, %d, %Q)", __get_policy_table(policy_type), uid, package_type, privilege_name); + char* sql = NULL; + if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE) + sql = sqlite3_mprintf("insert or ignore into %Q (uid, privilege_name) values (%d, %Q)", __get_policy_table(policy_type), uid, privilege_name); + else if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT) + sql = sqlite3_mprintf("insert or ignore into %Q (uid, package_type, privilege_name) values (%d, %d, %Q)", __get_policy_table(policy_type), uid, package_type, privilege_name); TryReturn(sql != NULL, sqlite3_exec(db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { @@ -895,7 +901,11 @@ int privilege_db_manager_unset_black_list(privilege_manager_policy_type_e policy for (l = privilege_list; l != NULL; l = l->next) { char *privilege_name = (char *)l->data; _LOGD("delete from %s where uid = %d, package_type = %d, privilege_name = %s", __get_policy_table(policy_type), uid, package_type, privilege_name); - char* sql = sqlite3_mprintf("delete from %Q where uid=%d and package_type=%d and privilege_name=%Q", __get_policy_table(policy_type), uid, package_type, privilege_name); + char* sql = NULL; + if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE) + sql = sqlite3_mprintf("delete from %Q where uid=%d and privilege_name=%Q", __get_policy_table(policy_type), uid, privilege_name); + else if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT) + sql = sqlite3_mprintf("delete from %Q where uid=%d and package_type=%d and privilege_name=%Q", __get_policy_table(policy_type), uid, package_type, privilege_name); TryReturn(sql != NULL, sqlite3_exec(db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed"); ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL); if (ret != SQLITE_OK) { diff --git a/capi/src/privilege_info.c b/capi/src/privilege_info.c index 386ebc3..2cf3d3f 100755 --- a/capi/src/privilege_info.c +++ b/capi/src/privilege_info.c @@ -705,3 +705,13 @@ int privilege_info_get_black_list(int uid, privilege_manager_package_type_e pack ret = PRVMGR_ERR_INTERNAL_ERROR; return ret; } + +int privilege_info_get_mdm_black_list(uid_t uid, GList **privilege_list) +{ + int ret = privilege_db_manager_get_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE, uid, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_NONE, privilege_list); + if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE) + ret = PRVMGR_ERR_NONE; + else + ret = PRVMGR_ERR_INTERNAL_ERROR; + return ret; +} diff --git a/capi/src/privilege_manager.c b/capi/src/privilege_manager.c index e1b93c1..deb1720 100755 --- a/capi/src/privilege_manager.c +++ b/capi/src/privilege_manager.c @@ -507,6 +507,26 @@ int privilege_manager_unset_black_list(int uid, privilege_manager_package_type_e return ret; } +int privilege_manager_set_mdm_black_list(uid_t uid, GList *privilege_list) +{ + TryReturn(privilege_list != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL."); + + int ret = privilege_db_manager_set_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE, uid, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_NONE, privilege_list); + if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) + ret = PRVMGR_ERR_INTERNAL_ERROR; + return ret; +} + +int privilege_manager_unset_mdm_black_list(uid_t uid, GList *privilege_list) +{ + TryReturn(privilege_list != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL."); + + int ret = privilege_db_manager_unset_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE, uid, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_NONE, privilege_list); + if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) + ret = PRVMGR_ERR_INTERNAL_ERROR; + return ret; +} + int privilege_manager_verify_metadata(const char* api_version, GList *metadata_list, privilege_manager_visibility_e visibility, char **error_message) { return privilege_manager_verify_privilege(0, api_version, PRVMGR_PACKAGE_TYPE_METADATA, metadata_list, visibility, error_message); diff --git a/test/tc-common.c b/test/tc-common.c index 2fbed51..6ee521f 100755 --- a/test/tc-common.c +++ b/test/tc-common.c @@ -81,6 +81,20 @@ char* __get_result_string(char type, int ret) return "FAIL"; } +char* __get_privilege_type_string(privilege_manager_privilege_type_e type) +{ + switch (type) { + case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL: + return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL"; + case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY: + return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY"; + case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST: + return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY"; + default: + return "None of privilege_manager_privilege_type_e"; + } +} + /* shows error_message returned by privilege_manager_verify_privilege() */ void __print_error_message(char *error_message) { diff --git a/test/tc-common.h b/test/tc-common.h index bfe1dff..e8f665f 100755 --- a/test/tc-common.h +++ b/test/tc-common.h @@ -47,6 +47,7 @@ void __print_nline(); void __print_test_func(); char* __get_result_string(char type, int ret); +char* __get_privilege_type_string(privilege_manager_privilege_type_e type); void __print_error_message(char *error_message); typedef enum { diff --git a/test/tc-privilege-black-list.c b/test/tc-privilege-black-list.c index aa57bb7..fe8486b 100755 --- a/test/tc-privilege-black-list.c +++ b/test/tc-privilege-black-list.c @@ -7,7 +7,7 @@ #include #include "tc-common.h" -static void __test_black_list_set_unset() +static void __test_dpm_black_list_set_unset() { int ret = 0; GList *black_list; @@ -102,7 +102,7 @@ static void __test_black_list_set_unset() } -static void __test_black_list_check() +static void __test_dpm_black_list_check() { GList *black_list = NULL; int ret = 0; @@ -168,7 +168,7 @@ static void __test_black_list_check() gfree(privilege_list); } -static void __test_black_list_verify_privilege() +static void __test_dpm_black_list_verify_privilege() { GList *black_list = NULL; char *error_message = NULL; @@ -237,6 +237,189 @@ static void __test_black_list_verify_privilege() } +void __test_mdm_black_list_set_unset() +{ + GList *black_list = NULL; + int ret = 0; + + __color_to_bold_yellow(); + printf("\nTest black list set/unset/get\n\n"); + __color_to_origin(); + + __tcinfo(goal, "uid = 0, Get wrt black list"); + ret = privilege_info_get_mdm_black_list(0, &black_list); + __tcinfo(expect, PRVMGR_ERR_NONE); + __print_result('m', ret); + __print_privilege_list(black_list); + __print_line(); + gfree(black_list); + + __tcinfo(goal, "uid = 0, Add privileges"); + __privinfo("http://tizen.org/privilege/aaa", NULL, NULL); + __privinfo("http://tizen.org/privilege/bbb", NULL, NULL); + __privinfo("http://tizen.org/privilege/ccc", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_set_mdm_black_list(0, privilege_list); + __print_result('m', ret); + __print_line(); + gfree(privilege_list); + + __tcinfo(goal, "uid = 0, Get mdm black list"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_info_get_mdm_black_list(0, &black_list); + __print_result('m', ret); + __print_privilege_list(black_list); + __print_line(); + gfree(black_list); + black_list = NULL; + + __tcinfo(goal, "uid = 0, Add privileges -- Add duplicated privileges"); + __privinfo("http://tizen.org/privilege/bbb", NULL, NULL); + __privinfo("http://tizen.org/privilege/cccc", NULL, NULL); + __privinfo("http://tizen.org/privilege/ddd", NULL, NULL); + __privinfo("http://tizen.org/privilege/eee", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_set_mdm_black_list(0, privilege_list); + __print_result('m', ret); + __print_line(); + gfree(privilege_list); + + __tcinfo(goal, "uid = 0, Get mdm black list"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_info_get_mdm_black_list(0, &black_list); + __print_result('m', ret); + __print_privilege_list(black_list); + __print_line(); + gfree(black_list); + black_list = NULL; + + __tcinfo(goal, "uid = 0, Remove wrt privileges"); + __privinfo("http://tizen.org/privilege/cccc", NULL, NULL); + __privinfo("http://tizen.org/privilege/ddd", NULL, NULL); + __privinfo("http://tizen.org/privilege/eee", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_unset_mdm_black_list(0, privilege_list); + __print_result('m', ret); + __print_line(); + gfree(privilege_list); + + __tcinfo(goal, "uid = 0, Get mdm black list"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_info_get_mdm_black_list(0, &black_list); + __print_result('m', ret); + __print_privilege_list(black_list); + __print_line(); + + __tcinfo(goal, "uid = 0, Remove all mdm black list"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_unset_mdm_black_list(0, black_list); + __print_result('m', ret); + __print_line(); + gfree(black_list); + black_list = NULL; + + __tcinfo(goal, "uid = 0, Get mdm black list"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_info_get_mdm_black_list(0, &black_list); + __print_result('m', ret); + __print_privilege_list(black_list); + __print_line(); + gfree(black_list); +} + +void __test_mdm_black_list_type() +{ + int ret = 0; + privilege_manager_privilege_type_e type; + + __print_line(); + __tcinfo(goal, "uid = 0, Add mdm black list privileges"); + __privinfo("http://tizen.org/privilege/aaa", NULL, NULL); + __privinfo("http://tizen.org/privilege/ccc", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_set_mdm_black_list(0, privilege_list); + __print_result('m', ret); + __print_line(); + + __tcinfo(goal, "Is disabled privilege"); + printf("uid = 0, privilege = http://tizen.org/privilege/aaa\n"); + ret = privilege_db_manager_is_disabled_privilege(0, "http://tizen.org/privilege/aaa"); + printf("ret = %d\n", ret); + if (ret == 1) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s,\n", __get_result_string('d', ret)); + __color_to_origin(); + } + __print_line(); + + __tcinfo(goal, "Is NOT disabled privilege"); + printf("uid = 0, privilege = http://tizen.org/privilege/xxx\n"); + ret = privilege_db_manager_is_disabled_privilege(0, "http://tizen.org/privilege/xxx"); + printf("ret = %d\n", ret); + if (ret == 0) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s,\n", __get_result_string('d', ret)); + __color_to_origin(); + } + __print_line(); + + __tcinfo(goal, "Get privilege type. Privilege is mdm blacklisted"); + printf("uid = 0, privilege = http://tizen.org/privilege/aaa\n"); + ret = privilege_info_get_privilege_type(0, "org.zzz.zzz", "http://tizen.org/privilege/aaa", &type); + printf("type = %s\n", __get_privilege_type_string(type)); + if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type)); + __color_to_origin(); + } + __print_line(); + + __tcinfo(goal, "Get privilege type. Privilege is NOT mdm blacklisted"); + printf("uid = 0, privilege = http://tizen.org/privilege/xxx\n"); + ret = privilege_info_get_privilege_type(0, "org.zzz.zzz", "http://tizen.org/privilege/xxx", &type); + printf("type = %s\n", __get_privilege_type_string(type)); + if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL) { + success_cnt++; + __color_to_green(); + printf("success\n"); + __color_to_origin(); + } else { + fail_cnt++; + __color_to_red(); + printf("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type)); + __color_to_origin(); + } + __print_line(); + + __tcinfo(goal, "uid = 0, Remove all mdm black list privileges"); + __privinfo("http://tizen.org/privilege/aaa", NULL, NULL); + __privinfo("http://tizen.org/privilege/ccc", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_unset_mdm_black_list(0, privilege_list); + __print_result('m', ret); + __print_line(); + + gfree(privilege_list); +} + int main() { __print_dline(); @@ -244,14 +427,24 @@ int main() __tcinfo(function, "privilege_manager_set_black_list"); __tcinfo(function, "privilege_manager_unset_black_list"); __tcinfo(function, "privilege_info_get_black_list"); - __test_black_list_set_unset(); + __test_dpm_black_list_set_unset(); __tcinfo(function, "privilege_db_manager_check_black_list"); __tcinfo(function, "privilege_info_get_black_list"); - __test_black_list_check(); + __test_dpm_black_list_check(); __tcinfo(function, "privilege_manager_verify_privilege"); - __test_black_list_verify_privilege(); + __test_dpm_black_list_verify_privilege(); + + __tcinfo(function, "privilege_manager_set_mdm_black_list"); + __tcinfo(function, "privilege_manager_unset_mdm_black_list"); + __tcinfo(function, "privilege_info_get_mdm_black_list"); + __test_mdm_black_list_set_unset(); + + __tcinfo(function, "privilege_info_get_privilege_type"); + __tcinfo(function, "privilege_db_manager_is_disabled_privilge"); + __test_mdm_black_list_type(); + __print_dline(); diff --git a/test/tc-privilege-db-manager.c b/test/tc-privilege-db-manager.c index 2809391..d28a544 100755 --- a/test/tc-privilege-db-manager.c +++ b/test/tc-privilege-db-manager.c @@ -504,46 +504,6 @@ void __test_privilege_db_manager_is_privacy_white_list() } -void __test_privilege_db_manager_is_disabled_privilege() -{ - int ret = 0; - __print_line(); - printf("uid = 5001, privilege: http://tizen.org/privilege/xxxxx\n"); - printf("is not disabled\n"); - ret = privilege_db_manager_is_disabled_privilege(5001, "http://tizen.org/privilege/xxxxx"); - printf("ret = %d\n", ret); - if (ret == 0) { - success_cnt++; - __color_to_green(); - printf("success\n"); - __color_to_origin(); - } else { - fail_cnt++; - __color_to_red(); - printf("fail\n"); - __color_to_origin(); - } - - __print_line(); - printf("uid = 0, privilege: http://tizen.org/privilege/yyyyy\n"); - printf("is disabled\n"); - ret = privilege_db_manager_is_disabled_privilege(0, "http://tizen.org/privilege/yyyyy"); - printf("ret = %d\n", ret); - if (ret == 1) { - success_cnt++; - __color_to_green(); - printf("success\n"); - __color_to_origin(); - } else { - fail_cnt++; - __color_to_red(); - printf("fail\n"); - __color_to_origin(); - } - - __print_line(); -} - void __test_privilege_db_manager_get_privacy_id() { int ret = 0; @@ -621,7 +581,6 @@ void __test_privilege_db_manager_is_user_settable() __color_to_origin(); } - __print_line(); printf("pkgid: org.tizen.xxxxxxx\n"); printf("privilege: http://tizen.org/privacy/location\n"); @@ -681,9 +640,6 @@ int main() __tcinfo(function, "privilege_db_manager_is_privacy_white_list"); __test_privilege_db_manager_is_privacy_white_list(); - __tcinfo(function, "privilege_db_manager_is_disabled_privilege"); - __test_privilege_db_manager_is_disabled_privilege(); - __tcinfo(function, "privilege_db_manager_get_privacy_id"); __test_privilege_db_manager_get_privacy_id(); diff --git a/test/tc-privilege-info.c b/test/tc-privilege-info.c index ee0b618..2f2e583 100755 --- a/test/tc-privilege-info.c +++ b/test/tc-privilege-info.c @@ -607,19 +607,6 @@ static void __test_privilege_info_is_privacy2() } #endif -static char* __get_privilege_type_string(privilege_manager_privilege_type_e type) -{ - switch (type) { - case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL: - return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL"; - case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY: - return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY"; - case PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST: - return "PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY"; - default: - return "None of privilege_manager_privilege_type_e"; - } -} static void __test_privilege_info_get_privilege_type() { int ret = 0; @@ -670,6 +657,15 @@ static void __test_privilege_info_get_privilege_type() printf("uid = 0\n"); printf("pkgid = org.tizen.testtest\n"); printf("privilege = http://tizen.org/privilege/yyyyy\n"); + printf("set mdm black list for above condition\n"); + gfree(privilege_list); + __print_line(); + __privinfo("http://tizen.org/privilege/yyyyy", NULL, NULL); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_set_mdm_black_list(0, privilege_list); + __print_result('m', ret); + __print_line(); + printf("check privilege type\n"); ret = privilege_info_get_privilege_type(0, "org.tizen.testtest", "http://tizen.org/privilege/yyyyy", &type); printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST\n"); if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST) { @@ -683,6 +679,12 @@ static void __test_privilege_info_get_privilege_type() printf("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type)); __color_to_origin(); } + __print_line(); + printf("unset mdm black list for above condition\n"); + __tcinfo(expect, PRVMGR_ERR_NONE); + ret = privilege_manager_unset_mdm_black_list(0, privilege_list); + __print_result('m', ret); + gfree(privilege_list); __print_line(); printf("uid = 5001\n"); -- 2.7.4