PRVMGR_ERR_NO_EXIST_PRIVILEGE = 5,
PRVMGR_ERR_MISMACHED_PRIVILEGE_LEVEL = 6,
PRVMGR_ERR_INVALID_PRIVILEGE = 7,
+ PRVMGR_ERR_INVALID_METADATA = PRVMGR_ERR_INVALID_PRIVILEGE,
PRVMGR_ERR_DEPRECATED_PRIVILEGE = 8,
PRVMGR_ERR_USING_BANNED_PRIVILEGE = 9,
} privilege_manager_error_e;
} privilege_manager_visibility_e;
typedef enum {
- PRVMGR_PACKAGE_TYPE_WRT = 0,
- PRVMGR_PACKAGE_TYPE_CORE = 1,
+ PRVMGR_PACKAGE_TYPE_WRT = 0,
+ PRVMGR_PACKAGE_TYPE_CORE = 1,
+ PRVMGR_PACKAGE_TYPE_METADATA = 2,
PRVMGR_PACKAGE_TYPE_MAX
} privilege_manager_package_type_e;
* @return 0 on success, otherwise a nonzero error value.
* @retval #PRVMGR_ERR_NONE Successful
* @retval #PRVMGR_ERR_OUT_OF_MEMORY Out of memory
- * @retvak #PRVMGR_ERR_INVALID_PRIVILEGE The privilege_list contains invalid privilege(s).
+ * @retval #PRVMGR_ERR_INVALID_PRIVILEGE The privilege_list contains invalid privilege(s).
* @retval #PRVMGR_ERR_INVALID_PARAMETER Invalid parameter
* @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error
*/
*/
EXPORT_API int privilege_manager_unset_black_list(int uid, privilege_manager_package_type_e package_type, 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.
+ * @param [in] api_version The API Version
+ * @param [in] metadata_list The metadata_list
+ * @param [in] privilege_manager_visibility_e The privilege_manager_visibility_e
+ * @param [out] error_message The error_message's value is assigned when the return value isn't PRVMGR_ERR_NONE, otherwise null is assigned.
+ * @return 0 on success, otherwise a nonzero error value.
+ * @retval #PRVMGR_ERR_NONE Successful
+ * @retval #PRVMGR_ERR_OUT_OF_MEMORY Out of memory
+ * @retval #PRVMGR_ERR_INVALID_METADATA The metadata_list contains invalid metadata.
+ * @retval #PRVMGR_ERR_INVALID_PARAMETER Invalid parameter
+ * @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error
+ */
+EXPORT_API int privilege_manager_verify_metadata(const char *api_version, GList * metadata_list, privilege_manager_visibility_e visibility, char **error_message);
+
#ifdef __cplusplus
}
#endif
fi
PACKAGE_TYPE=`echo $i | cut -d "," -f 2`
+ PRIVILEGE_GROUP=`echo $i | cut -d "," -f 13`
if [ "$PACKAGE_TYPE" = "wrt" ]
then
elif [ "$PACKAGE_TYPE" = "core" ]
then
PACKAGE_TYPE_ID=1
+ elif [ "$PACKAGE_TYPE" = "metadata" ]
+ then
+ PACKAGE_TYPE_ID=2
+ PRIVILEGE_GROUP="IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB"
else
- echo "Fail to create table : PACKAGE_TYPE must be wrt or core"
+ echo "Fail to create table : PACKAGE_TYPE must be metadata, wrt or core"
exit
fi
PRIVILEGE_DESCRIPTION=`echo $i | cut -d "," -f 12`
- PRIVILEGE_GROUP=`echo $i | cut -d "," -f 13`
+ #PRIVILEGE_GROUP=`echo $i | cut -d "," -f 13`
if [ "$PRIVILEGE_GROUP" = "IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB" ]
then
PRIVILEGE_GROUP_ID=6
else
+ echo "PRIVILEGE_GROUP = $PRIVILEGE_GROUP"
echo "Fail to create table : PRIVILEGE_GROUP must be one of them below"
echo "IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB"
echo "IDS_TPLATFORM_OPT_LOCATION_T_LBS"
mobile,core,public,2.3,9.9,yes,http://tizen.org/privilege/wifidirect,no,N/A,,IDS_TPLATFORM_HEADER_MANAGING_WI_FI_DIRECT_INFORMATION,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_ENABLE_AND_DISABLE_WI_FI_DIRECT_MANAGE_WI_FI_DIRECT_CONNECTIONS_AND_CHANGE_WI_FI_DIRECT_SETTINGS,IDS_TPLATFORM_BODY_HARDWARE_CONTROLS_ABB,,
mobile,core,public,2.3,9.9,yes,http://tizen.org/privilege/window.priority.set,no,N/A,,IDS_TPLATFORM_HEADER_DISPLAYING_WINDOWS_ON_TOP_OF_OTHER_APPLICATIONS_AND_SCREENS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_APPEAR_ON_TOP_OF_OTHER_WINDOWS_AND_SCREENS_MSG,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,,
wearable,core,public,2.3.1,9.9,yes,http://tizen.org/privilege/window.priority.set,no,N/A,,IDS_TPLATFORM_HEADER_DISPLAYING_WINDOWS_ON_TOP_OF_OTHER_APPLICATIONS_AND_SCREENS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_APPEAR_ON_TOP_OF_OTHER_WINDOWS_AND_SCREENS_MSG,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,,
+#common,metadata,public,1,9.9,no,http://tizen.org/metadata/public,no,N/A,test,,,,,
+#common,metadata,partner,1,9.9,no,http://tizen.org/metadata/partner,no,N/A,test,,,,,
+#common,metadata,platform,1,9.9,no,http://tizen.org/metadata/platform,no,N/A,test,,,,,
switch (type) {
case 'i':
- if (package_type == PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE)
- db_path = PRIVILEGE_INFO_CORE_DB_PATH;
- else
+ if (package_type == PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT)
db_path = PRIVILEGE_INFO_WRT_DB_PATH;
+ else
+ db_path = PRIVILEGE_INFO_CORE_DB_PATH;
break;
case 'm':
if (package_type == PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE)
}
}
- if (package_type != PRVMGR_PACKAGE_TYPE_WRT && package_type != PRVMGR_PACKAGE_TYPE_CORE) {
+ if (package_type != PRVMGR_PACKAGE_TYPE_WRT && package_type != PRVMGR_PACKAGE_TYPE_CORE && package_type != PRVMGR_PACKAGE_TYPE_METADATA) {
_LOGD("checking package type = %d", package_type);
_LOGE("[PRVMGR_ERR_INVALID_PARAMETER] package_type is not a PRVMGR_PACKAGE_TYPE_WRT or PRVMGR_PACKAGE_TYPE_CORE");
*error_message = strdup("[PRVMGR_ERR_INVALID_PARAMETER] package_type is a unknown type. package_type must be a PRVMGR_PACKAGE_TYPE_WRT or PRVMGR_PACKAGE_TYPE_CORE");
pkg_type = strdup("Native");
TryReturn(pkg_type != NULL, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] pkg_type's strdup is failed.");
snprintf(guide_message, MESSAGE_SIZE, "Check tizen-manifest.xml| - Current api-version = %s, | ", api_version);
+ } else if (package_type == PRVMGR_PACKAGE_TYPE_METADATA) {
+ pkg_type = strdup("Metadata");
+ TryReturn(pkg_type != NULL, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] pkg_type's strdup is failed.");
+ is_valid_wrt_version = 0;
+ snprintf(guide_message, MESSAGE_SIZE, "Check tizen-manifest.xml or config.xml| - Current api-version = %s, | ", api_version);
}
if ((visibility & PRVMGR_PACKAGE_VISIBILITY_PUBLIC) != PRVMGR_PACKAGE_VISIBILITY_PUBLIC && (visibility & PRVMGR_PACKAGE_VISIBILITY_PARTNER) != PRVMGR_PACKAGE_VISIBILITY_PARTNER && (visibility & PRVMGR_PACKAGE_VISIBILITY_PLATFORM) != PRVMGR_PACKAGE_VISIBILITY_PLATFORM) {
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(api_version, PRVMGR_PACKAGE_TYPE_METADATA, metadata_list, visibility, error_message);
+}
#include <privilege_manager.h>
#include "tc-common.h"
-void __privilege_manager_get_mapped_privilege_list()
+static void __privilege_manager_get_mapped_privilege_list()
{
int ret = 0;
GList* mapped_privilege_list = NULL;
#endif
}
-void __privilege_manager_verify_privilege()
+static void __test_privilege_manager_verify_metadata()
+{
+ char* error_message = NULL;
+ int ret = 0;
+ GList *metadata_list = NULL;
+
+ printf("metadata : http://tizen.org/metadata/public\n");
+ metadata_list = g_list_append(metadata_list, "http://tizen.org/metadata/public");
+ __tcinfo(cert_level, "public");
+ __tcinfo(expect, PRVMGR_ERR_NONE);
+ ret = privilege_manager_verify_metadata("3.0", metadata_list, visibility, &error_message);
+ __print_result('m', ret);
+ ShowErrorMsg(error_message != NULL, error_message, ret);
+ __print_line();
+
+ free(error_message);
+ error_message = NULL;
+ gfree(metadata_list);
+
+ printf("metadata : http://tizen.org/metadata/notexist\n");
+ metadata_list = g_list_append(metadata_list, "http://tizen.org/metadata/notexist");
+ __tcinfo(cert_level, "public");
+ __tcinfo(expect, PRVMGR_ERR_NONE);
+ ret = privilege_manager_verify_metadata("3.0", metadata_list, visibility, &error_message);
+ __print_result('m', ret);
+ ShowErrorMsg(error_message != NULL, error_message, ret);
+ __print_line();
+
+ free(error_message);
+ error_message = NULL;
+ gfree(metadata_list);
+
+ printf("metadata : http://tizen.org/metadata/partner\n");
+ printf("metadata : http://tizen.org/metadata/platform\n");
+ metadata_list = g_list_append(metadata_list, "http://tizen.org/metadata/partner");
+ metadata_list = g_list_append(metadata_list, "http://tizen.org/metadata/platform");
+ __tcinfo(cert_level, "partner");
+ __tcinfo(expect, PRVMGR_ERR_INVALID_METADATA);
+ ret = privilege_manager_verify_metadata("3.0", metadata_list, visibility, &error_message);
+ __print_result('m', ret);
+ ShowErrorMsg(error_message != NULL, error_message, ret);
+ __print_line();
+
+ free(error_message);
+ error_message = NULL;
+ gfree(metadata_list);
+}
+
+static void __privilege_manager_verify_privilege()
{
char* error_message = NULL;
int ret = 0;
ShowErrorMsg(error_message != NULL, error_message, ret);
__print_line();
+ free(error_message);
gfree(privilege_list);
}
__tcinfo(function, "privilege_manager_get_mapped_privilege_list");
__test_privilege_manager_get_mapped_privilege_list();
+ __tcinfo(function, "privilege_manager_verify_metadata");
+ __test_privilege_manager_verify_metadata();
+
__color_to_green();
printf("Test Complete\n");
printf("success : %d, ", success_cnt);