Add uid input parameter to privilege verification API 61/98161/3 accepted/tizen/3.0/common/20161122.195105 accepted/tizen/3.0/ivi/20161122.075924 accepted/tizen/3.0/mobile/20161122.075826 accepted/tizen/3.0/tv/20161122.075848 accepted/tizen/3.0/wearable/20161122.075906 accepted/tizen/common/20161125.095219 accepted/tizen/ivi/20161125.004157 accepted/tizen/mobile/20161125.003626 accepted/tizen/tv/20161125.003916 accepted/tizen/wearable/20161125.004038 submit/tizen/20161124.000829 submit/tizen_3.0/20161121.042235
authorYunjin Lee <yunjin-.lee@samsung.com>
Wed, 16 Nov 2016 09:13:15 +0000 (18:13 +0900)
committerYunjin Lee <yunjin-.lee@samsung.com>
Thu, 17 Nov 2016 05:12:38 +0000 (21:12 -0800)
Change-Id: Ibfb77bd9af850cdd606a174f9861690fff1b0c5c
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
capi/include/privilege_manager.h
capi/src/privilege_manager.c
test/tc-privilege-black-list.c
test/tc-privilege-manager.c
tool/privilege-verifier.c

index 5e2607c..99fa0dc 100755 (executable)
@@ -61,6 +61,7 @@ typedef enum {
  * @brief verify privilege in the privilege list by checking its name and level at given api version.
  * @remarks @a privilege_list must be released with g_list_free() by you.
  * @remarks @a error_message must be released with g_list_free() by you.
+ * @param [in] uid The uid of the user who's trying to install the application.
  * @param [in] api_version The api version of the application
  * @param [in] privilege_manager_package_type_e The privilege_manager_package_type_e
  * @param [in] privilege_list The privilege_list
@@ -73,7 +74,7 @@ typedef enum {
  * @retval #PRVMGR_ERR_INVALID_PARAMETER Invalid parameter
  * @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error
  */
-EXPORT_API int privilege_manager_verify_privilege(const char* api_version, privilege_manager_package_type_e package_type, GList* privilege_list, privilege_manager_visibility_e visibility, char **error_message);
+EXPORT_API int privilege_manager_verify_privilege(uid_t uid, const char* api_version, privilege_manager_package_type_e package_type, GList* privilege_list, privilege_manager_visibility_e visibility, char **error_message);
 
 /**
  * @brief get mapped privilege list of input privilege list according to the given package type, api version, and profile.
index 88369f9..a6670e6 100755 (executable)
@@ -181,7 +181,7 @@ const char *__get_privilege_level_string(privilege_db_manager_privilege_level_e
                return "not defined privilege";
 }
 
-int privilege_manager_verify_privilege(const char *api_version, privilege_manager_package_type_e package_type, GList * privilege_list, privilege_manager_visibility_e visibility, char **error_message)
+int privilege_manager_verify_privilege(uid_t uid, const char *api_version, privilege_manager_package_type_e package_type, GList * privilege_list, privilege_manager_visibility_e visibility, char **error_message)
 {
        _LOGD("privilege_manager_verify_privilege called");
        GList *l;
@@ -272,7 +272,6 @@ int privilege_manager_verify_privilege(const char *api_version, privilege_manage
        }
 
        /* Check black list */
-       int uid = getuid();
        ret = privilege_db_manager_check_black_list(uid, package_type, privilege_list);
        if (ret == PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY) {
                _LOGE("[FAIL TO CALL FUNCTION] black list policy db cannot be found");
@@ -504,5 +503,5 @@ int privilege_manager_unset_black_list(int uid, privilege_manager_package_type_e
 
 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(api_version, PRVMGR_PACKAGE_TYPE_METADATA, metadata_list, visibility, error_message);
+       return privilege_manager_verify_privilege(0, api_version, PRVMGR_PACKAGE_TYPE_METADATA, metadata_list, visibility, error_message);
 }
index 54143bb..aa57bb7 100755 (executable)
@@ -196,7 +196,7 @@ static void __test_black_list_verify_privilege()
        __privinfo("http://tizen.org/privilege/package.info", NULL, NULL);
        __privinfo("http://tizen.org/privilege/telephony", NULL, NULL);
        __tcinfo(expect, PRVMGR_ERR_USING_BANNED_PRIVILEGE);
-       ret = privilege_manager_verify_privilege("2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, PRVMGR_PACKAGE_VISIBILITY_PUBLIC, &error_message);
+       ret = privilege_manager_verify_privilege(0, "2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, PRVMGR_PACKAGE_VISIBILITY_PUBLIC, &error_message);
        ShowErrorMsg(error_message != NULL, error_message, ret);
        __print_result('m', ret);
        __print_line();
@@ -228,7 +228,7 @@ static void __test_black_list_verify_privilege()
        __privinfo("http://tizen.org/privilege/package.info", NULL, NULL);
        __privinfo("http://tizen.org/privilege/telephony", NULL, NULL);
        __tcinfo(expect, PRVMGR_ERR_NONE);
-       ret = privilege_manager_verify_privilege("2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, PRVMGR_PACKAGE_VISIBILITY_PUBLIC, &error_message);
+       ret = privilege_manager_verify_privilege(0, "2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, PRVMGR_PACKAGE_VISIBILITY_PUBLIC, &error_message);
        ShowErrorMsg(error_message != NULL, error_message, ret);
        __print_result('m', ret);
        __print_line();
index f2f382e..47f52aa 100755 (executable)
@@ -287,7 +287,7 @@ static void __privilege_manager_verify_privilege()
 {
        char* error_message = NULL;
        int ret = 0;
-       ret = privilege_manager_verify_privilege(api_version, pkg_type, privilege_list, visibility, &error_message);
+       ret = privilege_manager_verify_privilege(0, api_version, pkg_type, privilege_list, visibility, &error_message);
        __print_result('m', ret);
        ShowErrorMsg(error_message != NULL, error_message, ret);
        __print_line();
index 96f0820..41c3972 100755 (executable)
@@ -138,7 +138,7 @@ int main(int argc, char* argv[])
                exit(1);
        }
 
-       privilege_manager_verify_privilege(api_version, package_type, privilege_list, visibility, &error_message);
+       privilege_manager_verify_privilege(0, api_version, package_type, privilege_list, visibility, &error_message);
        if (error_message)
                printf("%s\n", error_message);