/*
- * Copyright(c)2013-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright(c) 2013-2017 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0(the License);
* you may not use this file except in compliance with the License.
#define __PRIVILEGE_DB_MANAGER_H
#include <glib.h>
-#include "privilege_manager.h"
-
-typedef struct {
- int profile_id;
- char* profile;
- int package_type_id;
- char* package_type;
- char* privilege_name;
- char* privilege_display;
- char* privilege_description;
- int privilege_level_id;
- char* privilege_level;
- char* issued_version;
- char* expired_version;
- char* changed_to;
-} privilege_info_db_row_s;
-
-typedef enum {
- PRIVILEGE_DB_TYPE_INFO = 0,
- PRIVILEGE_DB_TYPE_MAPPING = 1,
- PRIVILEGE_DB_TYPE_POLICY_RW = 2,
- PRIVILEGE_DB_TYPE_POLICY_RO = 3,
-} privilege_db_type_e;
-
-typedef enum {
- PRIVILEGE_DB_MANAGER_ERR_NONE = 0,
- PRIVILEGE_DB_NO_EXIST_RESULT = -1,
- PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL = -2,
- PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY = -3,
- PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY = -4,
- PRIVILEGE_DB_MANAGER_ERR_INVALID_TYPE = -5,
- PRIVILEGE_DB_MANAGER_ERR_DB_BUSY_FAIL = -6,
- PRIVILEGE_DB_MANAGER_ERR_DB_CONSTRAINT_FAIL = -7,
- PRIVILEGE_DB_MANAGER_ERR_DB_FULL_FAIL = -8,
- PRIVILEGE_DB_MANAGER_ERR_DB_UPDATE_FAIL = -9,
- PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY = -1001 /* define error code to avoid conflict error code of sqlite_open */
-} privilege_db_manager_error_e;
-
-typedef enum {
- PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PUBLIC = 0,
- PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PARTNER = 1,
- PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM = 2
-} privilege_db_manager_privilege_level_e;
-
-typedef enum {
- PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_NONE = -1, /* placeholder */
- PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT = 0,
- PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE = 1
-} privilege_db_manager_package_type_e;
+#include "privilege_manager_types.h"
#ifdef __cplusplus
extern "C" {
#endif
-int privilege_db_manager_get_privilege_list(const char* api_version, privilege_db_manager_package_type_e package_type, GList** privilege_list);
+/**
+ * @brief Get all privilege information of the target profile and package type
+ * @remarks @a privilege_list must be released by you.
+ * @param [in] api_version The api-version to get chagend_to information
+ * @param [in] package_type The package type
+ * @param [out] privilege_list The privilege list
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
+int privilege_db_manager_get_privilege_list(const char* api_version, privilege_manager_package_type_e package_type, GList** privilege_list);
-int privilege_db_manager_get_mapped_privilege_list(const char* api_version, privilege_db_manager_package_type_e package_type, GList* privilege_list, GList** mapped_privilege_list);
+/**
+ * @brief Get mapped privilege list for the given api-version and privilege list.
+ * @remarks @a privilege_list must be released by you.
+ * @remarks @a mapped_privilege_list must be released by you.
+ * @param [in] api_version The api-version to get mapped privilege list
+ * @param [in] package_type The package type
+ * @param [in] privilege_list The privilege list
+ * @param [out] mapped_privilege_list The mapped privilege list
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
+int privilege_db_manager_get_mapped_privilege_list(const char* api_version, privilege_manager_package_type_e package_type, GList* privilege_list, GList** mapped_privilege_list);
-int privilege_db_manager_get_privilege_display(privilege_db_manager_package_type_e package_type, const char* privilege_name, const char* api_version, char** privilege_display);
+/**
+ * @brief Get privilege display name
+ * @remarks @a privilege_display must be released by you.
+ * @param [in] package_type The package type
+ * @param [in] privilege_name The privilege name
+ * @param [in] api_version The api-version
+ * @param [out] privilege_display The privilege display name.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @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_get_privilege_display(privilege_manager_package_type_e package_type, const char* privilege_name, const char* api_version, char** privilege_display);
-int privilege_db_manager_get_privilege_description(privilege_db_manager_package_type_e package_type, const char* privilege_name, const char* api_version, char** privilege_description);
+/**
+ * @brief Get privilege description
+ * @remarks @a privilege_description must be released by you.
+ * @param [in] package_type The package type
+ * @param [in] privilege_name The privilege name
+ * @param [in] api_version The api-version
+ * @param [out] privilege_description The privilege description
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @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_get_privilege_description(privilege_manager_package_type_e package_type, const char* privilege_name, const char* api_version, char** privilege_description);
-int privilege_db_manager_get_privilege_group_display(privilege_db_manager_package_type_e package_type, const char* privilege_name, const char* api_version, int* privilege_group_number);
+/**
+ * @brief Get privacy display.
+ * @remarks @a privacy_display must be released by you.
+ * @param [in] privacy_name The privacy name
+ * @param [out] privilege_description The privilege description
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @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_get_privacy_display(const char *privacy_name, char **privacy_display);
-int privilege_db_manager_get_privacy_display(const char *privacy, char **privacy_display);
+/**
+ * @brief Get privilege group ID
+ * @param [in] package_type The package type
+ * @param [in] privilege_name The privilege name
+ * @param [in] api_version The api-version
+ * @param [out] privilege_group_id The ID of privilege group.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
+int privilege_db_manager_get_privilege_group_id(privilege_manager_package_type_e package_type, const char* privilege_name, const char* api_version, int* privilege_group_id);
+/**
+ * @brief Determine privilege according to the given type and privilege.
+ * @param [in] type The type of check. 'v' for checking privilege exist or not, 'p' for checking privilege is privacy-related or not, and 'i' for checking privilege is internal or not.
+ * @param [in] privilege The privilege name
+ * @return 1 on true, 0 on false and -1 on error.
+ */
int privilege_db_manager_is(char type, const char* privilege);
-int privilege_db_manager_is_preloaded(const char* pkgid);
-/* privilege should be privacy privilege */
+/**
+ * @brief See if the given package id is privacy whitelisted for the given privilege.
+ * @remarks @a privilege must be privacy related
+ * @param [in] pkgid The package ID
+ * @param [in] privilege The privilege
+ * @return 1 on true(is whitelisted), 0 on false and negative value on error.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
int privilege_db_manager_is_privacy_white_list(const char* pkgid, const char* privilege);
-int privilege_db_manager_is_privacy_white_list_application(const char* pkgid);
+/**
+ * @brief See if the given package id is user-settable for the given privacy.
+ * @param [in] pkgid_name The privacy name
+ * @param [in] privacy_name The privacy name
+ * @return 1 on true(is user-settable), 0 on false and negative value on error.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
+int privilege_db_manager_is_user_settable(const char* pkgid, const char* privacy_name);
-int privilege_db_manager_is_user_settable(const char* pkgid, const char* privacy);
+/**
+ * @brief Get all privacy list
+ * @remarks @a privacy_list must be released by you.
+ * @param [out] privacy_list The privacy list.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
+int privilege_db_manager_get_privacy_list(GList** privacy_list);
-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);
+/**
+ * @brief Get list of privileges included in the given privacy group.
+ * @remarks @a privilege_list must be released by you.
+ * @param [in] privacy_name The privacy name
+ * @param [out] privilege_list The privilege list.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
+int privilege_db_manager_get_privilege_list_by_privacy(const char* privacy_name, GList **privilege_list);
+/**
+ * @brief Get privacy name that the given privilege is included in.
+ * @param [in] privilege The privilege
+ * @param [out] privacy The privacy name
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
int privilege_db_manager_get_privacy_by_privilege(const char* privilege, char** privacy_name);
+
+/**
+ * @brief Get privacy ID that the given privilege is included in.
+ * @param [in] privilege The privilege
+ * @param [out] privacy_id The privacy ID
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
int privilege_db_manager_get_privacy_id_by_privilege(const char* privilege, int* privacy_id);
+
+/**
+ * @brief Get ID of the given privacy name.
+ * @param [in] privacy_name The privacy name
+ * @param [out] privacy_id The privacy ID
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
int privilege_db_manager_get_privacy_id(const char* privacy, int *privacy_id);
+/**
+ * @brief See if the given privilege is in the mdm blacklist for the given uid.
+ * @param [in] uid The uid
+ * @param [out] privilege The privilege
+ * @return 1 if true(is mdm blacklist privilege), 0 if false and otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
int privilege_db_manager_is_disabled_privilege(uid_t uid, const char* privilege);
-int privilege_db_manager_get_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_db_manager_package_type_e package_type, GList** privilege_list);
-int privilege_db_manager_set_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_db_manager_package_type_e pacakge_type, GList *privilege_list);
-int privilege_db_manager_unset_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_db_manager_package_type_e package_type, GList *privilege_list);
-/* Return the number of black-listed privileges in given privilege list */
-int privilege_db_manager_check_black_list(int uid, privilege_db_manager_package_type_e pacakge_type, GList *privilege_list);
+/**
+ * @brief Get blacklisted privileges according to the policy type, uid, and package type.
+ * @param [in] policy_type The policy type indicates which blacklist to get(PRVMGR_POLICY_TYPE_PREVENT for dpm blacklist and PRVMGR_POLICY_TYPE_DISABLE for mdm blacklist).
+ * @param [in] uid The uid
+ * @param [in] package_type The package type
+ * @param [out] privilege_list The privilege list.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
+int privilege_db_manager_get_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_manager_package_type_e package_type, GList** privilege_list);
+
+/**
+ * @brief Set blacklist privileges for the given policy type, uid, and package type.
+ * @param [in] policy_type The policy type indicates which blacklist to get(PRVMGR_POLICY_TYPE_PREVENT for dpm blacklist and PRVMGR_POLICY_TYPE_DISABLE for mdm blacklist).
+ * @param [in] uid The uid
+ * @param [in] package_type The package type
+ * @param [in] privilege_list The privilege list.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
+int privilege_db_manager_set_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_manager_package_type_e pacakge_type, GList *privilege_list);
+
+/**
+ * @brief Remove the given privileges from blacklist of the given policy type, uid, and package type.
+ * @param [in] policy_type The policy type indicates which blacklist to get(PRVMGR_POLICY_TYPE_PREVENT for dpm blacklist and PRVMGR_POLICY_TYPE_DISABLE for mdm blacklist).
+ * @param [in] uid The uid
+ * @param [in] package_type The package type
+ * @param [in] privilege_list The privilege list.
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
+int privilege_db_manager_unset_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_manager_package_type_e package_type, GList *privilege_list);
+
+/**
+ * @brief Get the number of blacklisted privileges in the give privilege list
+ * @remarks @a privilege_list must be released by you.
+ * @param [in] uid The uid
+ * @param [in] package_type The package type of the given privilege list
+ * @param [in] privilege_list The privilege list to check
+ * @return 0 if no blacklisted privileges in the given privilege list, or return the number of blacklisted privileges. And negative error value on error.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful. No blacklisted privilege in the given privilege list.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
+ * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
+ */
+int privilege_db_manager_check_black_list(uid_t uid, privilege_manager_package_type_e pacakge_type, GList *privilege_list);
#ifdef __cplusplus
}
/*
- * Copyright (c) 2013-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2013-2017 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the License);
* you may not use this file except in compliance with the License.
#define __TIZEN_SECURITY_PRIVILEGE_INFO_H
#include <glib.h>
-#include "privilege_manager.h"
+#include "privilege_manager_types.h"
#ifndef EXPORT_API
#define EXPORT_API __attribute__((__visibility__("default")))
EXPORT_API int privilege_info_get_privilege_type(uid_t uid, const char* pkgid, const char* privilege, privilege_manager_privilege_type_e *type);
/**
- * @brief Determines whether the given package id is on the privacy white list
- * @param [in] pkgid The pkgid of application
- * @return 1 if true(=given pkgid is listed on the privacy white list), 0 if false, and -1 on error
- */
-EXPORT_API int privilege_info_is_privacy_white_list_application(const char* pkgid);
-
-/**
* @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
/*
- * Copyright(c)2013-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright(c) 2013-2017 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0(the License);
* you may not use this file except in compliance with the License.
MAX_PRV_GROUP,
} privilegeGroup;
-#define LOCATION_PRIVACY "http://tizen.org/privacy/location"
#define EXTRA_GROUP MAX_PRV_GROUP - 1
typedef struct {
- const char* privilege;
- const char* name_string_id;
- const char* description_string_id;
- privilegeGroup privilege_group_enum;
-
-} privilege_info_s;
-
-typedef struct {
- const char* privilege;
- const char* privilege_level;
-} core_privilege_info_s;
-
-
-typedef struct {
const char* privilege_group;
privilegeGroup privilege_group_enum;
const char* name_string_id;
/*
- * Copyright(c)2013-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright(c) 2013-2017 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0(the License);
* you may not use this file except in compliance with the License.
#endif
#include <glib.h>
+#include "privilege_manager_types.h"
#ifdef __cplusplus
extern "C" {
#endif
-/**
- * @brief Enumerations of error code for Privilege Manager
- */
-typedef enum {
- PRVMGR_ERR_NONE = 0,
- PRVMGR_ERR_INVALID_PARAMETER = -1,
- PRVMGR_ERR_OUT_OF_MEMORY = -2,
- PRVMGR_ERR_INTERNAL_ERROR = -3,
- PRVMGR_ERR_NO_DATA = -4,
- 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;
-
-typedef enum {
- PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL, /* not privacy, not blacklisted by mdm */
- PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY, /* privacy (privacy privilege must not blacklisted by mdm) */
- PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST, /* blacklisted by mdm(disabled by security-manager when policy is set) */
- PRIVILEGE_MANAGER_PRIVILEGE_TYPE_MAX
-} privilege_manager_privilege_type_e;
-
-typedef enum {
- PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT,
- PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE,
-} privilege_manager_policy_type_e;
-
-typedef enum {
- PRVMGR_PACKAGE_VISIBILITY_PUBLIC = 1 << 1,
- PRVMGR_PACKAGE_VISIBILITY_PARTNER = 1 << 2,
- PRVMGR_PACKAGE_VISIBILITY_PLATFORM = 1 << 3,
-} privilege_manager_visibility_e;
-
-typedef enum {
- PRVMGR_PACKAGE_TYPE_WRT = 0,
- PRVMGR_PACKAGE_TYPE_CORE = 1,
- PRVMGR_PACKAGE_TYPE_METADATA = 2,
- PRVMGR_PACKAGE_TYPE_MAX
-} privilege_manager_package_type_e;
-
/**
* @brief verify privilege in the privilege list by checking its name and level at given api version.
--- /dev/null
+/*
+ * Copyright(c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0(the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __TIZEN_SECURITY_PRIVILEGE_MANAGER_TYPES_H
+#define __TIZEN_SECURITY_PRIVILEGE_MANAGER_TYPES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/**
+ * @brief Enumerations of error code for Privilege Manager
+ */
+typedef enum {
+ PRVMGR_ERR_NONE = 0,
+ PRVMGR_ERR_INVALID_PARAMETER = -1,
+ PRVMGR_ERR_OUT_OF_MEMORY = -2,
+ PRVMGR_ERR_INTERNAL_ERROR = -3,
+ PRVMGR_ERR_NO_DATA = -4,
+ 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;
+
+/**
+ * @brief Enumerations of privilege type for privilege_info_get_privilege_type()
+ */
+typedef enum {
+ PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL, /* not privacy, not blacklisted by mdm */
+ PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY, /* privacy (privacy privilege must not blacklisted by mdm) */
+ PRIVILEGE_MANAGER_PRIVILEGE_TYPE_BLACKLIST, /* blacklisted by mdm(disabled by security-manager when policy is set) */
+ PRIVILEGE_MANAGER_PRIVILEGE_TYPE_MAX
+} privilege_manager_privilege_type_e;
+
+/**
+ * @brief Enumerations of policy type to distinguish mdm blacklist and dpm blacklist
+ */
+typedef enum {
+ PRVMGR_POLICY_TYPE_PREVENT,
+ PRVMGR_POLICY_TYPE_DISABLE,
+} privilege_manager_policy_type_e;
+
+/**
+ * @brief Enumerations of certificate signing level
+ */
+typedef enum {
+ PRVMGR_PACKAGE_VISIBILITY_PUBLIC = 0,
+ PRVMGR_PACKAGE_VISIBILITY_PARTNER = 1,
+ PRVMGR_PACKAGE_VISIBILITY_PLATFORM = 2,
+} privilege_manager_visibility_e;
+
+/**
+ * @brief Enumerations of application package type
+ */
+typedef enum {
+ PRVMGR_PACKAGE_TYPE_NONE = -1, /* placeholder */
+ PRVMGR_PACKAGE_TYPE_WRT = 0,
+ PRVMGR_PACKAGE_TYPE_CORE = 1,
+ PRVMGR_PACKAGE_TYPE_METADATA = 2,
+ PRVMGR_PACKAGE_TYPE_MAX
+} privilege_manager_package_type_e;
+
+typedef struct {
+ int profile_id;
+ char* profile;
+ int package_type_id;
+ char* package_type;
+ char* privilege_name;
+ char* privilege_display;
+ char* privilege_description;
+ int privilege_level_id;
+ char* privilege_level;
+ char* issued_version;
+ char* expired_version;
+ char* changed_to;
+} privilege_info_db_row_s;
+
+/**
+ * @brief Enumerations of privilege DB type
+ */
+typedef enum {
+ PRIVILEGE_DB_TYPE_INFO = 0,
+ PRIVILEGE_DB_TYPE_MAPPING = 1,
+ PRIVILEGE_DB_TYPE_POLICY_RW = 2,
+ PRIVILEGE_DB_TYPE_POLICY_RO = 3,
+ PRIVILEGE_DB_TYPE_PRIVACY_RW = 4,
+ PRIVILEGE_DB_TYPE_PRIVACY_RO = 5,
+} privilege_db_type_e;
+
+/**
+ * @brief Enumerations of error code for Privilege DB Manager
+ */
+typedef enum {
+ PRIVILEGE_DB_MANAGER_ERR_NONE = 0,
+ PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT = -1,
+ PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL = -2,
+ PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY = -3,
+ PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY = -4,
+ PRIVILEGE_DB_MANAGER_ERR_INVALID_TYPE = -5,
+ PRIVILEGE_DB_MANAGER_ERR_DB_BUSY_FAIL = -6,
+ PRIVILEGE_DB_MANAGER_ERR_DB_CONSTRAINT_FAIL = -7,
+ PRIVILEGE_DB_MANAGER_ERR_DB_FULL_FAIL = -8,
+ PRIVILEGE_DB_MANAGER_ERR_DB_UPDATE_FAIL = -9,
+ PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY = -1001 /* define error code to avoid conflict error code of sqlite_open */
+} privilege_db_manager_error_e;
+
+/**
+ * @brief Enumerations of privilege verification error type for guide message
+ */
+typedef enum {
+ G_WEB,
+ G_NATIVE,
+ G_METADATA,
+ E_DPM_BANNED_PRIVILEGE,
+ E_DEPRECATED_AND_CHANGED,
+ E_DEPRECATED,
+ E_NOT_EXIST_YET,
+ E_NOT_EXIST,
+ E_CERT_LEVEL_MISMATCHED,
+ MAX_VERIFICATION_INFO,
+} privilege_verification_error_type_e;
+
+typedef struct {
+ privilege_verification_error_type_e type;
+ const char* msg;
+} privilege_verification_error_s;
+
+static const privilege_verification_error_s const prvmgr_msg_table[MAX_VERIFICATION_INFO] = {
+ {G_WEB, "Check config.xml| - Current required_version(=api version) = %s, | certificate signature level = %s||"},
+ {G_NATIVE, "Check tizen-manifest.xml| - Current api-version = %s, | certificate signature level = %s||"},
+ {G_METADATA, "Check tizen-manifest.xml or config.xml| - Current api-version = %s, | certificate signature level = %s||"},
+ {E_DPM_BANNED_PRIVILEGE, "Application manifest contains banned privilege(s) declared by the DPM."},
+ {E_DEPRECATED_AND_CHANGED, " - %s| >> Use %s instead of it or use api version lower than %s.|"},
+ {E_DEPRECATED, " - %s| >> Remove the privilege.|"},
+ {E_NOT_EXIST_YET, "- %s| >> Use at least api version %s or remove the privilege.|"},
+ {E_NOT_EXIST, " - %s| >> Check spelling or remove the privilege.|"},
+ {E_CERT_LEVEL_MISMATCHED, " - %s| >> Use at least %s signatured certificate.|"},
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __TIZEN_SECURITY_PRIVILEGE_MANAGER_TYPES_H */
touch $DB_NAME
target_profile=$1
-preloaded="$target_profile""_preloaded.list"
PRIVACYLIST_CSV="privacylist.csv"
PRIVACY_WHITELIST_CSV="$target_profile""_privacy_whitelist.csv"
echo "Create VALID_PRIVILEGE_INFO Table..."
sqlite3 $DB_NAME "CREATE TABLE VALID_PRIVILEGE_INFO (PRIVILEGE_NAME TEXT UNIQUE, IS_PRIVACY NUMERIC, PRIVACY_NAME TEXT, IS_INTERNAL NUMERIC);"
-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
+++ /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
-User::Pkg::org.tizen.memo
+++ /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
+/*
+ * Copyright(c) 2013-2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0(the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
#include "privilege_db_manager.h"
#include "privilege_private.h"
#include <sqlite3.h>
char* __get_policy_table(privilege_manager_policy_type_e policy_type)
{
switch (policy_type) {
- case (PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT):
+ case (PRVMGR_POLICY_TYPE_PREVENT):
return "prevent_list";
- case (PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE):
+ case (PRVMGR_POLICY_TYPE_DISABLE):
default:
return "disable_list";
}
}
-int __initialize_db(privilege_db_type_e type, sqlite3 ** db, privilege_db_manager_package_type_e package_type)
+int __initialize_db(privilege_db_type_e type, sqlite3 ** db, privilege_manager_package_type_e package_type)
{
char *db_path = NULL;
int db_mode = SQLITE_OPEN_READONLY;
switch (type) {
case PRIVILEGE_DB_TYPE_INFO:
- if (package_type == PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT)
+ if (package_type == PRVMGR_PACKAGE_TYPE_WRT)
db_path = PRIVILEGE_INFO_WRT_DB_PATH;
else
db_path = PRIVILEGE_INFO_CORE_DB_PATH;
break;
case PRIVILEGE_DB_TYPE_MAPPING:
- if (package_type == PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT)
+ if (package_type == PRVMGR_PACKAGE_TYPE_WRT)
db_path = PRIVILEGE_MAPPING_WRT_DB_PATH;
else
db_path = PRIVILEGE_MAPPING_CORE_DB_PATH;
return ret;
}
-int privilege_db_manager_check_black_list(int uid, privilege_db_manager_package_type_e package_type, GList* privilege_list)
+int privilege_db_manager_check_black_list(uid_t uid, privilege_manager_package_type_e package_type, GList* privilege_list)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
}
-int privilege_db_manager_get_privilege_list(const char *api_version, privilege_db_manager_package_type_e package_type, GList ** privilege_list)
+int privilege_db_manager_get_privilege_list(const char *api_version, privilege_manager_package_type_e package_type, GList ** privilege_list)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
return PRIVILEGE_DB_MANAGER_ERR_NONE;
}
-int privilege_db_manager_get_mapped_privilege_list(const char *api_version, privilege_db_manager_package_type_e package_type, GList * privilege_list, GList ** mapped_privilege_list)
+int privilege_db_manager_get_mapped_privilege_list(const char *api_version, privilege_manager_package_type_e package_type, GList * privilege_list, GList ** mapped_privilege_list)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
return PRIVILEGE_DB_MANAGER_ERR_NONE;
}
-int privilege_db_manager_get_privacy_display(const char *privacy, char **privacy_display)
+int privilege_db_manager_get_privacy_display(const char *privacy_name, char **privacy_display)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
- int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
+ int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRVMGR_PACKAGE_TYPE_CORE);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
return ret;
- char *sql = sqlite3_mprintf("select privacy_display from privacy_info where privacy_name=%Q", privacy);
+ char *sql = sqlite3_mprintf("select privacy_display from privacy_info where privacy_name=%Q", privacy_name);
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);
- return PRIVILEGE_DB_NO_EXIST_RESULT;
+ return PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT;
}
-int privilege_db_manager_get_privilege_display(privilege_db_manager_package_type_e package_type, const char *privilege_name, const char *api_version, char **privilege_display)
+int privilege_db_manager_get_privilege_display(privilege_manager_package_type_e package_type, const char *privilege_name, const char *api_version, char **privilege_display)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
__finalize_db(db, stmt, sql);
- return PRIVILEGE_DB_NO_EXIST_RESULT;
+ return PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT;
}
-int privilege_db_manager_get_privilege_description(privilege_db_manager_package_type_e package_type, const char *privilege_name, const char *api_version, char **privilege_description)
+int privilege_db_manager_get_privilege_description(privilege_manager_package_type_e package_type, const char *privilege_name, const char *api_version, char **privilege_description)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
__finalize_db(db, stmt, sql);
- return PRIVILEGE_DB_NO_EXIST_RESULT;
+ return PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT;
}
-int privilege_db_manager_get_privilege_group_display(privilege_db_manager_package_type_e package_type, const char *privilege_name, const char *api_version, int *privilege_group_number)
+int privilege_db_manager_get_privilege_group_id(privilege_manager_package_type_e package_type, const char *privilege_name, const char *api_version, int *privilege_group_id)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
ret = sqlite3_step(stmt);
if (ret == SQLITE_ROW) {
- *privilege_group_number = (int)sqlite3_column_int(stmt, 0);
- _LOGD("privilege_group_number = %d", *privilege_group_number);
+ *privilege_group_id = (int)sqlite3_column_int(stmt, 0);
+ _LOGD("privilege_group_id = %d", *privilege_group_id);
__finalize_db(db, stmt, sql);
return PRIVILEGE_DB_MANAGER_ERR_NONE;
__finalize_db(db, stmt, sql);
- return PRIVILEGE_DB_NO_EXIST_RESULT;
+ return PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT;
}
int privilege_db_manager_is(char type, const char* privilege)
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
int res = 0;
- int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
+ int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRVMGR_PACKAGE_TYPE_CORE);
TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL");
- char *sql = sqlite3_mprintf("select privilege_name,is_privacy, is_internal from valid_privilege_info where privilege_name=%Q", privilege);
+ 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;
}
-/* TBD : Remove it */
-int privilege_db_manager_is_preloaded(const char* pkgid)
-{
- sqlite3 *db = NULL;
- sqlite3_stmt *stmt = NULL;
- int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &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_is_privacy_white_list(const char* pkgid, const char* privilege)
{
if (DISABLE_ASKUSER)
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
- int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
+ int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRVMGR_PACKAGE_TYPE_CORE);
TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL");
int privacy_id = 0;
return res;
}
-int privilege_db_manager_is_privacy_white_list_application(const char* pkgid)
-{
- if (DISABLE_ASKUSER)
- return 1;
-
- if (access(ASKUSER_RUNTIME_DISABLE_PATH, F_OK) == 0) {
- _LOGD("aksuser is disabled in rum-time.");
- return 1;
- }
-
- sqlite3 *db = NULL;
- sqlite3_stmt *stmt = NULL;
- int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &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 distinct pkg_id from privacy_whitelist where pkg_id=%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);
- TryReturn(ret == SQLITE_DONE || ret == SQLITE_ROW, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_step failed : %s", sqlite3_errmsg(db));
-
- __finalize_db(db, stmt, sql);
-
- if (ret == SQLITE_ROW)
- return 1;
-
- return 0;
-}
-
-int privilege_db_manager_is_user_settable(const char* pkgid, const char* privacy)
+int privilege_db_manager_is_user_settable(const char* pkgid, const char* privacy_name)
{
if (DISABLE_ASKUSER)
return 1;
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
int res = 1;
- int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
+ int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRVMGR_PACKAGE_TYPE_CORE);
TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL");
int privacy_id = 0;
- ret = privilege_db_manager_get_privacy_id(privacy, &privacy_id);
+ ret = privilege_db_manager_get_privacy_id(privacy_name, &privacy_id);
TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] privilege_db_manager_get_privacy_id failed");
char *sql = sqlite3_mprintf("select privacy_option, settable from privacy_whitelist where pkg_id=%Q", pkgid);
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
- int ret = __initialize_db(PRIVILEGE_DB_TYPE_POLICY_RO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
+ int ret = __initialize_db(PRIVILEGE_DB_TYPE_POLICY_RO, &db, PRVMGR_PACKAGE_TYPE_CORE);
TryReturn(ret == PRIVILEGE_DB_MANAGER_ERR_NONE, , ret, "[PRIVILEGE_DB_MANAGER] DB INITIALIZE FAIL. ret = %d", ret);
char *sql = sqlite3_mprintf("select * from disable_list where privilege_name=%Q and (uid=%d or uid=%d)", privilege, uid, GLOBAL_USER);
return ret;
}
-int __privilege_db_manager_get_privacy_list(GList **privacy_list)
+int privilege_db_manager_get_privacy_list(GList **privacy_list)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
- int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
+ int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRVMGR_PACKAGE_TYPE_CORE);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
return ret;
}
-int __privilege_db_manager_get_privilege_list_by_privacy(const char* privacy, GList **privilege_list)
+int privilege_db_manager_get_privilege_list_by_privacy(const char* privacy, GList **privilege_list)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
- int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
+ int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRVMGR_PACKAGE_TYPE_CORE);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
return ret;
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
- int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
+ int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRVMGR_PACKAGE_TYPE_CORE);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
return ret;
*privacy_name = strdup((char*)sqlite3_column_text(stmt, 0));
ret = PRIVILEGE_DB_MANAGER_ERR_NONE;
} else {
- ret = PRIVILEGE_DB_NO_EXIST_RESULT;
+ ret = PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT;
}
__finalize_db(db, stmt, sql);
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
- int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
+ int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRVMGR_PACKAGE_TYPE_CORE);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
return ret;
*privacy_id = tmp;
ret = PRIVILEGE_DB_MANAGER_ERR_NONE;
} else {
- ret = PRIVILEGE_DB_NO_EXIST_RESULT;
+ ret = PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT;
}
__finalize_db(db, stmt, sql);
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
- int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE);
+ int ret = __initialize_db(PRIVILEGE_DB_TYPE_INFO, &db, PRVMGR_PACKAGE_TYPE_CORE);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
return ret;
*privacy_id = tmp;
ret = PRIVILEGE_DB_MANAGER_ERR_NONE;
} else {
- ret = PRIVILEGE_DB_NO_EXIST_RESULT;
+ ret = PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT;
}
__finalize_db(db, stmt, sql);
}
-int privilege_db_manager_get_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_db_manager_package_type_e package_type, GList **privilege_list)
+int privilege_db_manager_get_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_manager_package_type_e package_type, GList **privilege_list)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
return ret;
_LOGD("Get privilege_name from %s where uid = %d, package_type = %d", __get_policy_table(policy_type), uid, package_type);
char* sql = NULL;
- if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE)
+ if (policy_type == PRVMGR_POLICY_TYPE_DISABLE)
sql = sqlite3_mprintf("select privilege_name from %Q where (uid=%d or uid=%d)", __get_policy_table(policy_type), uid, GLOBAL_USER);
- else if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT)
+ else if (policy_type == PRVMGR_POLICY_TYPE_PREVENT)
sql = sqlite3_mprintf("select privilege_name from %Q where uid=%d and package_type=%d", __get_policy_table(policy_type), uid, package_type);
TryReturn(sql != NULL, __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed");
ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL);
return PRIVILEGE_DB_MANAGER_ERR_NONE;
}
-int privilege_db_manager_set_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_db_manager_package_type_e package_type, GList *privilege_list)
+int privilege_db_manager_set_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_manager_package_type_e package_type, GList *privilege_list)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
char *privilege_name = (char *)l->data;
_LOGD("insert into %s uid = %d, package_type = %d, privilege_name = %s", __get_policy_table(policy_type), uid, package_type, privilege_name);
char* sql = NULL;
- if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE)
+ if (policy_type == PRVMGR_POLICY_TYPE_DISABLE)
sql = sqlite3_mprintf("insert or ignore into %Q (uid, privilege_name) values (%d, %Q)", __get_policy_table(policy_type), uid, privilege_name);
- else if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT)
+ else if (policy_type == PRVMGR_POLICY_TYPE_PREVENT)
sql = sqlite3_mprintf("insert or ignore into %Q (uid, package_type, privilege_name) values (%d, %d, %Q)", __get_policy_table(policy_type), uid, package_type, privilege_name);
TryReturn(sql != NULL, sqlite3_exec(db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed");
ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL);
return PRIVILEGE_DB_MANAGER_ERR_NONE;
}
-int privilege_db_manager_unset_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_db_manager_package_type_e package_type, GList *privilege_list)
+int privilege_db_manager_unset_black_list(privilege_manager_policy_type_e policy_type, int uid, privilege_manager_package_type_e package_type, GList *privilege_list)
{
sqlite3 *db = NULL;
sqlite3_stmt *stmt = NULL;
char *privilege_name = (char *)l->data;
_LOGD("delete from %s where uid = %d, package_type = %d, privilege_name = %s", __get_policy_table(policy_type), uid, package_type, privilege_name);
char* sql = NULL;
- if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE)
+ if (policy_type == PRVMGR_POLICY_TYPE_DISABLE)
sql = sqlite3_mprintf("delete from %Q where uid=%d and privilege_name=%Q", __get_policy_table(policy_type), uid, privilege_name);
- else if (policy_type == PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT)
+ else if (policy_type == PRVMGR_POLICY_TYPE_PREVENT)
sql = sqlite3_mprintf("delete from %Q where uid=%d and package_type=%d and privilege_name=%Q", __get_policy_table(policy_type), uid, package_type, privilege_name);
TryReturn(sql != NULL, sqlite3_exec(db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed");
ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL);
/*
- * Copyright(c)2013 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright(c) 2013-2017 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0(the License);
* you may not use this file except in compliance with the License.
int group_id = 6;
/* core */
- ret = privilege_db_manager_get_privilege_group_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, privilege_name, "9.9", &group_id);
+ ret = privilege_db_manager_get_privilege_group_id(PRVMGR_PACKAGE_TYPE_CORE, privilege_name, "9.9", &group_id);
if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE) {
LOGD("group_id = %d", group_id);
groupTable[group_id] = 1;
return PRVMGR_ERR_NONE;
- } else if (ret != PRIVILEGE_DB_NO_EXIST_RESULT) {
+ } else if (ret != PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
return PRVMGR_ERR_INTERNAL_ERROR;
}
/* wrt */
- ret = privilege_db_manager_get_privilege_group_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_name, "9.9", &group_id);
+ ret = privilege_db_manager_get_privilege_group_id(PRVMGR_PACKAGE_TYPE_WRT, privilege_name, "9.9", &group_id);
if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE) {
LOGD("group_id = %d", group_id);
groupTable[group_id] = 1;
return PRVMGR_ERR_NONE;
- } else if (ret != PRIVILEGE_DB_NO_EXIST_RESULT) {
+ } else if (ret != PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
return PRVMGR_ERR_INTERNAL_ERROR;
}
TryReturn(user_data != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] user_data is NULL");
/* core */
- int ret = privilege_db_manager_get_privilege_group_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, privilege_name, "9.9", &group_id);
+ int ret = privilege_db_manager_get_privilege_group_id(PRVMGR_PACKAGE_TYPE_CORE, privilege_name, "9.9", &group_id);
if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE) {
if (group_id == data.privilege_group) {
LOGD("data.privilege_group = %d", data.privilege_group);
return PRVMGR_ERR_NONE;
}
- } else if (ret != PRIVILEGE_DB_NO_EXIST_RESULT) {
+ } else if (ret != PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
return PRVMGR_ERR_INTERNAL_ERROR;
}
/* wrt */
- ret = privilege_db_manager_get_privilege_group_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_name, "9.9", &group_id);
+ ret = privilege_db_manager_get_privilege_group_id(PRVMGR_PACKAGE_TYPE_WRT, privilege_name, "9.9", &group_id);
if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE) {
if (group_id == data.privilege_group) {
LOGD("data.privilege_group = %d", data.privilege_group);
return PRVMGR_ERR_NONE;
}
- } else if (ret != PRIVILEGE_DB_NO_EXIST_RESULT) {
+ } else if (ret != PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
return PRVMGR_ERR_INTERNAL_ERROR;
}
char *temp = NULL;
/* Check Native */
- int ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, privilege, NULL, &temp);
+ int ret = privilege_db_manager_get_privilege_display(PRVMGR_PACKAGE_TYPE_CORE, privilege, NULL, &temp);
LOGD("privilege = %s, string id = %s", privilege, temp);
}
return PRVMGR_ERR_NONE;
}
- } else if (ret != PRIVILEGE_DB_NO_EXIST_RESULT) {
+ } else if (ret != PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
if (temp != NULL) {
free(temp);
temp = NULL;
temp = NULL;
}
/* Check WRT */
- ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege, NULL, &temp);
+ ret = privilege_db_manager_get_privilege_display(PRVMGR_PACKAGE_TYPE_WRT, privilege, NULL, &temp);
if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE) {
if (temp == NULL) {
}
return PRVMGR_ERR_NONE;
}
- } else if (ret != PRIVILEGE_DB_NO_EXIST_RESULT) {
+ } else if (ret != PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
if (temp != NULL) {
free(temp);
temp = NULL;
char *temp = NULL;
/* Check Native */
- int ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, privilege, NULL, &temp);
+ int ret = privilege_db_manager_get_privilege_description(PRVMGR_PACKAGE_TYPE_CORE, privilege, NULL, &temp);
if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE) {
if (temp == NULL) {
}
return PRVMGR_ERR_NONE;
}
- } else if (ret != PRIVILEGE_DB_NO_EXIST_RESULT) {
+ } else if (ret != PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
if (temp != NULL) {
free(temp);
temp = NULL;
temp = NULL;
}
/* Check WRT */
- ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege, NULL, &temp);
+ ret = privilege_db_manager_get_privilege_description(PRVMGR_PACKAGE_TYPE_WRT, privilege, NULL, &temp);
if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE) {
if (temp == NULL) {
}
return PRVMGR_ERR_NONE;
}
- } else if (ret != PRIVILEGE_DB_NO_EXIST_RESULT) {
+ } else if (ret != PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
if (temp != NULL) {
free(temp);
temp = NULL;
return ret;
}
-int privilege_info_is_privacy_white_list_application(const char* pkgid)
-{
- if (DISABLE_ASKUSER)
- return 1;
-
- if (access(ASKUSER_RUNTIME_DISABLE_PATH, F_OK) == 0) {
- LOGD("askuser is disabled in run-time.");
- return 1;
- }
- TryReturn(pkgid != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER pkgid is NULL");
- int ret = privilege_db_manager_is_privacy_white_list_application(pkgid);
- if (ret == 1 || ret == 0)
- return ret;
- return -1;
-}
-
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");
else if (ret == 0)
return 0;
- if (ret == PRIVILEGE_DB_NO_EXIST_RESULT)
+ if (ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT)
LOGE("%s is invalid privacy name", privacy);
else
LOGE("ret = %d", ret);
int privilege_info_get_privacy_list(GList **privacy_list)
{
- int ret = __privilege_db_manager_get_privacy_list(privacy_list);
+ int ret = privilege_db_manager_get_privacy_list(privacy_list);
if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
ret = PRVMGR_ERR_NONE;
else
free(privacy_display_string);
TryReturn(ret == PRVMGR_ERR_NONE, , ret, "privilege_info_get_privilege_string_by_string_id() failed. ret = %d", ret);
TryReturn(*privacy_display != NULL, , PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] return value is PRVMGR_ERR_NONE but privacy_display is NULL.");
- } else if (ret == PRIVILEGE_DB_NO_EXIST_RESULT) {
+ } else if (ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
ret = PRVMGR_ERR_INVALID_PARAMETER;
} else {
ret = PRVMGR_ERR_INTERNAL_ERROR;
int privilege_info_get_privilege_list_by_privacy(const char* privacy, GList **privilege_list)
{
TryReturn(privacy != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privacy is NULL");
- int ret = __privilege_db_manager_get_privilege_list_by_privacy(privacy, privilege_list);
+ int ret = privilege_db_manager_get_privilege_list_by_privacy(privacy, privilege_list);
if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
ret = PRVMGR_ERR_NONE;
else
{
TryReturn(package_type == PRVMGR_PACKAGE_TYPE_WRT || package_type == PRVMGR_PACKAGE_TYPE_CORE, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] package_type invalid!");
- int ret = privilege_db_manager_get_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT, uid, package_type, privilege_list);
+ int ret = privilege_db_manager_get_black_list(PRVMGR_POLICY_TYPE_PREVENT, uid, package_type, privilege_list);
if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
ret = PRVMGR_ERR_NONE;
else
int privilege_info_get_mdm_black_list(uid_t uid, GList **privilege_list)
{
- int ret = privilege_db_manager_get_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE, uid, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_NONE, privilege_list);
+ int ret = privilege_db_manager_get_black_list(PRVMGR_POLICY_TYPE_DISABLE, uid, PRVMGR_PACKAGE_TYPE_NONE, privilege_list);
if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
ret = PRVMGR_ERR_NONE;
else
+/*
+ * Copyright(c) 2013-2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0(the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <ctype.h>
#include <string.h>
+#include <stdarg.h>
+#include <glib/gprintf.h>
#include "privilege_db_manager.h"
#include "privilege_manager.h"
+#include "privilege_manager_types.h"
#ifdef __TIZEN__
#include <dlog.h>
#define _LOGI(fmt, arg...)
#endif
-#define MESSAGE_SIZE 512
-
#define TryReturn(condition, expr, returnValue, ...)\
if (!(condition)) { \
_LOGE(__VA_ARGS__); \
return PRVMGR_ERR_NONE;
}
-static void __free_privilege_list(GList * privilege_list)
+static void __free_privilege_info(privilege_info_db_row_s *privilege_info)
{
- GList *l = NULL;
- for (l = privilege_list; l != NULL; l = l->next) {
- privilege_info_db_row_s *privilege_info_db_row = (privilege_info_db_row_s *) l->data;
- if (privilege_info_db_row->profile != NULL)
- free(privilege_info_db_row->profile);
- if (privilege_info_db_row->package_type != NULL)
- free(privilege_info_db_row->package_type);
- if (privilege_info_db_row->privilege_name != NULL)
- free(privilege_info_db_row->privilege_name);
- if (privilege_info_db_row->privilege_display != NULL)
- free(privilege_info_db_row->privilege_display);
- if (privilege_info_db_row->privilege_description != NULL)
- free(privilege_info_db_row->privilege_description);
- if (privilege_info_db_row->privilege_level != NULL)
- free(privilege_info_db_row->privilege_level);
- if (privilege_info_db_row->issued_version != NULL)
- free(privilege_info_db_row->issued_version);
- if (privilege_info_db_row->expired_version != NULL)
- free(privilege_info_db_row->expired_version);
- if (privilege_info_db_row->changed_to != NULL)
- free(privilege_info_db_row->changed_to);
- }
+ if (privilege_info->profile != NULL)
+ free(privilege_info->profile);
+ if (privilege_info->package_type != NULL)
+ free(privilege_info->package_type);
+ if (privilege_info->privilege_name != NULL)
+ free(privilege_info->privilege_name);
+ if (privilege_info->privilege_display != NULL)
+ free(privilege_info->privilege_display);
+ if (privilege_info->privilege_description != NULL)
+ free(privilege_info->privilege_description);
+ if (privilege_info->privilege_level != NULL)
+ free(privilege_info->privilege_level);
+ if (privilege_info->issued_version != NULL)
+ free(privilege_info->issued_version);
+ if (privilege_info->expired_version != NULL)
+ free(privilege_info->expired_version);
+ if (privilege_info->changed_to != NULL)
+ free(privilege_info->changed_to);
}
-static int __privilege_manager_check_privilege_list(const char *api_version, const char *privilege, GList * valid_privilege_list, int *privilege_level, char **changed_to, char **valid_api_version)
+static void __free_privilege_list(gpointer privilege_list)
+{
+ __free_privilege_info((privilege_info_db_row_s*)privilege_list);
+}
+
+static int __privilege_manager_check_privilege_list(const char *api_version, const char *privilege, GList *valid_privilege_list, int *privilege_level, char **changed_to, char **valid_api_version)
{
- TryReturn(privilege != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege is NULL");
int ret_val = PRVMGR_ERR_NO_EXIST_PRIVILEGE;
api_version_code_t api_version_code = 0;
int ret = __get_api_version_code(api_version, &api_version_code);
- TryReturn(ret == PRVMGR_ERR_NONE && api_version_code != 0, , PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] __get_api_version_code() for api_version failed. api_version = %s", api_version);
+ TryReturn(ret == PRVMGR_ERR_NONE && api_version_code != 0, , PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] __get_api_version_code() for api_version = %s failed.", api_version);
GList *l = NULL;
for (l = valid_privilege_list; l != NULL; l = l->next) {
privilege_info_db_row_s *privilege_info_db_row = (privilege_info_db_row_s *)l->data;
if (strcmp(privilege_info_db_row->privilege_name, privilege) == 0) {
_LOGD("Matched privilege name exist");
- _LOGD("Check api version");
api_version_code_t issued_version_code = 0;
api_version_code_t expired_version_code = 0;
TryReturn(ret == PRVMGR_ERR_NONE && issued_version_code != 0, , PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] __get_api_version_code() for issued_version of privilege (%s) failed. issued_version = %s", privilege, privilege_info_db_row->issued_version);
if (api_version_code < issued_version_code) {
- _LOGD("%s is invalid in tizen version: %s", privilege_info_db_row->privilege_name, api_version);
- _LOGD("privilege issued version is higher than api version");
+ _LOGD("privilege = <%s>, issued version = <%s>, current api-version = <%s>. issude_version > api version.", privilege, privilege_info_db_row->issued_version, api_version);
if (*valid_api_version != NULL) {
free(*valid_api_version);
*valid_api_version = NULL;
TryReturn(valid_api_version != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] valid_api_version's strdup is failed.");
ret_val = PRVMGR_ERR_NO_EXIST_PRIVILEGE;
- }
- if (api_version_code >= expired_version_code) {
- _LOGD("%s is invalid in tizen version: %s", privilege_info_db_row->privilege_name, api_version);
- _LOGD("privilege deprecated version is equal to or lower than api version");
+ } else if (api_version_code >= expired_version_code) {
+ _LOGD("privilege = <%s>, expired version = <%s>, current api-version = <%s>. deprecated version <= api version.", privilege, privilege_info_db_row->expired_version, api_version);
+ if (*valid_api_version != NULL) {
+ free(*valid_api_version);
+ *valid_api_version = NULL;
+ }
*valid_api_version = strdup(privilege_info_db_row->expired_version);
TryReturn(valid_api_version != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] valid_api_version's strdup is failed.");
if (privilege_info_db_row->changed_to != NULL && strcmp(privilege_info_db_row->changed_to, "") != 0) {
TryReturn(changed_to != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] changed_to's strdup is failed.");
}
ret_val = PRVMGR_ERR_DEPRECATED_PRIVILEGE;
- }
- if (api_version_code >= issued_version_code && api_version_code < expired_version_code) {
+ } else {
*privilege_level = privilege_info_db_row->privilege_level_id;
ret_val = PRVMGR_ERR_NONE;
goto FINISH;
return ret_val;
}
-const char *__get_privilege_level_string(privilege_db_manager_privilege_level_e privilege_db_manager_privilege_level)
+static const char *__get_privilege_level_string(privilege_manager_visibility_e visibility)
{
- if (privilege_db_manager_privilege_level == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PUBLIC)
+ switch (visibility) {
+ case PRVMGR_PACKAGE_VISIBILITY_PUBLIC:
return "public";
- else if (privilege_db_manager_privilege_level == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PARTNER)
+ case PRVMGR_PACKAGE_VISIBILITY_PARTNER:
return "partner";
- else if (privilege_db_manager_privilege_level == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM)
+ case PRVMGR_PACKAGE_VISIBILITY_PLATFORM:
return "platform";
- else
- return "not defined privilege";
+ default:
+ return NULL;
+ }
+}
+
+const char *__get_package_type_string(privilege_manager_package_type_e type)
+{
+ switch (type) {
+ case PRVMGR_PACKAGE_TYPE_WRT:
+ return "Web";
+ case PRVMGR_PACKAGE_TYPE_CORE:
+ return "Native";
+ case PRVMGR_PACKAGE_TYPE_METADATA:
+ return "Metadata";
+ default:
+ return NULL;
+ }
+}
+
+static const char *__get_format(privilege_verification_error_type_e type)
+{
+ return prvmgr_msg_table[type].msg;
+}
+
+static char *__make_message_from_type(privilege_verification_error_type_e type, ...)
+{
+ char *buf = NULL;
+ va_list ap;
+ va_start(ap, type);
+ int ret = g_vasprintf(&buf, __get_format(type), ap);
+ va_end(ap);
+ if (ret == -1) {
+ _LOGE("[PRVMGR_INTERNAL_ERROR] g_vasprintf failed");
+ if (buf != NULL)
+ free(buf);
+ return NULL;
+ }
+ return buf;
+}
+
+static char *__make_message_from_format(const char *fmt, ...)
+{
+ char *buf = NULL;
+ va_list ap;
+ va_start(ap, fmt);
+ int ret = g_vasprintf(&buf, fmt, ap);
+ va_end(ap);
+ if (ret == -1) {
+ _LOGE("[PRVMGR_INTERNAL_ERROR] g_vasprintf failed");
+ if (buf != NULL)
+ free(buf);
+ return NULL;
+ }
+ return buf;
+}
+
+static int __is_valid_package_type(privilege_manager_package_type_e package_type)
+{
+ if (package_type != PRVMGR_PACKAGE_TYPE_WRT && package_type != PRVMGR_PACKAGE_TYPE_CORE && package_type != PRVMGR_PACKAGE_TYPE_METADATA)
+ return 0;
+ return 1;
+}
+
+static char *__make_guide_message(privilege_manager_package_type_e package_type, const char *api_version, privilege_manager_visibility_e level)
+{
+ switch (package_type) {
+ case PRVMGR_PACKAGE_TYPE_WRT:
+ return __make_message_from_type(G_WEB, api_version, __get_privilege_level_string(level));
+ case PRVMGR_PACKAGE_TYPE_CORE:
+ return __make_message_from_type(G_NATIVE, api_version, __get_privilege_level_string(level));
+ default:
+ return __make_message_from_type(G_METADATA, api_version, __get_privilege_level_string(level));
+ }
}
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)
GList *l;
int ret;
int ret_val = PRVMGR_ERR_NONE;
+ char *message = NULL;
char *message_list = NULL;
char *noexist_message = NULL;
char *deprecated_message = NULL;
char *mismatched_message = NULL;
- char message[MESSAGE_SIZE] = { 0, };
- char guide_message[MESSAGE_SIZE] = { 0, };
char *changed_to = NULL;
char *valid_api_version = NULL;
GList *valid_privilege_list;
char *wrt_active_version = "2.3.1";
int is_valid_wrt_version = 1;
- char *pkg_type = NULL;
api_version_code_t api_version_code = 0;
/* Check invalid parameters */
if (api_version == NULL) {
_LOGE("[PRVMGR_ERR_INVALID_PARAMETER] api_version is NULL");
- *error_message = strdup("[PRVMGR_ERR_INVALID_PARAMETER] api_version is NULL");
- TryReturn(error_message != NULL, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed.");
-
return PRVMGR_ERR_INVALID_PARAMETER;
- } else {
- ret = __get_api_version_code(api_version, &api_version_code);
- if (ret != PRVMGR_ERR_NONE) {
- _LOGE("[PRVMGR_ERR_INVALID_PARAMETER] The api_version is invalid. api_version should be consist of digit(0 <= x <= 255) and dot(.) in form of x, x.x, x.x.x, or x.x.x.x");
- *error_message = strdup("[PRVMGR_ERR_INVALID_PARAMETER] The api_version is invalid. api_version should be consist of digit(0 <= x <= 255) and dot(.) in form of x, x.x, x.x.x, or x.x.x.x");
- TryReturn(error_message != NULL, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed");
- return ret;
- }
}
- 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");
- TryReturn(error_message != NULL, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed.");
-
+ if (privilege_list == NULL) {
+ _LOGE("[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL");
return PRVMGR_ERR_INVALID_PARAMETER;
}
- if (package_type == PRVMGR_PACKAGE_TYPE_WRT) {
- api_version_code_t wrt_active_version_code = 0;
- ret = __get_api_version_code(wrt_active_version, &wrt_active_version_code);
- TryReturn(ret == PRVMGR_ERR_NONE && wrt_active_version_code != 0, , PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] __get_api_version_code() for wrt_active_version failed.");
- if (wrt_active_version_code > api_version_code)
- is_valid_wrt_version = 0;
- pkg_type = strdup("WRT");
- _LOGD("package type = %s, api version %s, is valid wrt version %d", pkg_type, api_version, is_valid_wrt_version);
- snprintf(guide_message, MESSAGE_SIZE, "Check config.xml| - Current required_version(=api version) = %s, | ", api_version);
- } else if (package_type == 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) {
- _LOGE("[PRVMGR_ERR_INVALID_PARAMETER] visibility don't include any public, partner, platform");
- *error_message = strdup("[INVALID_PARAMETER] Signature Level is invalid. Signature Level must be a public, partner or platform");
- TryReturn(error_message != NULL, free(pkg_type), PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed.");
- free(pkg_type);
+ if (__get_api_version_code(api_version, &api_version_code) != PRVMGR_ERR_NONE) {
+ _LOGE("[PRVMGR_ERR_INVALID_PARAMETER] The api_version is invalid. api_version should be consist of digit(0 <= x <= 255) and dot(.) in form of x, x.x, x.x.x, or x.x.x.x.");
return PRVMGR_ERR_INVALID_PARAMETER;
}
- if ((visibility & PRVMGR_PACKAGE_VISIBILITY_PUBLIC) == PRVMGR_PACKAGE_VISIBILITY_PUBLIC)
- strncat(guide_message, "certificate signature level = public||", strlen("certificate signature level = public||"));
- else if ((visibility & PRVMGR_PACKAGE_VISIBILITY_PARTNER) == PRVMGR_PACKAGE_VISIBILITY_PARTNER)
- strncat(guide_message, "certificate signature level = partner||", strlen("certificate signature level = partner||"));
- else
- strncat(guide_message, "certificate signature level = platform||", strlen("certificate signature level = platform||"));
-
- if (privilege_list == NULL) {
- _LOGE("[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL");
- *error_message = strdup("[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL");
- TryReturn(error_message != NULL, free(pkg_type), PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] error_message's strdup is failed.");
-
- free(pkg_type);
+ if (!__is_valid_package_type(package_type)) {
+ _LOGE("[PRVMGR_ERR_INVALID_PARAMETER] package_type is not a PRVMGR_PACKAGE_TYPE_WRT or PRVMGR_PACKAGE_TYPE_CORE");
return PRVMGR_ERR_INVALID_PARAMETER;
}
/* Check black list */
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");
+ _LOGE("[PRVMGR_ERR_INTERNAL_ERROR] black list policy db cannot be found");
} else if (ret > 0) {
- *error_message = strdup("[PRVMGR_ERR_USING_BANNED_PRIVILEGE] Application manifest contains banned privilege(s) declared by the DPM");
+ *error_message = __make_message_from_type(E_DPM_BANNED_PRIVILEGE);
+ TryReturn(error_message != NULL, , PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERROR_OUT_OF_MEMORY] __make_message_from_type failed");
return PRVMGR_ERR_USING_BANNED_PRIVILEGE;
} else if (ret < 0) {
- _LOGE("privilege_db_manager_check_black_list failed. ret = %d", ret);
+ _LOGE("[PRVMGR_ERR_INTERNAL_ERROR] privilege_db_manager_check_black_list failed. ret = %d", ret);
return PRVMGR_ERR_INTERNAL_ERROR;
}
+ /* See if privilege's api version should be checked */
+ if (package_type == PRVMGR_PACKAGE_TYPE_WRT) {
+ api_version_code_t wrt_active_version_code = 0;
+ ret = __get_api_version_code(wrt_active_version, &wrt_active_version_code);
+ TryReturn(ret == PRVMGR_ERR_NONE && wrt_active_version_code != 0, , PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] __get_api_version_code() for wrt_active_version failed.");
+ if (wrt_active_version_code > api_version_code)
+ is_valid_wrt_version = 0;
+ } else if (package_type == PRVMGR_PACKAGE_TYPE_METADATA) {
+ is_valid_wrt_version = 0;
+ }
+
/* Get valid privilege list */
ret = privilege_db_manager_get_privilege_list(api_version, package_type, &valid_privilege_list);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) {
if (ret == PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY) {
- _LOGE("[FAIL TO CALL FUNCTION] privilege db cannot be found");
- *error_message = strdup("[PRVMGR_ERR_INTERNAL_ERROR] privilege DB not found");
+ _LOGE("[PRVMGR_ERR_INTERNAL_ERROR] privilege db cannot be found");
} else {
- _LOGE("[FAIL TO CALL FUNCTION] privilege_db_manager_get_privilege_list()");
- *error_message = strdup("[PRVMGR_ERR_INTERNAL_ERROR] failed to get privilege list from DB");
+ _LOGE("[PRVMGR_ERR_INTERNAL_ERROR] privilege_db_manager_get_privilege_list() failed. ret = %d", ret);
}
- free(pkg_type);
return PRVMGR_ERR_INTERNAL_ERROR;
}
/* Compare received privilege with valid privilege list */
for (l = privilege_list; l != NULL; l = l->next) {
- int privilege_level_id = PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PUBLIC;
+ int privilege_level_id = PRVMGR_PACKAGE_VISIBILITY_PUBLIC;
char *privilege_name = (char *)l->data;
_LOGD("Checking privilege = %s", privilege_name);
ret = PRVMGR_ERR_NONE;
}
+ if (message != NULL) {
+ free(message);
+ message = NULL;
+ }
+
if (ret == PRVMGR_ERR_NO_EXIST_PRIVILEGE) {
- memset(message, 0, MESSAGE_SIZE);
if (valid_api_version != NULL && strcmp(valid_api_version, "") != 0) {
- _LOGE("[PRVMGR_ERR_NO_EXIST_PRIVILEGE]%s %s privilege is valid from Tizen version %s and your api version is %s. Use at least api version %s or remove the privilege.", pkg_type, privilege_name, valid_api_version, api_version, valid_api_version);
- snprintf(message, MESSAGE_SIZE, " - %s| >> Use at least api version %s or remove the privilege.|", privilege_name, valid_api_version);
+ message = __make_message_from_type(E_NOT_EXIST_YET, privilege_name, valid_api_version);
+ _LOGD("[NO_EXIST_PRIVILEGE] %s %s is valid from api version %s and your current api version %s. Use at least api version %s or remove the privilege.", __get_package_type_string(package_type), privilege_name, valid_api_version, api_version, valid_api_version);
} else {
- _LOGE("[PRVMGR_ERR_NO_EXIST_PRIVILEGE]%s %s is an invalid privilege. Check spelling or remove the privilege.", pkg_type, privilege_name);
- snprintf(message, MESSAGE_SIZE, " - %s| >> Check spelling or remove the privilege.|", privilege_name);
+ message = __make_message_from_type(E_NOT_EXIST, privilege_name);
+ _LOGD("[NO_EXIST_PRIVILEGE] %s %s is not exist. Check spelling or remove the privilege.", __get_package_type_string(package_type), privilege_name);
}
+ TryReturn(message != NULL, ret_val = PRVMGR_ERR_INTERNAL_ERROR; goto FINISH, PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] __make_message_from_type failed");
+
if (noexist_message == NULL) {
- noexist_message = strdup("");
- 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.");
+ noexist_message = strdup(message);
+ } else {
+ char *tmp = __make_message_from_format("%s%s", noexist_message, message);
+ TryReturn(tmp != NULL, ret_val = PRVMGR_ERR_INTERNAL_ERROR; goto FINISH, PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_OUT_OF_MEMORY] __make_message_from_format failed.");
+ free(noexist_message);
+ noexist_message = NULL;
+ noexist_message = tmp;
}
- size_t new_size = snprintf(0, 0, "%s%s", noexist_message, message) + 1;
- 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));
+ TryReturn(noexist_message != NULL, ret_val = PRVMGR_ERR_INTERNAL_ERROR; goto FINISH, PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] fail to make noexist_message");
ret_val = PRVMGR_ERR_INVALID_PRIVILEGE;
} else if (ret == PRVMGR_ERR_DEPRECATED_PRIVILEGE) {
-
- memset(message, 0, MESSAGE_SIZE);
if (changed_to != NULL && strcmp(changed_to, "") != 0) {
- _LOGE("[PRVMGR_ERR_DEPRECATED_PRIVILEGE]%s %s is a deprecated since Tizen version %s and your api version is %s. Use %s instead or use api version lower than %s.", pkg_type, privilege_name, valid_api_version, api_version, changed_to, valid_api_version);
- snprintf(message, MESSAGE_SIZE, " - %s| >> Use %s instead of it or use api version lower than %s.|", privilege_name, changed_to, valid_api_version);
+ message = __make_message_from_type(E_DEPRECATED_AND_CHANGED, privilege_name, changed_to, valid_api_version);
+ _LOGD("[DEPRECATED_PRIVILEGE] %s %s is deprecated since api version %s. Use %s instead of it.", __get_package_type_string(package_type), privilege_name, valid_api_version, changed_to);
} else {
- _LOGE("[PRVMGR_ERR_DEPRECATED_PRIVILEGE]%s %s is deprecated since Tizen version %s and your api version is %s. Remove the privilege.", pkg_type, privilege_name, valid_api_version, api_version);
- snprintf(message, MESSAGE_SIZE, " - %s| >> Remove the privilege.|", privilege_name);
+ message = __make_message_from_type(E_DEPRECATED, privilege_name);
+ _LOGD("[DEPRECATED_PRIVILEGE] %s %s is deprecated since api version %s. Remove the privilege or use api version lower than %s.", __get_package_type_string(package_type), privilege_name, valid_api_version, valid_api_version);
}
+ TryReturn(message != NULL, ret_val = PRVMGR_ERR_INTERNAL_ERROR; goto FINISH, PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] __make_message_from_type failed");
+ _LOGD("[PRVMGR_ERR_DEPRECATED_PRIVILEGE] pkg type: <%s>, %s", __get_package_type_string(package_type), message);
+
if (deprecated_message == NULL) {
- deprecated_message = strdup("");
- 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.");
+ deprecated_message = strdup(message);
+ } else {
+ char *tmp = __make_message_from_format("%s%s", deprecated_message, message);
+ TryReturn(message != NULL, ret_val = PRVMGR_ERR_INTERNAL_ERROR; goto FINISH, PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] __make_message_from_format failed");
+ free(deprecated_message);
+ deprecated_message = NULL;
+ deprecated_message = tmp;
}
- size_t new_size = snprintf(0, 0, "%s%s", deprecated_message, message) + 1;
- 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));
+ TryReturn(deprecated_message != NULL, ret_val = PRVMGR_ERR_INTERNAL_ERROR; goto FINISH, PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] fail to make deprecated_message");
ret_val = PRVMGR_ERR_INVALID_PRIVILEGE;
} else if (ret == PRVMGR_ERR_NONE) {
- _LOGD("visibility = %d", visibility);
- _LOGD("privilege level = %d", privilege_level_id);
-
- if ((visibility & PRVMGR_PACKAGE_VISIBILITY_PUBLIC) == PRVMGR_PACKAGE_VISIBILITY_PUBLIC) {
- if (privilege_level_id == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PARTNER || privilege_level_id == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM) {
- _LOGE("[PRVMGR_ERR_MISMATCHED_PRIVILEGE_LEVEL] Visibility and Privilege level are mismatched");
- _LOGE("[PRVMGR_ERR_MISMATCHED_PRIVILEGE_LEVEL] Visibility = public, Privilege Level = %s", __get_privilege_level_string(privilege_level_id));
-
- memset(message, 0, MESSAGE_SIZE);
- snprintf(message, MESSAGE_SIZE, " - %s| >> Use at least %s signatured certificate.|", privilege_name, __get_privilege_level_string(privilege_level_id));
-
- if (mismatched_message == NULL) {
- mismatched_message = strdup("");
- 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;
- 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) {
- if (privilege_level_id == PRIVILEGE_DB_MANAGER_PRIVILEGE_LEVEL_PLATFORM) {
- _LOGE("[PRVMGR_ERR_MISMATCHED_PRIVILEGE_LEVEL] Visibility and Privilege level are mismatched");
- _LOGE("[PRVMGR_ERR_MISMATCHED_PRIVILEGE_LEVEL] Visibility = partner, Privilege Level = %s", __get_privilege_level_string(privilege_level_id));
-
- memset(message, 0, MESSAGE_SIZE);
- snprintf(message, MESSAGE_SIZE, " - %s| >> Use at least %s signatured certificate.|", privilege_name, __get_privilege_level_string(privilege_level_id));
-
- if (mismatched_message == NULL) {
- mismatched_message = strdup("");
- 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;
- 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;
+ if (visibility < (unsigned int)privilege_level_id) {
+ _LOGD("[MISMATCHED_PRIVILEGE_LEVEL] %s %s requires certificate level: %s and current certificate level: %s. Use at least certificate with signature level %s.", __get_package_type_string(package_type), privilege_name, __get_privilege_level_string(privilege_level_id), __get_privilege_level_string(visibility), __get_privilege_level_string(privilege_level_id));
+ message = __make_message_from_type(E_CERT_LEVEL_MISMATCHED, privilege_name, __get_privilege_level_string(privilege_level_id));
+ TryReturn(message != NULL, ret_val = PRVMGR_ERR_INTERNAL_ERROR; goto FINISH, PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] __make_message_from_type failed");
+ if (mismatched_message == NULL) {
+ mismatched_message = strdup(message);
+ } else {
+ char *tmp = __make_message_from_format("%s%s", mismatched_message, message);
+ TryReturn(message != NULL, ret_val = PRVMGR_ERR_INTERNAL_ERROR; goto FINISH, PRVMGR_ERR_INTERNAL_ERROR, "[PRVMGR_ERR_INTERNAL_ERROR] __make_message_from_format failed");
+ free(mismatched_message);
+ mismatched_message = NULL;
+ mismatched_message = tmp;
}
+ ret_val = PRVMGR_ERR_INVALID_PRIVILEGE;
}
- } else if (ret == PRVMGR_ERR_INVALID_PARAMETER) {
- _LOGE("[PRVMGR_ERR_INVALID_PARAMETER] privilege_name is NULL");
- *error_message = strdup("[INVALID_PARAMETER] Invalid parameter was passed.|");
- 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.");
-
- ret_val = PRVMGR_ERR_INVALID_PARAMETER;
- goto FINISH;
} else if (ret == PRVMGR_ERR_INTERNAL_ERROR) {
_LOGE("[PRVMGR_ERR_INVALID_PARAMETER] Unknown Error occured.");
- *error_message = strdup("[INTERNAL_ERROR] Unknown Error occured.|");
- 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.");
-
ret_val = PRVMGR_ERR_INTERNAL_ERROR;
goto FINISH;
}
}
char *newline = "|";
-
if (ret_val != PRVMGR_ERR_NONE) {
- message_list = strdup(guide_message);
+ message_list = __make_guide_message(package_type, api_version, visibility);
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;
}
FINISH:
+ free(message);
free(message_list);
free(deprecated_message);
free(mismatched_message);
free(noexist_message);
free(changed_to);
free(valid_api_version);
- free(pkg_type);
- __free_privilege_list(valid_privilege_list);
- g_list_free(valid_privilege_list);
+ g_list_free_full(valid_privilege_list, __free_privilege_list);
return ret_val;
}
{
TryReturn(privilege_list != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL.");
TryReturn(package_type == PRVMGR_PACKAGE_TYPE_WRT || package_type == PRVMGR_PACKAGE_TYPE_CORE, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] Invalid package_type = %d.", package_type);
- int ret = privilege_db_manager_set_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT, uid, package_type, privilege_list);
+ int ret = privilege_db_manager_set_black_list(PRVMGR_POLICY_TYPE_PREVENT, uid, package_type, privilege_list);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
ret = PRVMGR_ERR_INTERNAL_ERROR;
return ret;
{
TryReturn(privilege_list != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL.");
TryReturn(package_type == PRVMGR_PACKAGE_TYPE_WRT || package_type == PRVMGR_PACKAGE_TYPE_CORE, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] Invalid package_type = %d.", package_type);
- int ret = privilege_db_manager_unset_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_PREVENT, uid, package_type, privilege_list);
+ int ret = privilege_db_manager_unset_black_list(PRVMGR_POLICY_TYPE_PREVENT, uid, package_type, privilege_list);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
ret = PRVMGR_ERR_INTERNAL_ERROR;
return ret;
{
TryReturn(privilege_list != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL.");
- int ret = privilege_db_manager_set_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE, uid, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_NONE, privilege_list);
+ int ret = privilege_db_manager_set_black_list(PRVMGR_POLICY_TYPE_DISABLE, uid, PRVMGR_PACKAGE_TYPE_NONE, privilege_list);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
ret = PRVMGR_ERR_INTERNAL_ERROR;
return ret;
{
TryReturn(privilege_list != NULL, , PRVMGR_ERR_INVALID_PARAMETER, "[PRVMGR_ERR_INVALID_PARAMETER] privilege_list is NULL.");
- int ret = privilege_db_manager_unset_black_list(PRIVILEGE_MANAGER_POLICY_TYPE_DISABLE, uid, PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_NONE, privilege_list);
+ int ret = privilege_db_manager_unset_black_list(PRVMGR_POLICY_TYPE_DISABLE, uid, PRVMGR_PACKAGE_TYPE_NONE, privilege_list);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE)
ret = PRVMGR_ERR_INTERNAL_ERROR;
return ret;
case 'd':
if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE)
return "PRIVILEGE_DB_MANAGER_ERR_NONE";
- else if (ret == PRIVILEGE_DB_NO_EXIST_RESULT)
- return "PRIVILEGE_DB_NO_EXIST_RESULT";
+ else if (ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT)
+ return "PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT";
else if (ret == PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL)
return "PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL";
else if (ret == PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY)
void __test_privilege_db_manager_get_privilege_list()
{
GList *privilege_list = NULL;
- int ret = privilege_db_manager_get_privilege_list("2.4", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, &privilege_list);
+ int ret = privilege_db_manager_get_privilege_list("2.4", PRVMGR_PACKAGE_TYPE_CORE, &privilege_list);
if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE) {
printf("failed to call privilege_db_manager_get_privilege_list()\n");
printf("error message = %s\n", __get_result_string('d', ret));
printf("api_version : 2.4\n");
printf("package type : wrt\n");
privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/default/public");
- ret = privilege_db_manager_get_mapped_privilege_list("2.4", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+ ret = privilege_db_manager_get_mapped_privilege_list("2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
__print_mapped_privilege_list(ret, mapped_privilege_list);
g_list_free(privilege_list);
printf("api_version : 2.4\n");
printf("package type : wrt\n");
privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/mediacapture");
- ret = privilege_db_manager_get_mapped_privilege_list("2.4", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+ ret = privilege_db_manager_get_mapped_privilege_list("2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
__print_mapped_privilege_list(ret, mapped_privilege_list);
g_list_free(privilege_list);
printf("package type : wrt\n");
privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/default/public");
privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/mediacapture");
- ret = privilege_db_manager_get_mapped_privilege_list("2.4", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+ ret = privilege_db_manager_get_mapped_privilege_list("2.4", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
__print_mapped_privilege_list(ret, mapped_privilege_list);
g_list_free(privilege_list);
printf("api_version : 2.2.1\n");
printf("package type : wrt\n");
privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/default/public");
- ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+ ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
__print_mapped_privilege_list(ret, mapped_privilege_list);
g_list_free(privilege_list);
printf("api_version : 2.2.1\n");
printf("package type : wrt\n");
privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/mediacapture");
- ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+ ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
__print_mapped_privilege_list(ret, mapped_privilege_list);
g_list_free(privilege_list);
printf("api_version : 2.2.1\n");
printf("package type : wrt\n");
privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/content.read");
- ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+ ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
__print_mapped_privilege_list(ret, mapped_privilege_list);
g_list_free(privilege_list);
privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/internal/default/public");
privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/mediacapture");
privilege_list = g_list_append(privilege_list, "http://tizen.org/privilege/content.read");
- ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
+ ret = privilege_db_manager_get_mapped_privilege_list("2.2.1", PRVMGR_PACKAGE_TYPE_WRT, privilege_list, &mapped_privilege_list);
__print_mapped_privilege_list(ret, mapped_privilege_list);
g_list_free(privilege_list);
printf("privilege : http://tizen.org/privilege/location\n");
printf("privilege_type : core\n");
printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
- ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/location", "2.3", &privilege_display);
+ ret = privilege_db_manager_get_privilege_display(PRVMGR_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/location", "2.3", &privilege_display);
__check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_display);
free(privilege_display);
}
printf("privilege_type : wrt\n");
printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
privilege_display = NULL;
- ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/internet", "2.3", &privilege_display);
+ ret = privilege_db_manager_get_privilege_display(PRVMGR_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/internet", "2.3", &privilege_display);
__check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_display);
free(privilege_display);
__print_line();
printf("privilege : http://tizen.org/privilege/messasdfsfsdfsdfad\n");
- printf("expected result : PRIVILEGE_DB_NO_EXIST_RESULT\n");
+ printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT\n");
privilege_display = NULL;
- ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", "2.3", &privilege_display);
- __check_get_privilege_display_result(PRIVILEGE_DB_NO_EXIST_RESULT, ret, privilege_display);
+ ret = privilege_db_manager_get_privilege_display(PRVMGR_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", "2.3", &privilege_display);
+ __check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT, ret, privilege_display);
free(privilege_display);
__print_line();
printf("privilege_type : wrt\n");
printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
privilege_display = NULL;
- ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/internet", NULL, &privilege_display);
+ ret = privilege_db_manager_get_privilege_display(PRVMGR_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/internet", NULL, &privilege_display);
__check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_display);
free(privilege_display);
__print_line();
printf("api_version is NULL\n");
printf("privilege : http://tizen.org/privilege/messasdfsfsdfsdfad\n");
- printf("expected result : PRIVILEGE_DB_NO_EXIST_RESULT\n");
+ printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT\n");
privilege_display = NULL;
- ret = privilege_db_manager_get_privilege_display(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", NULL, &privilege_display);
- __check_get_privilege_display_result(PRIVILEGE_DB_NO_EXIST_RESULT, ret, privilege_display);
+ ret = privilege_db_manager_get_privilege_display(PRVMGR_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", NULL, &privilege_display);
+ __check_get_privilege_display_result(PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT, ret, privilege_display);
free(privilege_display);
__print_line();
printf("privilege : http://tizen.org/privilege/location\n");
printf("privilege_type : core\n");
printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
- ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/location", "2.3", &privilege_description);
+ ret = privilege_db_manager_get_privilege_description(PRVMGR_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/location", "2.3", &privilege_description);
__check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_description);
if (privilege_description != NULL) {
printf("privilege : http://tizen.org/privilege/internet\n");
printf("privilege_type : wrt\n");
printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
- ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/internet", "2.3", &privilege_description);
+ ret = privilege_db_manager_get_privilege_description(PRVMGR_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/internet", "2.3", &privilege_description);
__check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_description);
if (privilege_description != NULL) {
__print_line();
printf("privilege : http://tizen.org/privilege/messasdfsfsdfsdfad\n");
- printf("expected result : PRIVILEGE_DB_NO_EXIST_RESULT\n");
- ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", "2.3", &privilege_description);
- __check_get_privilege_description_result(PRIVILEGE_DB_NO_EXIST_RESULT, ret, privilege_description);
+ printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT\n");
+ ret = privilege_db_manager_get_privilege_description(PRVMGR_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", "2.3", &privilege_description);
+ __check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT, ret, privilege_description);
if (privilege_description != NULL) {
free(privilege_description);
printf("privilege : http://tizen.org/privilege/internet\n");
printf("privilege_type : wrt\n");
printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NONE\n");
- ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/internet", NULL, &privilege_description);
+ ret = privilege_db_manager_get_privilege_description(PRVMGR_PACKAGE_TYPE_WRT, "http://tizen.org/privilege/internet", NULL, &privilege_description);
__check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NONE, ret, privilege_description);
if (privilege_description != NULL) {
__print_line();
printf("api_version is NULL\n");
printf("privilege : http://tizen.org/privilege/messasdfsfsdfsdfad\n");
- printf("expected result : PRIVILEGE_DB_NO_EXIST_RESULT\n");
- ret = privilege_db_manager_get_privilege_description(PRIVILEGE_DB_MANAGER_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", NULL, &privilege_description);
- __check_get_privilege_description_result(PRIVILEGE_DB_NO_EXIST_RESULT, ret, privilege_description);
+ printf("expected result : PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT\n");
+ ret = privilege_db_manager_get_privilege_description(PRVMGR_PACKAGE_TYPE_CORE, "http://tizen.org/privilege/messasdfsfsdfsdfad", NULL, &privilege_description);
+ __check_get_privilege_description_result(PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT, ret, privilege_description);
__print_line();
free(privilege_description);
printf("is user-settable\n");
ret = privilege_db_manager_is_user_settable("org.tizen.xxxxxxx", "http://tizen.org/privacy/xxxxx");
printf("ret = %d\n", ret);
- if (ret == PRIVILEGE_DB_NO_EXIST_RESULT) {
+ if (ret == PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
success_cnt++;
__color_to_green();
printf("success\n");
__print_line();
}
-void __test_privilege_info_is_privacy_white_list_application()
-{
- int ret = 0;
- __print_line();
- printf("pkgid = org.tizen.test\n");
- ret = privilege_info_is_privacy_white_list_application("org.tizen.test");
- printf("expect return value = 0, returned value = %d\n", ret);
- if (ret == 0) {
- success_cnt++;
- __color_to_green();
- printf("success\n");
- __color_to_origin();
- } else {
- fail_cnt++;
- __color_to_red();
- printf("fail. ret = %d\n", ret);
- __color_to_origin();
- }
- __print_line();
-
- printf("pkgid = ise-default\n");
- ret = privilege_info_is_privacy_white_list_application("ise-default");
- printf("expect return value = 1, returned value = %d\n", ret);
-
- if (ret == 1) {
- success_cnt++;
- __color_to_green();
- printf("success\n");
- __color_to_origin();
- } else {
- fail_cnt++;
- __color_to_red();
- printf("fail. ret = %d\n", ret);
- __color_to_origin();
- }
-
- __print_line();
-
- printf("pkgid = ise-defaulttt\n");
- ret = privilege_info_is_privacy_white_list_application("ise-defaulttt");
- printf("expect return value = 0, returned value = %d\n", ret);
-
- if (ret == 0) {
- success_cnt++;
- __color_to_green();
- printf("success\n");
- __color_to_origin();
- } else {
- fail_cnt++;
- __color_to_red();
- printf("fail. ret = %d", ret);
- __color_to_origin();
- }
-
-}
-
-
int main()
{
__tcinfo(function, "privilege_info_is_privacy");
__tcinfo(function, "privilege_info_is_user_settable");
__test_privilege_info_is_user_settable();
- __tcinfo(function, "privilege_info_is_privacy_white_list_application");
- __test_privilege_info_is_privacy_white_list_application();
-
__color_to_green();
printf("Test Complete\n");
printf("success : %d, ", success_cnt);