Add API to set/unset privilege disable list 38/106838/8
authorYunjin Lee <yunjin-.lee@samsung.com>
Fri, 23 Dec 2016 07:34:22 +0000 (16:34 +0900)
committerYunjin Lee <yunjin-.lee@samsung.com>
Wed, 11 Jan 2017 08:56:03 +0000 (17:56 +0900)
- 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 <yunjin-.lee@samsung.com>
12 files changed:
capi/include/privilege_db_manager.h
capi/include/privilege_info.h
capi/include/privilege_manager.h
capi/res/dbspace/mobile_privacy_whitelist.csv
capi/src/privilege_db_manager.c
capi/src/privilege_info.c
capi/src/privilege_manager.c
test/tc-common.c
test/tc-common.h
test/tc-privilege-black-list.c
test/tc-privilege-db-manager.c
test/tc-privilege-info.c

index 5b92b12..53c514b 100755 (executable)
@@ -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;
index 9b5e765..9197cb9 100644 (file)
@@ -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
index f616a70..b4f53f0 100755 (executable)
@@ -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.
index 886d372..29d96a2 100644 (file)
@@ -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
index 87704ee..661d81d 100755 (executable)
@@ -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) {
index 386ebc3..2cf3d3f 100755 (executable)
@@ -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;
+}
index e1b93c1..deb1720 100755 (executable)
@@ -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);
index 2fbed51..6ee521f 100755 (executable)
@@ -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)
 {
index bfe1dff..e8f665f 100755 (executable)
@@ -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 {
index aa57bb7..fe8486b 100755 (executable)
@@ -7,7 +7,7 @@
 #include <privilege_db_manager.h>
 #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();
 
index 2809391..d28a544 100755 (executable)
@@ -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();
 
index ee0b618..2f2e583 100755 (executable)
@@ -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");