* @remarks If the package have no privacy privilege then it will return PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT
* @param [in] uid The uid
* @param [in] pkgid The package ID
+ * @param [in] privilege The privilege
* @param [out] is_privacy_requestable is_privacy_requestable value
* @return 0 on success, otherwise a negative error value.
* @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
* @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
* @retval #PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT No data selected by given qeury.
*/
-int privilege_db_manager_is_privacy_requestable(const uid_t uid, const char* pkgid, bool* is_privacy_requestable);
+int privilege_db_manager_is_privacy_requestable(const uid_t uid, const char* pkgid, const char* privilege, privilege_manager_package_type_e pkg_type, bool* is_privacy_requestable);
/**
* @brief Get is_critical value for thr privilege and package
* @retval #PRVMGR_ERR_INVALID_PARAMETER Invalid parameter
* @retval #PRVMGR_ERR_INTERNAL_ERROR Internal error
*/
-EXPORT_API int privilege_package_info_is_privacy_requestable(const uid_t uid, const char* pkgid, bool* is_requestable);
-
-/**
- * @brief See if the given api-version is privacy requestable api-version.
- * @param [in] api_version The api-version
- * @param [out] is_requestable Indicates whether the given api-version is privacy requestable(true) or not(false).
- * @return 0 on success, otherwise a negative 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_package_info_is_privacy_requestable_api_version(const char* api_version, bool* is_requestable);
+EXPORT_API int privilege_package_info_is_privacy_requestable(const uid_t uid, const char* pkgid, const char* privilege, bool* is_requestable);
/**
* @brief Check if the given privilege is critical for the application package.
common,http://tizen.org/privilege/mediastorage,2.2.1,9.9,http://tizen.org/privilege/mediastorage
common,http://tizen.org/privilege/messaging.read,2.2.1,9.9,http://tizen.org/privilege/email
common,http://tizen.org/privilege/messaging.read,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/message.read
-common,http://tizen.org/privilege/messaging.read,2.2.1,4,http://tizen.org/privilege/mediastorage
+mobile,http://tizen.org/privilege/messaging.read,2.2.1,5,http://tizen.org/privilege/mediastorage
+wearable,http://tizen.org/privilege/messaging.read,2.2.1,4,http://tizen.org/privilege/mediastorage
+tv,http://tizen.org/privilege/messaging.read,2.2.1,5,http://tizen.org/privilege/mediastorage
common,http://tizen.org/privilege/messaging.read,2.2.1,9.9,http://tizen.org/privilege/message.read
common,http://tizen.org/privilege/messaging.write,2.2.1,9.9,http://tizen.org/privilege/email
common,http://tizen.org/privilege/messaging.write,2.2.1,9.9,http://tizen.org/privilege/telephony
common,http://tizen.org/privilege/messaging.write,2.2.1,9.9,http://tizen.org/privilege/message.read
common,http://tizen.org/privilege/messaging.write,2.2.1,9.9,http://tizen.org/privilege/message.write
-common,http://tizen.org/privilege/messaging.write,2.2.1,4,http://tizen.org/privilege/mediastorage
+mobile,http://tizen.org/privilege/messaging.write,2.2.1,5,http://tizen.org/privilege/mediastorage
+wearable,http://tizen.org/privilege/messaging.write,2.2.1,4,http://tizen.org/privilege/mediastorage
+tv,http://tizen.org/privilege/messaging.write,2.2.1,5,http://tizen.org/privilege/mediastorage
common,http://tizen.org/privilege/messaging.write,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/message.read
common,http://tizen.org/privilege/networkbearerselection,2.2.1,9.9,http://tizen.org/privilege/network.set
common,http://tizen.org/privilege/nfc.admin,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/nfc
mobile,http://tizen.org/privilege/internal/default/public,2.2.1,2.3,http://tizen.org/privilege/call
mobile,http://tizen.org/privilege/internal/default/public,2.2.1,2.3,http://tizen.org/privilege/camera
mobile,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/display
-mobile,http://tizen.org/privilege/internal/default/public,2.2.1,4,http://tizen.org/privilege/externalstorage
+mobile,http://tizen.org/privilege/internal/default/public,2.2.1,5,http://tizen.org/privilege/externalstorage
mobile,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/haptic
mobile,http://tizen.org/privilege/internal/default/public,2.2.1,2.4,http://tizen.org/privilege/internal/buxton/location
mobile,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/network.get
mobile,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/internal/default/public
mobile,http://tizen.org/privilege/internal/default/public,2.2.1,2.3,http://tizen.org/privilege/internet
mobile,http://tizen.org/privilege/internal/default/public,2.2.1,2.3,http://tizen.org/privilege/location
-mobile,http://tizen.org/privilege/internal/default/public,2.2.1,4,http://tizen.org/privilege/mediastorage
+mobile,http://tizen.org/privilege/internal/default/public,2.2.1,5,http://tizen.org/privilege/mediastorage
mobile,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/network.get
mobile,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/notification
mobile,http://tizen.org/privilege/internal/default/public,2.2.1,9.9,http://tizen.org/privilege/packagemanager.info
mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,2.3,http://tizen.org/privilege/call
mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,2.3,http://tizen.org/privilege/camera
mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/display
-mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,4,http://tizen.org/privilege/externalstorage
+mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,5,http://tizen.org/privilege/externalstorage
mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/haptic
mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,2.4,http://tizen.org/privilege/internal/buxton/location
mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/network.get
mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/internal/default/public
mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,2.3,http://tizen.org/privilege/internet
mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,2.3,http://tizen.org/privilege/location
-mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,4,http://tizen.org/privilege/mediastorage
+mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,5,http://tizen.org/privilege/mediastorage
mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/network.get
mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/notification
mobile,http://tizen.org/privilege/internal/default/partner,2.2.1,9.9,http://tizen.org/privilege/packagemanager.info
mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,2.3,http://tizen.org/privilege/call
mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,2.3,http://tizen.org/privilege/camera
mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/display
-mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,4,http://tizen.org/privilege/externalstorage
+mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,5,http://tizen.org/privilege/externalstorage
mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/haptic
mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,2.4,http://tizen.org/privilege/internal/buxton/location
mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/internal/buxton/network.get
mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/internal/default/public
mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,2.3,http://tizen.org/privilege/internet
mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,2.3,http://tizen.org/privilege/location
-mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,4,http://tizen.org/privilege/mediastorage
+mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,5,http://tizen.org/privilege/mediastorage
mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/network.get
mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/notification
mobile,http://tizen.org/privilege/internal/default/platform,2.2.1,9.9,http://tizen.org/privilege/packagemanager.info
tv,http://tizen.org/privilege/internal/default/public,2.3,2.4,http://tizen.org/privilege/call
tv,http://tizen.org/privilege/internal/default/public,2.3,2.4,http://tizen.org/privilege/camera
tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/display
-tv,http://tizen.org/privilege/internal/default/public,2.3,4,http://tizen.org/privilege/externalstorage
+tv,http://tizen.org/privilege/internal/default/public,2.3,5,http://tizen.org/privilege/externalstorage
tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/haptic
tv,http://tizen.org/privilege/internal/default/public,2.3,2.4,http://tizen.org/privilege/internal/buxton/location
tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/internal/buxton/network.get
tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/internal/buxton/telephony
tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/internal/default/public
tv,http://tizen.org/privilege/internal/default/public,2.3,2.4,http://tizen.org/privilege/internet
-tv,http://tizen.org/privilege/internal/default/public,2.3,4,http://tizen.org/privilege/mediastorage
+tv,http://tizen.org/privilege/internal/default/public,2.3,5,http://tizen.org/privilege/mediastorage
tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/network.get
tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/notification
tv,http://tizen.org/privilege/internal/default/public,2.3,9.9,http://tizen.org/privilege/packagemanager.info
tv,http://tizen.org/privilege/internal/default/partner,2.3,2.4,http://tizen.org/privilege/call
tv,http://tizen.org/privilege/internal/default/partner,2.3,2.4,http://tizen.org/privilege/camera
tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/display
-tv,http://tizen.org/privilege/internal/default/partner,2.3,4,http://tizen.org/privilege/externalstorage
+tv,http://tizen.org/privilege/internal/default/partner,2.3,5,http://tizen.org/privilege/externalstorage
tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/haptic
tv,http://tizen.org/privilege/internal/default/partner,2.3,2.4,http://tizen.org/privilege/internal/buxton/location
tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/internal/buxton/network.get
tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/internal/default/partner
tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/internal/default/public
tv,http://tizen.org/privilege/internal/default/partner,2.3,2.4,http://tizen.org/privilege/internet
-tv,http://tizen.org/privilege/internal/default/partner,2.3,4,http://tizen.org/privilege/mediastorage
+tv,http://tizen.org/privilege/internal/default/partner,2.3,5,http://tizen.org/privilege/mediastorage
tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/network.get
tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/notification
tv,http://tizen.org/privilege/internal/default/partner,2.3,9.9,http://tizen.org/privilege/packagemanager.info
tv,http://tizen.org/privilege/internal/default/platform,2.3,2.4,http://tizen.org/privilege/call
tv,http://tizen.org/privilege/internal/default/platform,2.3,2.4,http://tizen.org/privilege/camera
tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/display
-tv,http://tizen.org/privilege/internal/default/platform,2.3,4,http://tizen.org/privilege/externalstorage
+tv,http://tizen.org/privilege/internal/default/platform,2.3,5,http://tizen.org/privilege/externalstorage
tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/haptic
tv,http://tizen.org/privilege/internal/default/platform,2.3,2.4,http://tizen.org/privilege/internal/buxton/location
tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/internal/buxton/network.get
tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/internal/default/platform
tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/internal/default/public
tv,http://tizen.org/privilege/internal/default/platform,2.3,2.4,http://tizen.org/privilege/internet
-tv,http://tizen.org/privilege/internal/default/platform,2.3,4,http://tizen.org/privilege/mediastorage
+tv,http://tizen.org/privilege/internal/default/platform,2.3,5,http://tizen.org/privilege/mediastorage
tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/network.get
tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/notification
tv,http://tizen.org/privilege/internal/default/platform,2.3,9.9,http://tizen.org/privilege/packagemanager.info
#define GLOBAL_USER 0
#endif
+#define STORAGE_PRIVACY "http://tizen.org/privacy/storage"
+
#include <iniparser.h>
privilege_profile_type_e get_priv_profile()
{
char* sql = NULL;
char * privacy_name = NULL;
ret = privilege_db_manager_get_privacy_by_privilege(privilege_name, &privacy_name);
- if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privacy_name != NULL && strstr(privacy_name, "N/A") == NULL && privilege_db_manager_is_user_settable(pkgid, privacy_name) == 1) {
+ if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && strstr(privacy_name, "N/A") == NULL && privilege_db_manager_is_user_settable(pkgid, privacy_name) == 1) {
sql = sqlite3_mprintf("insert or replace into privacy_package (uid, pkg_id, privacy_name, privilege_name, api_version, is_critical) values (%d, %Q, %Q, %Q, %Q, 1)", uid, pkgid, privacy_name, privilege_name, api_version);
TryReturn(sql != NULL, sqlite3_exec(db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); g_list_free_full(mapped_privilege_list, free); free(privacy_name); __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);
char* sql = NULL;
char * privacy_name = NULL;
ret = privilege_db_manager_get_privacy_by_privilege(privilege_name, &privacy_name);
- if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privacy_name != NULL && strstr(privacy_name, "N/A") == NULL && privilege_db_manager_is_user_settable(pkgid, privacy_name) == 1) {
+ if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && strstr(privacy_name, "N/A") == NULL && privilege_db_manager_is_user_settable(pkgid, privacy_name) == 1) {
sql = sqlite3_mprintf("insert or ignore into privacy_package (uid, pkg_id, privacy_name, privilege_name, api_version, is_critical) values (%d, %Q, %Q, %Q, %Q, 0)", uid, pkgid, privacy_name, privilege_name, api_version);
TryReturn(sql != NULL, sqlite3_exec(db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); g_list_free_full(mapped_privilege_list, free); free(privacy_name); __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);
return ret;
}
-int privilege_db_manager_is_privacy_requestable(const uid_t uid, const char* pkgid, bool* is_privacy_requestable)
+int privilege_db_manager_is_privacy_requestable(const uid_t uid, const char* pkgid, const char* privilege, privilege_manager_package_type_e pkg_type, bool* is_privacy_requestable)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
return ret;
- char* sql = sqlite3_mprintf("select (case when api_version < 4 then 0 else 1 end) from privacy_package where (uid=%d or uid=%d) and pkg_id=%Q", uid, GLOBAL_USER, pkgid);
+ char* sql = NULL;
+ if (g_privilege_profile_type == PRIVILEGE_PROFILE_TYPE_WEARABLE || pkg_type == PRVMGR_PACKAGE_TYPE_CORE) {
+ sql = sqlite3_mprintf("select (case when api_version < 4 then 0 else 1 end) from privacy_package where (uid=%d or uid=%d) and pkg_id=%Q and privilege_name=%Q", uid, GLOBAL_USER, pkgid, privilege);
+ } else {
+ sql = sqlite3_mprintf("select (case when api_version < 4 or (api_version < 5 and privacy_name=%Q) then 0 else 1 end) from privacy_package where (uid=%d or uid=%d) and pkg_id=%Q and privilege_name=%Q", STORAGE_PRIVACY, uid, GLOBAL_USER, pkgid, 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));
else
*is_privacy_requestable = false;
} else if (ret == SQLITE_DONE) {
+ _LOGD("no result!!!!");
__finalize_db(db, stmt, sql);
return PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT;
} else {
return ret;
}
+static int __get_pkg_type(const char *pkgid, privilege_manager_package_type_e *pkg_type)
+{
+ int ret = 0;
+ char *type = NULL;
+ pkgmgrinfo_pkginfo_h handle;
+ ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+ if (ret != PMINFO_R_OK) {
+ LOGE("failed to get pkginfo handle! pkgid <%s>", pkgid);
+ return -1;
+ }
+ ret = pkgmgrinfo_pkginfo_get_type(handle, &type);
+ if (ret != PMINFO_R_OK) {
+ LOGE("failed to get type, pkgid <%s>", pkgid);
+ pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+ return -1;
+ }
+ if (strcmp(type, "wgt") == 0)
+ *pkg_type = PRVMGR_PACKAGE_TYPE_WRT;
+ else
+ *pkg_type = PRVMGR_PACKAGE_TYPE_CORE;
+ pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+ return 0;
+}
+
int privilege_info_get_privilege_type(uid_t uid, const char* pkgid, const char* privilege, privilege_manager_privilege_type_e *type)
{
TryReturn(pkgid != NULL && privilege != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] pkgid or privilege is NULL");
+
int ret = PRVMGR_ERR_NONE;
ret = privilege_info_is_privacy(privilege);
if (ret == 1) {
*type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL;
ret = PRVMGR_ERR_NONE;
} else if (ret == 0) {
+ privilege_manager_package_type_e pkg_type = PRVMGR_PACKAGE_TYPE_NONE;
+ ret = __get_pkg_type(pkgid, &pkg_type);
+ TryReturn(ret == 0 && pkg_type != PRVMGR_PACKAGE_TYPE_NONE, , PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] failed to get pkg type of <%s>", pkgid);
+
bool is_requestable = false;
- ret = privilege_db_manager_is_privacy_requestable(uid, pkgid, &is_requestable);
+ ret = privilege_db_manager_is_privacy_requestable(uid, pkgid, privilege, pkg_type, &is_requestable);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE && ret != PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
LOGE("privilege_db_manager_is_privacy_requestable failed");
return PRVMGR_ERR_INTERNAL_ERROR;
#include <stdlib.h>
#include <dlog.h>
#include <glib.h>
+#include <pkgmgr-info.h>
+
#include "privilege_db_manager.h"
#include "privilege_private.h"
#include "privilege_package_info.h"
return returnValue; \
}
-static int __is_privacy_requestable_api_version(const char* api_version)
-{
- api_version_code_t api_version_code;
- api_version_code_t privacy_requestable_api_version_code;
- int ret = __get_api_version_code(api_version, &api_version_code);
- TryReturn(ret == PRVMGR_ERR_NONE, , -1, "[PRVMGR_ERR_INTERNAL_ERROR] __get_api_version_code failed. ret = %d", ret);
- ret = __get_api_version_code(PRIVACY_REQUESTABLE_API_VERSION, &privacy_requestable_api_version_code);
- TryReturn(ret == PRVMGR_ERR_NONE, , -1, "[PRVMGR_ERR_INTERNAL_ERROR] __get_api_version_code failed. ret = %d", ret);
- if (api_version_code < privacy_requestable_api_version_code)
- return 0;
-
- return 1;
-}
-
int privilege_package_info_set_privacy_privilege(const uid_t uid, const char* pkgid, privilege_manager_package_type_e pkg_type, const char* api_version, GList* privilege_list)
{
if (DISABLE_ASKUSER)
return PRVMGR_ERR_NONE;
}
-int privilege_package_info_is_privacy_requestable(const uid_t uid, const char* pkgid, bool* is_requestable)
+static int __get_pkg_type(const char *pkgid, privilege_manager_package_type_e *pkg_type)
+{
+ int ret = 0;
+ char *type = NULL;
+ pkgmgrinfo_pkginfo_h handle;
+ ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
+ if (ret != PMINFO_R_OK) {
+ LOGE("failed to get pkginfo handle! pkgid <%s>", pkgid);
+ return -1;
+ }
+ ret = pkgmgrinfo_pkginfo_get_type(handle, &type);
+ if (ret != PMINFO_R_OK) {
+ LOGE("failed to get type, pkgid <%s>", pkgid);
+ pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+ return -1;
+ }
+ if (strcmp(type, "wgt") == 0)
+ *pkg_type = PRVMGR_PACKAGE_TYPE_WRT;
+ else
+ *pkg_type = PRVMGR_PACKAGE_TYPE_CORE;
+ pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
+ return 0;
+}
+
+int privilege_package_info_is_privacy_requestable(const uid_t uid, const char* pkgid, const char* privilege, bool* is_requestable)
{
TryReturn(pkgid != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] pkgid must not be NULL.");
- int ret = privilege_db_manager_is_privacy_requestable(uid, pkgid, is_requestable);
+
+ privilege_manager_package_type_e pkg_type = PRVMGR_PACKAGE_TYPE_NONE;
+ int ret = __get_pkg_type(pkgid, &pkg_type);
+ TryReturn(ret == 0 && pkg_type != PRVMGR_PACKAGE_TYPE_NONE, , PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] failed to get pkg type of <%s>", pkgid);
+ ret = privilege_db_manager_is_privacy_requestable(uid, pkgid, privilege, pkg_type, is_requestable);
+
if (ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) { // CASE: given pkgid have no privacy privileges
*is_requestable = false;
} else if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) {
}
return PRVMGR_ERR_NONE;
}
-int privilege_package_info_is_privacy_requestable_api_version(const char* api_version, bool* is_requestable)
-{
- TryReturn(api_version != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] api_version must not be NULL");
- int is_privacy_requestable = __is_privacy_requestable_api_version(api_version);
- if (is_privacy_requestable == 1)
- *is_requestable = true;
- else if (is_privacy_requestable == 0)
- *is_requestable = false;
- else
- return PRVMGR_ERR_INTERNAL_ERROR;
- return PRVMGR_ERR_NONE;
-}
int privilege_package_info_is_critical_privilege(const uid_t uid, const char* pkgid, const char* privilege, bool* is_critical)
{
printf("%c[%dm%c[%dm", 0x1B, 1, 0x1B, YELLOW);
}
+void __set_privacy_test_pkg_info()
+{
+ int ret = system("/usr/bin/sqlite3 /opt/dbspace/.pkgmgr_parser.db \"insert into package_info (package, package_type, package_api_version, install_location, mainapp_id, root_path, installed_storage) values ('org.test.webapp_4', 'wgt', '4.0', 'auto', 'org.test.webapp_4', '/opt/usr/globallapps/org.test.webapp_4', 'installed_internal')\"");
+ if (ret != 0)
+ printf_red("failed to set pkg info. ret = %d\n", ret);
+ ret = system("/usr/bin/sqlite3 /opt/dbspace/.pkgmgr_parser.db \"insert into package_info (package, package_type, package_api_version, install_location, mainapp_id, root_path, installed_storage) values ('org.test.webapp_5', 'wgt', '5.0', 'auto', 'org.test.webapp_5', '/opt/usr/globallapps/org.test.webapp_5', 'installed_internal')\"");
+ if (ret != 0)
+ printf_red("failed to set pkg info. ret = %d\n", ret);
+ret = system("/usr/bin/sqlite3 /opt/dbspace/.pkgmgr_parser.db \"insert into package_info (package, package_type, package_api_version, install_location, mainapp_id, root_path, installed_storage) values ('org.test.nativeapp_3', 'tpk', '3.0', 'auto', 'org.test.nativeapp_3', '/opt/usr/globallapps/org.test.nativeapp_3', 'installed_internal')\"");
+ if (ret != 0)
+ printf_red("failed to set pkg info. ret = %d\n", ret);
+
+}
+
+void __unset_privacy_test_pkg_info()
+{
+ int ret = system("/usr/bin/sqlite3 /opt/dbspace/.pkgmgr_parser.db \"delete from package_info where package like '%org.test.%'\"");
+ if (ret != 0)
+ printf_red("failed to unset pkg info\n");
+
+}
+
/* error enum to string */
char* __get_result_string(char type, int ret)
{
void __print_result(char type, int result);
+void __set_privacy_test_pkg_info();
+void __unset_privacy_test_pkg_info();
+
typedef enum {
TIZEN_PROFILE_UNKNOWN = 0,
TIZEN_PROFILE_MOBILE = 0x1,
#include <stdio.h>
#include <stdlib.h>
#include <privilege_info.h>
+#include <privilege_package_info.h>
#include <tc-common.h>
static void __check_get_privilege_display_name_result(privilege_manager_error_e expected_result, privilege_manager_error_e result, const char *display_name)
int test = 0;
privilege_manager_privilege_type_e type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_MAX;
+ /* Set test app info */
+ __set_privacy_test_pkg_info();
+
+ /* Web api-version 4.0 & 5.0 */
+ __print_line();
+ __tcinfo(goal, "set 5001, org.test.webapp_4's privacy privilege set. api_version = 4.0");
+ __privinfo("http://tizen.org/privilege/call", NULL, NULL);
+ __privinfo("http://tizen.org/privilege/mediastorage", NULL, NULL);
+ ret = privilege_package_info_set_privacy_privilege(5001, "org.test.webapp_4", PRVMGR_PACKAGE_TYPE_WRT, "4.0", privilege_list);
+ gfree(privilege_list);
+ if (ret != PRVMGR_ERR_NONE) {
+ printf_red("Failed to set up test info\n");
+ return;
+ }
+
+ __print_line();
+ __tcinfo(goal, "set 5001, org.test.webapp_5's privacy privilege set. api_version = 5.0");
+ __privinfo("http://tizen.org/privilege/call", NULL, NULL);
+ __privinfo("http://tizen.org/privilege/mediastorage", NULL, NULL);
+ ret = privilege_package_info_set_privacy_privilege(5001, "org.test.webapp_5", PRVMGR_PACKAGE_TYPE_WRT, "5.0", privilege_list);
+ gfree(privilege_list);
+ if (ret != PRVMGR_ERR_NONE) {
+ printf_red("Failed to set up test info\n");
+ return;
+ }
+ /* Set up done */
+
__print_line();
printf("uid = 5001\n");
- printf("pkgid = org.tizen.contacts\n");
+ printf("pkgid = org.test.webapp_4\n");
printf("privilege = http://tizen.org/privilege/internet\n");
printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL\n");
- ret = privilege_info_get_privilege_type(5001, "org.tizen.contacts", "http://tizen.org/privilege/internet", &type);
+ ret = privilege_info_get_privilege_type(5001, "org.test.webapp_4", "http://tizen.org/privilege/internet", &type);
if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL) {
success_cnt++;
printf_green("success\n");
__print_line();
printf("uid = 5001\n");
+ printf("pkgid = org.test.webapp_4\n");
+ printf("privilege = http://tizen.org/privilege/mediastorage\n");
+ ret = privilege_info_get_privilege_type(5001, "org.test.webapp_4", "http://tizen.org/privilege/mediastorage", &type);
+ if (_get_tizen_profile() == TIZEN_PROFILE_WEARABLE) {
+ printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY\n");
+ if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY) {
+ success_cnt++;
+ printf_green("success\n");
+ } else {
+ fail_cnt++;
+ printf_red("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type));
+ }
+ } else {
+ printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL\n");
+ if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL) {
+ success_cnt++;
+ printf_green("success\n");
+ } else {
+ fail_cnt++;
+ printf_red("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type));
+ }
+ }
+
+ type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_MAX;
+
+ __print_line();
+ printf("uid = 5001\n");
+ printf("pkgid = org.test.webapp_4\n");
+ printf("privilege = http://tizen.org/privilege/call\n");
+ printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY\n");
+ ret = privilege_info_get_privilege_type(5001, "org.test.webapp_4", "http://tizen.org/privilege/call", &type);
+ if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY) {
+ success_cnt++;
+ printf_green("success\n");
+ } else {
+ fail_cnt++;
+ printf_red("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type));
+ }
+
+ type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_MAX;
+
+ __print_line();
+ printf("uid = 5001\n");
+ printf("pkgid = org.test.webapp_5\n");
+ printf("privilege = http://tizen.org/privilege/mediastorage\n");
+ printf("expected type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY\n");
+ ret = privilege_info_get_privilege_type(5001, "org.test.webapp_5", "http://tizen.org/privilege/mediastorage", &type);
+ if (ret == PRVMGR_ERR_NONE && type == PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY) {
+ success_cnt++;
+ printf_green("success\n");
+ } else {
+ fail_cnt++;
+ printf_red("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type));
+ }
+
+ type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_MAX;
+
+ __print_line();
+ printf("uid = 5001\n");
printf("pkgid = org.tizen.chromium-efl\n");
printf("privilege = http://tizen.org/privilege/location\n");
ret = privilege_info_get_privilege_type(5001, "org.tizen.chromium-efl", "http://tizen.org/privilege/location", &type);
fail_cnt++;
printf_red("fail. ret = %s, type = %s\n", __get_result_string('m', ret), __get_privilege_type_string(type));
}
+
+ __print_line();
+ __tcinfo(goal, "unset 5001, org.test.webapp_4's package privilege info.");
+ ret = privilege_package_info_unset_package_privilege_info(5001, "org.test.webapp_4");
+ if (ret != PRVMGR_ERR_NONE) {
+ printf_red("Failed to unset test info\n");
+ fail_cnt += 1000;
+ }
+
+ __print_line();
+ __tcinfo(goal, "unset 5001, org.test.webapp_5's package privilege info.");
+ ret = privilege_package_info_unset_package_privilege_info(5001, "org.test.webapp_5");
+ if (ret != PRVMGR_ERR_NONE) {
+ printf_red("Failed to unset test info\n");
+ fail_cnt += 1000;
+ }
+
+ __unset_privacy_test_pkg_info();
+
__print_line();
}
int ret = 0;
bool is_requestable;
+ __set_privacy_test_pkg_info();
+ /* Native api-version 3.0 */
gfree(privilege_list);
__print_line();
- __tcinfo(goal, "set 5001, org.test.nativeapp privacy privilege set. api_version = 3.0");
+ __tcinfo(goal, "set 5001, org.test.nativeapp_3 privacy privilege set. api_version = 3.0");
+ __privinfo("http://tizen.org/privilge/internal/default/public", NULL, NULL);
__privinfo("http://tizen.org/privilege/internet", NULL, NULL);
__privinfo("http://tizen.org/privilege/call", NULL, NULL);
__privinfo("http://tizen.org/privilege/bookmark.admin", NULL, NULL);
__privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
__privinfo("http://tizen.org/privilege/account.write", NULL, NULL);
__privinfo("http://tizen.org/privilege/display", NULL, NULL);
- ret = privilege_package_info_set_privacy_privilege(5001, "org.test.nativeapp", PRVMGR_PACKAGE_TYPE_CORE, "3.0", privilege_list);
+ ret = privilege_package_info_set_privacy_privilege(5001, "org.test.nativeapp_3", PRVMGR_PACKAGE_TYPE_CORE, "3.0", privilege_list);
__tcinfo(expect, PRVMGR_ERR_NONE);
__print_result('m', ret);
gfree(privilege_list);
__print_line();
- __tcinfo(goal, "set 5001, org.test.nativeapp critical privilege set. api_version = 3.0");
+ __tcinfo(goal, "set 5001, org.test.nativeapp_3 critical privilege set. api_version = 3.0");
__privinfo("http://tizen.org/privilege/internet", NULL, NULL);
__privinfo("http://tizen.org/privilege/call", NULL, NULL);
__privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
__privinfo("http://tizen.org/privilege/display", NULL, NULL);
- ret = privilege_package_info_set_critical_privilege(5001, "org.test.nativeapp", PRVMGR_PACKAGE_TYPE_CORE, "3.0", privilege_list);
+ ret = privilege_package_info_set_critical_privilege(5001, "org.test.nativeapp_3", PRVMGR_PACKAGE_TYPE_CORE, "3.0", privilege_list);
__tcinfo(expect, PRVMGR_ERR_NONE);
__print_result('m', ret);
gfree(privilege_list);
+ /* Web api-version 4.0 */
__print_line();
- __tcinfo(goal, "set 5001, org.test.webapp's privacy privilege set. api_version = 4.0");
+ __tcinfo(goal, "set 5001, org.test.webapp_4's privacy privilege set. api_version = 4.0");
+ __privinfo("http://tizen.org/privilge/internal/default/public", NULL, NULL);
__privinfo("http://tizen.org/privilege/internet", NULL, NULL);
__privinfo("http://tizen.org/privilege/call", NULL, NULL);
__privinfo("http://tizen.org/privilege/bookmark.read", NULL, NULL);
__privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
__privinfo("http://tizen.org/privilege/download", NULL, NULL);
__privinfo("http://tizen.org/privilege/messaging.write", NULL, NULL);
- ret = privilege_package_info_set_privacy_privilege(5001, "org.test.webapp", PRVMGR_PACKAGE_TYPE_WRT, "4.0", privilege_list);
+ __privinfo("http://tizen.org/privilege/mediastorage", NULL, NULL);
+ ret = privilege_package_info_set_privacy_privilege(5001, "org.test.webapp_4", PRVMGR_PACKAGE_TYPE_WRT, "4.0", privilege_list);
__tcinfo(expect, PRVMGR_ERR_NONE);
__print_result('m', ret);
gfree(privilege_list);
__print_line();
- __tcinfo(goal, "set 5001, org.test.webapp's critical privilege set. api_version = 4.0");
+ __tcinfo(goal, "set 5001, org.test.webapp_4's critical privilege set. api_version = 4.0");
__privinfo("http://tizen.org/privilege/internet", NULL, NULL);
__privinfo("http://tizen.org/privilege/messaging.write", NULL, NULL);
__privinfo("http://tizen.org/privilege/mediacapture", NULL, NULL);
+ __privinfo("http://tizen.org/privilege/mediastorage", NULL, NULL);
+ ret = privilege_package_info_set_critical_privilege(5001, "org.test.webapp_4", PRVMGR_PACKAGE_TYPE_WRT, "4.0", privilege_list);
+ __tcinfo(expect, PRVMGR_ERR_NONE);
+ __print_result('m', ret);
+ gfree(privilege_list);
+
+ /* Web api-version 5.0 */
+ __print_line();
+ __tcinfo(goal, "set 5001, org.test.webapp_5's privacy privilege set. api_version = 5.0");
+ __privinfo("http://tizen.org/privilge/internal/default/public", NULL, NULL);
+ __privinfo("http://tizen.org/privilege/internet", NULL, NULL);
+ __privinfo("http://tizen.org/privilege/call", NULL, NULL);
+ __privinfo("http://tizen.org/privilege/bookmark.read", NULL, NULL);
+ __privinfo("http://tizen.org/privilege/mediacapture", NULL, NULL);
+ __privinfo("http://tizen.org/privilege/account.read", NULL, NULL);
__privinfo("http://tizen.org/privilege/download", NULL, NULL);
- ret = privilege_package_info_set_critical_privilege(5001, "org.test.webapp", PRVMGR_PACKAGE_TYPE_WRT, "4.0", privilege_list);
+ __privinfo("http://tizen.org/privilege/messaging.write", NULL, NULL);
+ __privinfo("http://tizen.org/privilege/mediastorage", NULL, NULL);
+ ret = privilege_package_info_set_privacy_privilege(5001, "org.test.webapp_5", PRVMGR_PACKAGE_TYPE_WRT, "5.0", privilege_list);
__tcinfo(expect, PRVMGR_ERR_NONE);
__print_result('m', ret);
gfree(privilege_list);
__print_line();
- __tcinfo(goal, "see if http://tizen.org/privilege/message.read is critical for uid 5001, org.test.webapp");
- ret = privilege_package_info_is_critical_privilege(5001, "org.test.webapp", "http://tizen.org/privilege/message.read", &is_requestable);
+ __tcinfo(goal, "set 5001, org.test.webapp_5's critical privilege set. api_version = 5.0");
+ __privinfo("http://tizen.org/privilege/internet", NULL, NULL);
+ __privinfo("http://tizen.org/privilege/messaging.write", NULL, NULL);
+ __privinfo("http://tizen.org/privilege/mediacapture", NULL, NULL);
+ __privinfo("http://tizen.org/privilege/mediastorage", NULL, NULL);
+ ret = privilege_package_info_set_critical_privilege(5001, "org.test.webapp_5", PRVMGR_PACKAGE_TYPE_WRT, "5.0", privilege_list);
+ __tcinfo(expect, PRVMGR_ERR_NONE);
+ __print_result('m', ret);
+ gfree(privilege_list);
+
+
+ /* Test */
+
+ __print_line();
+ __tcinfo(goal, "see if http://tizen.org/privilege/message.read is critical for uid 5001, org.test.webapp_4");
+ ret = privilege_package_info_is_critical_privilege(5001, "org.test.webapp_4", "http://tizen.org/privilege/message.read", &is_requestable);
+ if (is_requestable && ret == PRVMGR_ERR_NONE) {
+ printf_green("\nis critical privilege. SUCCESS\n");
+ success_cnt++;
+ } else {
+ printf_red("\nFAIL\nis requestable = %s, ret = %s\n", is_requestable ? "true" : "false", __get_result_string('m', ret));
+ fail_cnt++;
+ }
+
+ __print_line();
+ __tcinfo(goal, "see if http://tizen.org/privilege/internet is critical for uid 5001, org.test.webapp_4");
+ ret = privilege_package_info_is_critical_privilege(5001, "org.test.webapp_4", "http://tizen.org/privilege/internet", &is_requestable);
+ if (!is_requestable && ret == PRVMGR_ERR_NONE) {
+ printf_green("\nis not critical privilege. SUCCESS\n");
+ success_cnt++;
+ } else {
+ printf_red("\nFAIL\nis requestable = %s, ret = %s\n", is_requestable ? "true" : "false", __get_result_string('m', ret));
+ fail_cnt++;
+ }
+
+ __print_line();
+ __tcinfo(goal, "see if http://tizen.org/privilege/message.read is critical for uid 5001, org.test.webapp_5");
+ ret = privilege_package_info_is_critical_privilege(5001, "org.test.webapp_5", "http://tizen.org/privilege/message.read", &is_requestable);
if (is_requestable && ret == PRVMGR_ERR_NONE) {
printf_green("\nis critical privilege. SUCCESS\n");
success_cnt++;
} else {
- printf_red("\nFAIL\n");
+ printf_red("\nFAIL\nis requestable = %s, ret = %s\n", is_requestable ? "true" : "false", __get_result_string('m', ret));
fail_cnt++;
}
__print_line();
- __tcinfo(goal, "see if http://tizen.org/privilege/internet is critical for uid 5001, org.test.webapp");
- ret = privilege_package_info_is_critical_privilege(5001, "org.test.webapp", "http://tizen.org/privilege/internet", &is_requestable);
+ __tcinfo(goal, "see if http://tizen.org/privilege/internet is critical for uid 5001, org.test.webapp_5");
+ ret = privilege_package_info_is_critical_privilege(5001, "org.test.webapp_5", "http://tizen.org/privilege/internet", &is_requestable);
if (!is_requestable && ret == PRVMGR_ERR_NONE) {
printf_green("\nis not critical privilege. SUCCESS\n");
success_cnt++;
} else {
- printf_red("\nFAIL\n");
+ printf_red("\nFAIL\nis requestable = %s, ret = %s\n", is_requestable ? "true" : "false", __get_result_string('m', ret));
fail_cnt++;
}
__print_line();
- __tcinfo(goal, "see if uid 5001, org.test.nativeapp is privacy requestable");
- ret = privilege_package_info_is_privacy_requestable(5001, "org.test.nativeapp", &is_requestable);
- if (is_requestable) {
- printf_red("\nFAIL\n");
+ __tcinfo(goal, "see if http://tizen.org/privilege/mediastorage is critical for uid 5001, org.test.webapp_5");
+ ret = privilege_package_info_is_critical_privilege(5001, "org.test.webapp_5", "http://tizen.org/privilege/mediastorage", &is_requestable);
+ if (is_requestable && ret == PRVMGR_ERR_NONE) {
+ printf_green("\nis not critical privilege. SUCCESS\n");
+ success_cnt++;
+ } else {
+ printf_red("\nFAIL\nis requestable = %s, ret = %s\n", is_requestable ? "true" : "false", __get_result_string('m', ret));
fail_cnt++;
- } else if (ret == PRVMGR_ERR_NONE) {
+ }
+
+ __print_line();
+ __tcinfo(goal, "see if uid 5001, api-version=3.0, org.test.nativeapp_3 can request privacy for http://tizen.org/privilege/call");
+ ret = privilege_package_info_is_privacy_requestable(5001, "org.test.nativeapp_3", "http://tizen.org/privilege/call", &is_requestable);
+ if (ret == PRVMGR_ERR_NONE && !is_requestable) {
printf_green("\nis old app. SUCCESS\n");
success_cnt++;
} else {
- printf_red("\nFAIL\n");
+ printf_red("\nFAIL\nis requestable = %s, ret = %s\n", is_requestable ? "true" : "false", __get_result_string('m', ret));
fail_cnt++;
}
__print_line();
- __tcinfo(goal, "see if uid 5001, org.test.webapp is privacy requestable");
- ret = privilege_package_info_is_privacy_requestable(5001, "org.test.webapp", &is_requestable);
+ __tcinfo(goal, "see if uid 5001, api-version=4.0, org.test.webapp_4 can request privacy for http://tizen.org/privilege/call");
+ ret = privilege_package_info_is_privacy_requestable(5001, "org.test.webapp_4", "http://tizen.org/privilege/call", &is_requestable);
if (is_requestable && ret == PRVMGR_ERR_NONE) {
printf_green("\nis privacy requestable app. SUCCESS\n");
success_cnt++;
} else {
- printf_red("FAIL!!!!!!!!!!!!!!!!!!!!!!\n");
+ printf_red("\nFAIL\nis requestable = %s, ret = %s\n", is_requestable ? "true" : "false", __get_result_string('m', ret));
fail_cnt++;
}
__print_line();
- __tcinfo(goal, "get privacy list of org.test.nativeapp");
+ __tcinfo(goal, "see if uid 5001, api-version=4.0, org.test.webapp_4 can request privacy for http://tizen.org/privilege/mediastorage");
+ ret = privilege_package_info_is_privacy_requestable(5001, "org.test.webapp_4", "http://tizen.org/privilege/mediastorage", &is_requestable);
+ if (_get_tizen_profile() == TIZEN_PROFILE_WEARABLE) {
+ if (is_requestable && ret == PRVMGR_ERR_NONE) {
+ printf_green("\ncan request storage privacy. SUCCESS\n");
+ success_cnt++;
+ } else {
+ printf_red("\nFAIL\nis requestable = %s, ret = %s\n", is_requestable ? "true" : "false", __get_result_string('m', ret));
+ fail_cnt++;
+ }
+ } else {
+ if (!is_requestable && ret == PRVMGR_ERR_NONE) {
+ printf_green("\ncan't request storage privacy. SUCCESS\n");
+ success_cnt++;
+ } else {
+ printf_red("\nFAIL\nis requestable = %s, ret = %s\n", is_requestable ? "true" : "false", __get_result_string('m', ret));
+ fail_cnt++;
+ }
+ }
+
+ __print_line();
+ __tcinfo(goal, "see if uid 5001, api-version=5.0, org.test.webapp_5 can request privacy for http://tizen.org/privilege/mediastorage");
+ ret = privilege_package_info_is_privacy_requestable(5001, "org.test.webapp_5", "http://tizen.org/privilege/mediastorage", &is_requestable);
+ if (is_requestable && ret == PRVMGR_ERR_NONE) {
+ printf_green("\nis privacy requestable app. SUCCESS\n");
+ success_cnt++;
+ } else {
+ printf_red("\nFAIL\nis requestable = %s, ret = %s\n", is_requestable ? "true" : "false", __get_result_string('m', ret));
+ fail_cnt++;
+ }
+
+ __print_line();
+ __tcinfo(goal, "get privacy list of org.test.nativeapp_3");
GList* tmp_list = NULL;
- ret = privilege_package_info_get_privacy_list_by_pkgid(5001, "org.test.nativeapp", &tmp_list);
+ ret = privilege_package_info_get_privacy_list_by_pkgid(5001, "org.test.nativeapp_3", &tmp_list);
__tcinfo(expect, PRVMGR_ERR_NONE);
__print_result('m', ret);
if (tmp_list != NULL) {
}
__print_line();
- __tcinfo(goal, "get list of packaes with bookmark privacy");
+ __tcinfo(goal, "get list of packages with bookmark privacy");
ret = privilege_package_info_get_package_list_by_privacy(5001, "http://tizen.org/privacy/bookmark", &tmp_list);
__tcinfo(expect, PRVMGR_ERR_NONE);
__print_result('m', ret);
}
__print_line();
- __tcinfo(goal, "get list of packaes with camera privacy");
+ __tcinfo(goal, "get list of packages with camera privacy");
ret = privilege_package_info_get_package_list_by_privacy(5001, "http://tizen.org/privacy/camera", &tmp_list);
__tcinfo(expect, PRVMGR_ERR_NONE);
__print_result('m', ret);
}
__print_line();
- __tcinfo(goal, "get privilege list of org.test.nativeapp's account privacy");
- ret = privilege_package_info_get_privilege_list_by_pkgid_and_privacy(5001, "org.test.nativeapp", "http://tizen.org/privacy/account", &tmp_list);
+ __tcinfo(goal, "get privilege list of org.test.nativeapp_3's account privacy");
+ ret = privilege_package_info_get_privilege_list_by_pkgid_and_privacy(5001, "org.test.nativeapp_3", "http://tizen.org/privacy/account", &tmp_list);
__tcinfo(expect, PRVMGR_ERR_NONE);
__print_result('m', ret);
if (tmp_list != NULL) {
gfree(tmp_list);
}
+ /* Unset test app info */
+
__print_line();
- __tcinfo(goal, "unset 5001, org.test.nativeapp's package privilege info.");
- ret = privilege_package_info_unset_package_privilege_info(5001, "org.test.nativeapp");
+ __tcinfo(goal, "unset 5001, org.test.nativeapp_3's package privilege info.");
+ ret = privilege_package_info_unset_package_privilege_info(5001, "org.test.nativeapp_3");
__tcinfo(expect, PRVMGR_ERR_NONE);
__print_result('m', ret);
__print_line();
- __tcinfo(goal, "unset 5001, org.test.webapp's package privilege info.");
- ret = privilege_package_info_unset_package_privilege_info(5001, "org.test.webapp");
+ __tcinfo(goal, "unset 5001, org.test.webapp_4's package privilege info.");
+ ret = privilege_package_info_unset_package_privilege_info(5001, "org.test.webapp_4");
__tcinfo(expect, PRVMGR_ERR_NONE);
__print_result('m', ret);
+
__print_line();
+ __tcinfo(goal, "unset 5001, org.test.webapp_5's package privilege info.");
+ ret = privilege_package_info_unset_package_privilege_info(5001, "org.test.webapp_5");
+ __tcinfo(expect, PRVMGR_ERR_NONE);
+ __print_result('m', ret);
+ __print_line();
+
+ __unset_privacy_test_pkg_info();
}