int privilege_db_manager_get_privacy_display(const char *privacy, char **privacy_display);
int privilege_db_manager_is(char type, const char* privilege);
+int privilege_db_manager_is_preloaded(const char* pkgid);
int __privilege_db_manager_get_privacy_list(GList** privacy_list);
int __privilege_db_manager_get_privilege_list_by_privacy(const char* privacy, GList **privilege_list);
int privilege_db_manager_get_privacy_by_privilege(const char* privilege, char** privacy);
EXPORT_API int privilege_info_is_privacy(const char *privilege);
/**
+ * @brief Determines whether the given privilege is privacy related or not.on the basis of whitelist
+ * @param [in] label The label
+ * @param [in] privilege The privilege
+ * @return 1 if true(=is privacy related privilege), 0 if false, and -1 on error
+ */
+EXPORT_API int privilege_info_is_privacy2(const char *label, const char *privilege);
+
+/**
* @brief Gets all privacy list.
* @remarks @a privacy_list must be released with g_list_free() by you.
* @param [out] privacy_list The privacy list
MAX_PRV_GROUP,
} privilegeGroup;
+#define LOCATION_PRIVACY "http://tizen.org/privacy/location"
#define EXTRA_GROUP MAX_PRV_GROUP - 1
typedef struct {
touch $DB_NAME
target_profile=$1
+preloaded="$target_profile""_preloaded.list"
echo "Creating PRIVILEGE_INFO table ..."
sqlite3 $DB_NAME "CREATE TABLE PRIVILEGE_INFO (PROFILE_ID NUMERIC, PROFILE TEXT, PACKAGE_TYPE_ID NUMERIC, PACKAGE_TYPE TEXT, PRIVILEGE_LEVEL_ID NUMERIC, PRIVILEGE_LEVEL TEXT, API_VERSION_ISSUED TEXT, API_VERSION_EXPIRED TEXT, DOCUMENTED INTEGER, PRIVILEGE_NAME TEXT, IS_PRIVACY NUMERIC, PRIVACY_GROUP TEXT, PRIVILEGE_DISPLAY TEXT, PRIVILEGE_DESCRIPTION TEXT, PRIVILEGE_GROUP_ID NUMERIC, PRIVLEGE_GROUP TEXT, CHANGED_TO_2_3_1 TEXT, CHANGED_TO_2_4_0 TEXT);"
echo "Create VALID_PRIVILEGE_INFO Table..."
-sqlite3 $DB_NAME "CREATE TABLE VALID_PRIVILEGE_INFO (PRIVILEGE_NAME TEXT UNIQUE, IS_PRIVACY NUMERIC, IS_INTERNAL NUMERIC);"
+sqlite3 $DB_NAME "CREATE TABLE VALID_PRIVILEGE_INFO (PRIVILEGE_NAME TEXT UNIQUE, IS_PRIVACY NUMERIC, PRIVACY_GROUP TEXT, IS_INTERNAL NUMERIC);"
echo "Create PRIVACY_INFO table..."
sqlite3 $DB_NAME "CREATE TABLE PRIVACY_INFO (PRIVACY_GROUP TEXT UNIQUE, PRIVACY_DISPLAY TEXT);"
+echo "Create PRELOADED table..."
+sqlite3 $DB_NAME "CREATE TABLE PRELOADED (NAME TEXT)"
+
echo "Inserting data ..."
IFS=$'\n'
+for p in `cat $preloaded`
+do
+ temp=`echo $p | awk '/^#/'`
+ if [ ! "$temp" = "" ]
+ then
+ continue
+ fi
+ NAME=`echo $p | cut -d "," -f 1`
+ sqlite3 $DB_NAME "insert into preloaded values ('$NAME')"
+done
+
+
+
for i in `cat core_privilege_info.csv`
do
temp=`echo $i | awk '/^#/'`
echo "Inserting $PRIVILEGE_NAME ..."
sqlite3 $DB_NAME "insert into privilege_info values ( $PROFILE_ID, '$PROFILE', $PACKAGE_TYPE_ID, '$PACKAGE_TYPE', $PRIVILEGE_LEVEL_ID, '$PRIVILEGE_LEVEL', '$API_VERSION_ISSUED', '$API_VERSION_EXPIRED', '$DOCUMENTED', '$PRIVILEGE_NAME', '$IS_PRIVACY', '$PRIVACY_GROUP', '$PRIVILEGE_DISPLAY', '$PRIVILEGE_DESCRIPTION', $PRIVILEGE_GROUP_ID, '$PRIVILEGE_GROUP', '$CHANGED_TO_2_3_1', '$CHANGED_TO_2_4_0')"
- sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, is_internal) values ('$PRIVILEGE_NAME', '$IS_PRIVACY', 0)"
+ sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, privacy_group, is_internal) values ('$PRIVILEGE_NAME', '$IS_PRIVACY', '$PRIVACY_GROUP', 0)"
done
for internal_privilege in `cat internal_only.list`
do
echo "Inserting $internal_privilege ..."
- sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, is_internal) values ('$internal_privilege', 0, 1)"
+ sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, privacy_group, is_internal) values ('$internal_privilege', 0, 'N/A', 1)"
done
echo "Insert into PRIVACY_INFO"
sqlite3 $DB_NAME "insert into privilege_mapping values ( $PROFILE_ID, '$PROFILE', '$PRIVILEGE_NAME','$FROM_API_VERSION', '$TO_API_VERSION', '$MAPPED_PRIVILEGE_NAME')"
if [[ $MAPPED_PRIVILEGE_NAME == *"/internal/"* ]]; then
MAPPED_IS_PRIVACY=`sqlite3 .core_privilege_info.db "select is_privacy from privilege_info where privilege_name='$PRIVILEGE_NAME'"`
+ MAPPED_PRIVACY_GROUP=`sqlite3 .core_privilege_info.db "select privacy_group from privilege_info where privilege_name='$PRIVILEGE_NAME'"`
if [ "$MAPPED_IS_PRIVACY" = "" ]; then
- sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 1)"
+ sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 'N/A', 1)"
else
- sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', $MAPPED_IS_PRIVACY, 1)"
+ sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', $MAPPED_IS_PRIVACY, '$MAPPED_PRIVACY_GROUP', 1)"
fi
else
- sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 0)"
+ sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 'N/A', 0)"
fi
done
--- /dev/null
+User::Pkg::attach-panel-camera
+User::Pkg::attach-panel-document
+User::Pkg::attach-panel-gallery
+User::Pkg::attach-panel-voicerecorder
+User::Pkg::cert-svc-ui
+User::Pkg::hangul
+User::Pkg::ise-default
+User::Pkg::ise-engine-anthy
+User::Pkg::ise-engine-default
+User::Pkg::ise-engine-sunpinyin
+User::Pkg::net.netpopup
+User::Pkg::net.wifi-qs
+User::Pkg::org.tizen.app-selector
+User::Pkg::org.tizen.bluetooth-share-ui
+User::Pkg::org.tizen.browser
+User::Pkg::org.tizen.bt-syspopup
+User::Pkg::org.tizen.calendar
+User::Pkg::org.tizen.call-setting
+User::Pkg::org.tizen.call-ui
+User::Pkg::org.tizen.callmgr-popup
+User::Pkg::org.tizen.camera-app
+User::Pkg::org.tizen.chromium-efl
+User::Pkg::org.tizen.contacts
+User::Pkg::org.tizen.crash-syspopup
+User::Pkg::org.tizen.d2d-conv-setting
+User::Pkg::org.tizen.d2d-conv-syspopup
+User::Pkg::org.tizen.download-manager
+User::Pkg::org.tizen.dpm-syspopup
+User::Pkg::org.tizen.dpm-toolkit
+User::Pkg::org.tizen.email
+User::Pkg::org.tizen.gallery
+User::Pkg::org.tizen.gps-syspopup
+User::Pkg::org.tizen.heremaps-uc
+User::Pkg::org.tizen.homescreen-efl
+User::Pkg::org.tizen.image-viewer
+User::Pkg::org.tizen.indicator
+User::Pkg::org.tizen.inputmethod-setting
+User::Pkg::org.tizen.isf-kbd-mode-changer
+User::Pkg::org.tizen.kaskit
+User::Pkg::org.tizen.keyguard
+User::Pkg::org.tizen.krate-setup-wizard
+User::Pkg::org.tizen.lockscreen
+User::Pkg::org.tizen.menu-screen
+User::Pkg::org.tizen.message
+User::Pkg::org.tizen.msg-manager
+User::Pkg::org.tizen.music-player
+User::Pkg::org.tizen.myfile
+User::Pkg::org.tizen.myplace
+User::Pkg::org.tizen.ode
+User::Pkg::org.tizen.overheat-syspopup
+User::Pkg::org.tizen.powerkey-syspopup
+User::Pkg::org.tizen.privacy-setting
+User::Pkg::org.tizen.quickpanel
+User::Pkg::org.tizen.screen-reader
+User::Pkg::org.tizen.service-plugin-sample
+User::Pkg::org.tizen.setting
+User::Pkg::org.tizen.setting-homescreen
+User::Pkg::org.tizen.setting-location
+User::Pkg::org.tizen.setting-notification
+User::Pkg::org.tizen.settings-adid
+User::Pkg::org.tizen.share-panel
+User::Pkg::org.tizen.stt-engine-default
+User::Pkg::org.tizen.sys-lock
+User::Pkg::org.tizen.system-signal-sender
+User::Pkg::org.tizen.system-syspopup
+User::Pkg::org.tizen.task-mgr
+User::Pkg::org.tizen.tts-engine-default
+User::Pkg::org.tizen.ug-gallery-efl
+User::Pkg::org.tizen.ug-lockscreen-options
+User::Pkg::org.tizen.ug-myfile-efl
+User::Pkg::org.tizen.videos
+User::Pkg::org.tizen.voice-control-panel
+User::Pkg::org.tizen.voice-setting
+User::Pkg::org.tizen.volume
+User::Pkg::org.tizen.wallpaper-ui-service
+User::Pkg::org.tizen.widget_viewer_sdk
+User::Pkg::org.tizen.wifi-direct-popup
+User::Pkg::org.tizen.worldclock-efl
+User::Pkg::setting-myaccount-efl
+User::Pkg::table
+User::Pkg::ug-bluetooth-efl
+User::Pkg::ug-setting-mobileap-efl
+User::Pkg::ug-setting-wifidirect-efl
+User::Pkg::wifi-efl-ug
sqlite3 $DB_NAME "CREATE TABLE PRIVILEGE_INFO (PROFILE_ID NUMERIC, PROFILE TEXT, PACKAGE_TYPE_ID NUMERIC, PACKAGE_TYPE TEXT, PRIVILEGE_LEVEL_ID NUMERIC, PRIVILEGE_LEVEL TEXT, API_VERSION_ISSUED TEXT, API_VERSION_EXPIRED TEXT, DOCUMENTED INTEGER, PRIVILEGE_NAME TEXT, IS_PRIVACY NUMERIC, PRIVACY_GROUP TEXT, PRIVILEGE_DISPLAY TEXT, PRIVILEGE_DESCRIPTION TEXT, PRIVILEGE_GROUP_ID NUMERIC, PRIVLEGE_GROUP TEXT, CHANGED_TO_2_4_0 TEXT);"
echo "Create VALID_PRIVILEGE_INFO Table..."
-sqlite3 $DB_NAME "CREATE TABLE VALID_PRIVILEGE_INFO (PRIVILEGE_NAME TEXT UNIQUE, IS_PRIVACY NUMERIC, IS_INTERNAL NUMERIC);"
+sqlite3 $DB_NAME "CREATE TABLE VALID_PRIVILEGE_INFO (PRIVILEGE_NAME TEXT UNIQUE, IS_PRIVACY NUMERIC, PRIVACY_GROUP TEXT, IS_INTERNAL NUMERIC);"
echo "Create PRIVACY_INFO table..."
sqlite3 $DB_NAME "CREATE TABLE PRIVACY_INFO (PRIVACY_GROUP TEXT UNIQUE, PRIVACY_DISPLAY TEXT);"
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"
echo "Inserting $PRIVILEGE_NAME ..."
sqlite3 $DB_NAME "insert into privilege_info values ( $PROFILE_ID, '$PROFILE', $PACKAGE_TYPE_ID, '$PACKAGE_TYPE', $PRIVILEGE_LEVEL_ID, '$PRIVILEGE_LEVEL', '$API_VERSION_ISSUED', '$API_VERSION_EXPIRED', '$DOCUMENTED', '$PRIVILEGE_NAME', '$IS_PRIVACY', '$PRIVACY_GROUP', '$PRIVILEGE_DISPLAY', '$PRIVILEGE_DESCRIPTION', $PRIVILEGE_GROUP_ID, '$PRIVILEGE_GROUP', '$CHANGED_TO_2_4_0')"
- sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, is_internal) values ('$PRIVILEGE_NAME', '$IS_PRIVACY', 0)"
+ sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, privacy_group, is_internal) values ('$PRIVILEGE_NAME', '$IS_PRIVACY', '$PRIVACY_GROUP', 0)"
done
for internal_privilege in `cat internal_only.list`
do
echo "Inserting $internal_privilege ..."
- sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, is_internal) values ('$internal_privilege', 0, 1)"
+ sqlite3 $DB_NAME "insert into valid_privilege_info (privilege_name, is_privacy, privacy_group, is_internal) values ('$internal_privilege', 0, 'N/A', 1)"
done
echo "Insert into PRIVACY_INFO"
sqlite3 $DB_NAME "insert into privilege_mapping values ( $PROFILE_ID, '$PROFILE', '$PRIVILEGE_NAME','$FROM_API_VERSION', '$TO_API_VERSION', '$MAPPED_PRIVILEGE_NAME')"
if [[ $MAPPED_PRIVILEGE_NAME == *"/internal/"* ]]; then
- sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 1)"
+ MAPPED_IS_PRIVACY=`sqlite3 .core_privilege_info.db "select is_privacy from privilege_info where privilege_name='$PRIVILEGE_NAME'"`
+ MAPPED_PRIVACY_GROUP=`sqlite3 .core_privilege_info.db "select privacy_group from privilege_info where privilege_name='$PRIVILEGE_NAME'"`
+ if [ "$MAPPED_IS_PRIVACY" = "" ]; then
+ sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 'N/A', 1)"
+ else
+ sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', $MAPPED_IS_PRIVACY, '$MAPPED_PRIVACY_GROUP', 1)"
+ fi
else
- sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 0)"
+ sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 'N/A', 0)"
fi
done
tv,core,public,2.4,9.9,no,http://tizen.org/privilege/widget.viewer,no,N/A,,IDS_TPLATFORM_HEADER_SHOWING_WIDGETS,IDS_TPLATFORM_BODY_THIS_APPLICATION_CAN_SHOW_WIDGETS_AND_INFORMATION_FROM_THEIR_ASSOCIATED_APPLICATIONS_ON_THE_HOME_SCREEN,IDS_TPLATFORM_BODY_SYSTEM_SETTINGS_ABB,,
tv,core,public,2.4,9.9,no,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,,
tv,core,public,2.4,9.9,no,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,,
+#tv,metadata,public,1,9.9,no,http://tizen.org/metadata/public,no,N/A,test,,,,,
+#tv,metadata,partner,1,9.9,no,http://tizen.org/metadata/partner,no,N/A,test,,,,,
+#tv,metadata,platform,1,9.9,no,http://tizen.org/metadata/platform,no,N/A,test,,,,,
sqlite3 $DB_NAME "insert into privilege_mapping values ( $PROFILE_ID, '$PROFILE', '$PRIVILEGE_NAME','$FROM_API_VERSION', '$TO_API_VERSION', '$MAPPED_PRIVILEGE_NAME')"
if [[ $MAPPED_PRIVILEGE_NAME == *"/internal/"* ]]; then
- sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 1)"
+ sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 'N/A', 1)"
else
- sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 0)"
+ sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 'N/A', 0)"
fi
done
--- /dev/null
+User::Pkg::ise-default
+User::Pkg::ise-engine-default
+User::Pkg::org.tizen.alarm
+User::Pkg::org.tizen.app-selector
+User::Pkg::org.tizen.bluetooth
+User::Pkg::org.tizen.bt-syspopup
+User::Pkg::org.tizen.chromium-efl
+User::Pkg::org.tizen.classic-watch
+User::Pkg::org.tizen.crash-syspopup
+User::Pkg::org.tizen.dpm-syspopup
+User::Pkg::org.tizen.dpm-toolkit
+User::Pkg::org.tizen.elm-demo-tizen-wearable
+User::Pkg::org.tizen.heremaps-uc
+User::Pkg::org.tizen.idle-clock-digital
+User::Pkg::org.tizen.inputdelegator
+User::Pkg::org.tizen.inputmethod-setting
+User::Pkg::org.tizen.my-account
+User::Pkg::org.tizen.nfc-setting-app
+User::Pkg::org.tizen.ode
+User::Pkg::org.tizen.powerkey-syspopup
+User::Pkg::org.tizen.privacy-setting
+User::Pkg::org.tizen.screen-reader
+User::Pkg::org.tizen.stopwatch
+User::Pkg::org.tizen.stt-engine-default
+User::Pkg::org.tizen.system-syspopup
+User::Pkg::org.tizen.task-mgr
+User::Pkg::org.tizen.timer
+User::Pkg::org.tizen.tts-engine-default
+User::Pkg::org.tizen.w-home
+User::Pkg::org.tizen.w-wifi
+User::Pkg::org.tizen.watch-setting
+User::Pkg::org.tizen.widget_viewer_sdk
+User::Pkg::org.tizen.windicator
sqlite3 $DB_NAME "insert into privilege_mapping values ( $PROFILE_ID, '$PROFILE', '$PRIVILEGE_NAME','$FROM_API_VERSION', '$TO_API_VERSION', '$MAPPED_PRIVILEGE_NAME')"
if [[ $MAPPED_PRIVILEGE_NAME == *"/internal/"* ]]; then
- sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 1)"
+ sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 'N/A', 1)"
else
- sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 0)"
+ sqlite3 .core_privilege_info.db "insert or ignore into valid_privilege_info values ('$MAPPED_PRIVILEGE_NAME', 0, 'N/A', 0)"
fi
done
ret = __make_privilege_list_str(privilege_list, &privilege_list_str);
TryReturn(ret == 0 && privilege_list_str != NULL, sqlite3_close(db), PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY, "[PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY] making privilege_list_str for where in query is failed.");
- char *sql = NULL;
- if (api_version == NULL)
- sql = sqlite3_mprintf("select distinct mapped_privilege_name from privilege_mapping where privilege_name in(%s)and(profile_id=%d or profile_id=%d)", privilege_list_str, PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON, g_privilege_db_manager_profile_type);
- else
- sql = sqlite3_mprintf("select distinct mapped_privilege_name from privilege_mapping where privilege_name in(%s)and(profile_id=%d or profile_id=%d)and from_api_version<=%Q and to_api_version>%Q", privilege_list_str, PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON, g_privilege_db_manager_profile_type, api_version, api_version);
+ char *sql = sqlite3_mprintf("select distinct mapped_privilege_name from privilege_mapping where privilege_name in(%s)and(profile_id=%d or profile_id=%d)and from_api_version<=%Q and to_api_version>%Q", privilege_list_str, PRIVILEGE_DB_MANAGER_PROFILE_TYPE_COMMON, g_privilege_db_manager_profile_type, api_version, api_version);
sqlite3_free(privilege_list_str);
TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed");
int ret = __initialize_db('i', &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL");
- char *sql = sqlite3_mprintf("select * from valid_privilege_info where privilege_name=%Q", privilege);
- TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed");
+ char *sql = sqlite3_mprintf("select privilege_name,is_privacy, is_internal from valid_privilege_info where privilege_name=%Q", privilege);
+ 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);
TryReturn(ret == SQLITE_OK, __finalize_db(db, stmt, sql), -PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] fail to prepare database : %s", sqlite3_errmsg(db));
return res;
}
+int privilege_db_manager_is_preloaded(const char* pkgid)
+{
+ sqlite3 *db = NULL;
+ sqlite3_stmt *stmt = NULL;
+ int ret = __initialize_db('i', &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
+ TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL");
+
+ char *sql = sqlite3_mprintf("select * from preloaded where name=%Q", pkgid);
+ 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);
+ TryReturn(ret == SQLITE_OK, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] fail to prepare database : %s", sqlite3_errmsg(db));
+
+ ret = sqlite3_step(stmt);
+ __finalize_db(db, stmt, sql);
+ if (ret == SQLITE_ROW) {
+ _LOGD("%s is preloaded", pkgid);
+ return 1;
+ } else {
+ _LOGD("ret = %s", sqlite3_errmsg(db));
+ return 0;
+ }
+}
+
int __privilege_db_manager_get_privacy_list(GList **privacy_list)
{
sqlite3 *db = NULL;
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
return ret;
- char *sql = sqlite3_mprintf("select distinct privilege_name from privilege_info where is_privacy=1 and privacy_group=%Q", privacy);
+ char *sql = sqlite3_mprintf("select distinct privilege_name from valid_privilege_info where is_privacy=1 and privacy_group=%Q", privacy);
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) {
__finalize_db(db, stmt, sql);
- GList* temp_mapped_privilege_list = NULL;
- ret = privilege_db_manager_get_mapped_privilege_list(NULL, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, temp_privilege_list, &temp_mapped_privilege_list);
- TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE && temp_mapped_privilege_list != NULL, g_list_free(temp_privilege_list), ret, "[DB_FAIL] privilege_db_manager_get_mapped_privilege_list failed");
-
- *privilege_list = temp_mapped_privilege_list;
- g_list_free(temp_privilege_list);
+ *privilege_list = temp_privilege_list;
return PRIVILEGE_DB_MANAGER_ERR_NONE;
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
return ret;
- char *sql = sqlite3_mprintf("select privacy_group from privilege_info where privilege_name=%Q", privilege);
+ char *sql = sqlite3_mprintf("select privacy_group from valid_privilege_info where privilege_name=%Q", privilege);
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) {
ret = privilege_info_get_group_name_string_id(privilege_group, &name_string_id);
if (name_string_id == NULL) {
- char tempPrivilegeGroup[256] = { 0, };
+ char *tempPrivilegeGroup = NULL;;
char *temp = NULL;
char *buffer = NULL;
char *save = NULL;
- memcpy(tempPrivilegeGroup, privilege_group, strlen(privilege_group));
+
+ tempPrivilegeGroup = strdup(privilege_group);
+ TryReturn(tempPrivilegeGroup != NULL, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] tempPrivilegeGroup's strdup failed");
+
temp = strtok_r(tempPrivilegeGroup, "/", &save);
while (temp) {
buffer = temp;
temp = strtok_r(NULL, "/", &save);
}
- *name = (char *)calloc(strlen(buffer) + 1, sizeof(char));
- TryReturn(*name != NULL, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed.");
-
- memcpy(*name, buffer, strlen(buffer));
+ *name = strdup(buffer);
+ TryReturn(*name != NULL, free(tempPrivilegeGroup), PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] Memory allocation failed.");
+ free(tempPrivilegeGroup);
} else {
ret = privilege_info_get_privilege_string_by_string_id(name_string_id, name);
free(name_string_id);
int privilege_info_is_privacy(const char* privilege)
{
TryReturn(privilege != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege is NULL");
-
+#ifdef PROFILE_TYPE_TV
+ return 0;
+#else
int ret = privilege_db_manager_is('p', privilege);
LOGD("%s is privacy? %d", privilege, ret);
if (ret != 0 && ret != 1)
ret = -1;
return ret;
+#endif
+}
+
+int privilege_info_is_privacy2(const char* label, const char* privilege)
+{
+ TryReturn(privilege != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege is NULL");
+ if (label == NULL)
+ return privilege_info_is_privacy(privilege);
+#ifdef PROFILE_TYPE_TV
+ return 0;
+#else
+ int ret = privilege_db_manager_is('p', privilege);
+ TryReturn(ret >= 0, , -1, "privilege_db_manager_get_privacy_by_privilege failed. ret = %d", ret);
+ if (ret == 0) {
+ LOGD("not privacy");
+ return 0;
+ } else {
+ char *privacy = NULL;
+ ret = privilege_db_manager_get_privacy_by_privilege(privilege, &privacy);
+ TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privacy != NULL, , ret, "[DB_FAIL] privilege_db_manager_get_privacy_by_privilege failed. ret = %d", ret);
+ LOGD("privacy : %s", privacy);
+ if (!strcmp(privacy, LOCATION_PRIVACY)) {
+ ret = 1;
+ } else {
+ ret = privilege_db_manager_is_preloaded(label);
+ if (ret == 1) { /* Is preloaded */
+ ret = 0;
+ } else if (ret == 0) {
+ ret = 1;
+ } else {
+ LOGD("privilege_db_manager_is_preloaded failed. ret = %d", ret);
+ ret = -1;
+ }
+ }
+ free(privacy);
+ LOGD("final ret = %d", ret);
+ return ret;
+ }
+#endif
}
int privilege_info_is_valid(const char* privilege)
typedef u_int32_t api_version_code_t;
-static int __get_api_version_code(const char *api_version, api_version_code_t *api_version_code )
+static int __get_api_version_code(const char *api_version, api_version_code_t *api_version_code)
{
TryReturn(api_version != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] api_version is NULL");
char ch = *api_version;
int is_number = 0;
- while (ch != 0)
- {
+ while (ch != 0) {
if (isdigit(ch)) {
is_number = 1;
value = 0;
TryReturn(noexist_message != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] noexist_message's strdup is failed.");
}
size_t new_size = snprintf(0, 0, "%s%s", noexist_message, message) + 1;
- noexist_message = realloc(noexist_message, new_size * sizeof(char));
- TryReturn(noexist_message != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] noexist_message's realloc is failed.");
+ char *tmp_message = realloc(noexist_message, new_size * sizeof(char));
+ TryReturn(tmp_message != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] noexist_message's realloc is failed.");
+ noexist_message = tmp_message;
strncat(noexist_message, message, strlen(message));
-
ret_val = PRVMGR_ERR_INVALID_PRIVILEGE;
} else if (ret == PRVMGR_ERR_DEPRECATED_PRIVILEGE) {
TryReturn(deprecated_message != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] deprecated_message's strdup is failed.");
}
size_t new_size = snprintf(0, 0, "%s%s", deprecated_message, message) + 1;
- deprecated_message = realloc(deprecated_message, new_size * sizeof(char));
- TryReturn(deprecated_message != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] deprecated_message's realloc is failed.");
+ char *tmp_message = realloc(deprecated_message, new_size * sizeof(char));
+ TryReturn(tmp_message != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] deprecated_message's realloc is failed.");
+ deprecated_message = tmp_message;
strncat(deprecated_message, message, strlen(message));
-
ret_val = PRVMGR_ERR_INVALID_PRIVILEGE;
} else if (ret == PRVMGR_ERR_NONE) {
TryReturn(mismatched_message != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] mismatched_message's strdup is failed.");
}
size_t new_size = snprintf(0, 0, "%s%s", mismatched_message, message) + 1;
- mismatched_message = realloc(mismatched_message, new_size * sizeof(char));
- TryReturn(mismatched_message != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] mismatched_message's realloc is failed.");
- strncat(mismatched_message, message, strlen(message));
+ char *tmp_message = realloc(mismatched_message, new_size * sizeof(char));
+ TryReturn(tmp_message != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] mismatched_message's realloc is failed.");
+ mismatched_message = tmp_message;
+ strncat(mismatched_message, message, strlen(message));
ret_val = PRVMGR_ERR_INVALID_PRIVILEGE;
}
} else if ((visibility & PRVMGR_PACKAGE_VISIBILITY_PARTNER) == PRVMGR_PACKAGE_VISIBILITY_PARTNER) {
TryReturn(mismatched_message != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] mismatched_message's strdup is failed.");
}
size_t new_size = snprintf(0, 0, "%s%s", mismatched_message, message) + 1;
- mismatched_message = realloc(mismatched_message, new_size * sizeof(char));
- TryReturn(mismatched_message, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] mismatched_message's realloc is failed.");
+ char *tmp_message = realloc(mismatched_message, new_size * sizeof(char));
+ TryReturn(tmp_message, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] mismatched_message's realloc is failed.");
+ mismatched_message = tmp_message;
+
strncat(mismatched_message, message, strlen(message));
ret_val = PRVMGR_ERR_INVALID_PRIVILEGE;
}
TryReturn(message_list != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] message_list's strdup is failed.");
if (noexist_message != NULL) {
size_t new_size = snprintf(0, 0, "%s[NO_EXIST_PRIVILEGE]|%s", message_list, noexist_message) + 1;
- message_list = realloc(message_list, new_size);
- TryReturn(message_list != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] message_list's realloc is failed.");
+ char *tmp_message_list = realloc(message_list, new_size);
+ TryReturn(tmp_message_list != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] message_list's realloc is failed.");
+ message_list = tmp_message_list;
strncat(message_list, "[NO_EXIST_PRIVILEGE]|", strlen("[NO_EXIST_PRIVILEGE]|"));
strncat(message_list, noexist_message, strlen(noexist_message));
}
if (deprecated_message != NULL) {
size_t new_size = snprintf(0, 0, "%s[DEPRECATED_PRIVILEGE]|%s", message_list, deprecated_message) + 1;
- message_list = realloc(message_list, new_size);
- TryReturn(message_list != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] message_list's realloc is failed.");
+ char *tmp_message_list = realloc(message_list, new_size);
+ TryReturn(tmp_message_list != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] message_list's realloc is failed.");
+ message_list = tmp_message_list;
strncat(message_list, "[DEPRECATED_PRIVILEGE]|", strlen("[DEPRECATED_PRIVILEGE]|"));
strncat(message_list, deprecated_message, strlen(deprecated_message));
}
if (mismatched_message != NULL) {
size_t new_size = snprintf(0, 0, "%s[MISMATCHED_PRIVILEGE_LEVEL]|%s", message_list, mismatched_message) + 1;
- message_list = realloc(message_list, new_size);
- TryReturn(message_list != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] message_list's realloc is failed.");
+ char *tmp_message_list = realloc(message_list, new_size);
+ TryReturn(tmp_message_list != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] message_list's realloc is failed.");
+ message_list = tmp_message_list;
strncat(message_list, "[MISMATCHED_PRIVILEGE_LEVEL]|", strlen("[MISMATCHED_PRIVILEGE_LEVEL]|"));
strncat(message_list, mismatched_message, strlen(mismatched_message));
}
size_t total_size = snprintf(0, 0, "%s%s", message_list, newline) + 1;
- message_list = realloc(message_list, total_size);
- TryReturn(message_list != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] message_list's realloc is failed.");
+ char* tmp_message_list = realloc(message_list, total_size);
+ TryReturn(tmp_message_list != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] message_list's realloc is failed.");
+ message_list = tmp_message_list;
strncat(message_list, newline, strlen(newline));
*error_message = strdup(message_list);
TryReturn(error_message != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed.");
printf("WRONG privacy: http://tizen.org/privilege/account.read\n");
ret = privilege_info_get_privacy_display("http://tizen.org/privilege/account.read", &privacy_display);
- if(ret == PRVMGR_ERR_INVALID_PARAMETER && privacy_display == NULL) {
+ if (ret == PRVMGR_ERR_INVALID_PARAMETER && privacy_display == NULL) {
success_cnt++;
printf("SUCCESS\n");
} else {
printf("NULL param\n");
ret = privilege_info_get_privacy_display(NULL, &privacy_display);
- if(ret == PRVMGR_ERR_INVALID_PARAMETER && privacy_display == NULL) {
+ if (ret == PRVMGR_ERR_INVALID_PARAMETER && privacy_display == NULL) {
success_cnt++;
printf("SUCCESS\n");
} else {
__print_line();
}
-static void __test__privilege_info_get_privilege_group_display_name()
+static void __test_privilege_info_get_privilege_group_display_name()
{
int ret;
char *group_name = NULL;
__check_get_privilege_group_display_name_result(PRVMGR_ERR_NONE, ret, group_name);
free(group_name);
+ printf("privilege : unknowngroup\n");
+ group_name = NULL;
+ ret = privilege_info_get_privilege_group_display_name("unknowngroup", &group_name);
+ __check_get_privilege_group_display_name_result(PRVMGR_ERR_NONE, ret, group_name);
+ free(group_name);
+
printf("privilege : NULL\n");
group_name = NULL;
ret = privilege_info_get_privilege_group_display_name(NULL, &group_name);
}
+static void __test_privilege_info_is_privacy2()
+{
+#ifndef PROFILE_TYPE_TV
+ int ret = 0;
+
+ printf("PRELOADED + NOT LOCATION PRIVACY -> ALLOW (not privacy)\n");
+ printf("pkgid: User::Pkg::org.tizen.privacy-setting\n");
+ printf("privilege : http://tizen.org/privilege/account.read\n");
+ ret = privilege_info_is_privacy2("User::Pkg::org.tizen.privacy-setting", "http://tizen.org/privilege/account.read");
+ if (ret == 0) {
+ success_cnt++;
+ printf("SUCCESS: http://tizen.org/privilege/account.read is PRIVACY but NOT LOCATION and pkg is PRELOADED\n");
+ } else {
+ fail_cnt++;
+ printf("Test FAILED. ret = %d\n", ret);
+ }
+ __print_line();
+
+ printf("PRELOADED + LOCATION PRIVACY -> ASK (privacy)\n");
+ printf("pkgid: User::Pkg::org.tizen.privacy-setting\n");
+ printf("privilege : http://tizen.org/privilege/internal/buxton/location\n");
+ ret = privilege_info_is_privacy2("User::Pkg::org.tizen.privacy-setting", "http://tizen.org/privilege/internal/buxton/location");
+ if (ret == 1) {
+ success_cnt++;
+ printf("SUCCESS: http://tizen.org/privilege/internal/buxton/location is LOCATION PRIVACY and pkg is PRELOADED\n");
+ } else {
+ fail_cnt++;
+ printf("Test FAILED. ret = %d\n", ret);
+ }
+ __print_line();
+
+ printf("PRELOADED + NOT PRIVACY -> ALLOW (not privacy)\n");
+ printf("pkgid: User::Pkg::org.tizen.privacy-setting\n");
+ printf("privilege : http://tizen.org/privilege/internet\n");
+ ret = privilege_info_is_privacy2("User::Pkg::org.tizen.privacy-setting", "http://tizen.org/privilege/internet");
+ if (ret == 0) {
+ success_cnt++;
+ printf("SUCCESS: http://tizen.org/privilege/internet is NOT PRIVACY\n");
+ } else {
+ fail_cnt++;
+ printf("Test FAILED. ret = %d\n", ret);
+ }
+ __print_line();
+
+ printf("NOT PRELOADED + NOT LOCATION PRIVACY -> ASK (privacy)\n");
+ printf("pkgid: User::Pkg::org.test.privacy\n");
+ printf("privilege : http://tizen.org/privilege/account.read\n");
+ ret = privilege_info_is_privacy2("User::Pkg::org.test.privacy", "http://tizen.org/privilege/account.read");
+ if (ret == 1) {
+ success_cnt++;
+ printf("SUCCESS: http://tizen.org/privilege/account.read is PRIVACY but NOT LOCATION and pkg is NOT PRELOADED\n");
+ } else {
+ fail_cnt++;
+ printf("Test FAILED. ret = %d\n", ret);
+ }
+ __print_line();
+
+ printf("NOT PRELOADED + LOCATION PRIVACY -> ASK (privacy)\n");
+ printf("pkgid: User::Pkg::org.test.privacy\n");
+ printf("privilege : http://tizen.org/privilege/location.coarse\n");
+ ret = privilege_info_is_privacy2("User::Pkg::org.test.privacy", "http://tizen.org/privilege/location.coarse");
+ if (ret == 1) {
+ success_cnt++;
+ printf("SUCCESS: http://tizen.org/privilege/location.coarse is LOCATION PRIVACY and pkg is NOT PRELOADED\n");
+ } else {
+ fail_cnt++;
+ printf("Test FAILED. ret = %d\n", ret);
+ }
+ __print_line();
+
+ printf("NOT PRELOADED + NOT PRIVACY -> ALLOW (not privacy)\n");
+ printf("pkgid: User::Pkg::org.test.privacy\n");
+ printf("privilege : http://tizen.org/privilege/internet\n");
+ ret = privilege_info_is_privacy2("User::Pkg::org.test.privacy", "http://tizen.org/privilege/internet");
+ if (ret == 0) {
+ success_cnt++;
+ printf("SUCCESS: http://tizen.org/privilege/internet is NOT PRIVACY and pkg is NOT PRELOADED\n");
+ } else {
+ fail_cnt++;
+ printf("Test FAILED. ret = %d\n", ret);
+ }
+ __print_line();
+
+
+ printf("NULL + NOT LOCATION PRIVACY -> ASK (privacy)\n");
+ printf("pkgid: NULL\n");
+ printf("privilege : http://tizen.org/privilege/account.read\n");
+ ret = privilege_info_is_privacy2(NULL, "http://tizen.org/privilege/account.read");
+ if (ret == 1) {
+ success_cnt++;
+ printf("SUCCESS: http://tizen.org/privilege/account.read is PRIVACY but NOT LOCATION and pkg is NOT PRELOADED\n");
+ } else {
+ fail_cnt++;
+ printf("Test FAILED. ret = %d\n", ret);
+ }
+ __print_line();
+
+
+ printf("NULL + NOT PRIVACY -> ALLOW (not privacy)\n");
+ printf("pkgid: NULL\n");
+ printf("privilege : http://tizen.org/privilege/internet\n");
+ ret = privilege_info_is_privacy2(NULL, "http://tizen.org/privilege/internet");
+ if (ret == 0) {
+ success_cnt++;
+ printf("SUCCESS: http://tizen.org/privilege/internet is NOT PRIVACY and pkg is NOT PRELOADED\n");
+ } else {
+ fail_cnt++;
+ printf("Test FAILED. ret = %d\n", ret);
+ }
+ __print_line();
+
+#endif
+}
+
int main()
{
__tcinfo(function, "privilege_info_is_privacy");
__test_privilege_info_get_privilege_description();
__tcinfo(function, "privilege_info_get_privilege_group_display_name");
- __test__privilege_info_get_privilege_group_display_name();
+ __test_privilege_info_get_privilege_group_display_name();
__tcinfo(function, "privilege_info_get_privacy_list");
__test_privilege_info_get_privacy_list();
__tcinfo(function, "privilege_info_get_privacy_display");
__test_privilege_info_get_privacy_display();
+ __tcinfo(function, "privilege_info_is_privacy2");
+ __test_privilege_info_is_privacy2();
+
__color_to_green();
printf("Test Complete\n");
printf("success : %d, ", success_cnt);