2 * Copyright(c) 2013-2020 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0(the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef __PRIVILEGE_DB_MANAGER_H
18 #define __PRIVILEGE_DB_MANAGER_H
22 #include "privilege_manager_types.h"
29 * @brief Free GList of privilege_info_db_row_s* allocated by privilege_db_manager_get_privilege_level_info_list()
30 * @param [in] list The GList allocated by privilege_db_manager_get_privilege_level_info_list()
32 void free_privilege_level_info_list(GList* list);
35 * @brief Free GList of privilege_privacy_info_s* allocated by privilege_db_manager_get_privacy_filtered_privilege_info_list()
36 * @param [in] list The GList allocated by privilege_db_manager_get_privacy_filtered_privilege_info_list()
38 void free_privilege_privacy_info_list(GList *list);
41 * @brief Free privilege_privacy_info_s
42 * @param [in] info The privilege_privacy_info_s
44 void free_privilege_privacy_info(privilege_privacy_info_s* info);
47 * @brief Free GList allocated by privilege_db_manager APIs
48 * @param [in] list The GList allocated by privilege_db_manager APIs
50 void privilege_db_manager_list_free(GList* list);
53 * @brief Get privileges and its level information of the target profile and package type
54 * @remarks @a privilege_list must be released by you.
55 * @param [in] package_type The package type
56 * @param [out] privilege_list The privilege list
57 * @return 0 on success, otherwise a negative error value.
58 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
59 * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
60 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
61 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
62 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
64 int privilege_db_manager_get_privilege_level_info_list(privilege_manager_package_type_e package_type, GList** privilege_list);
67 * @brief Get mapped privilege list for the given api-version and privilege list.
68 * @remarks @a privilege_list must be released by using privilege_db_manager_list_free().
69 * @remarks @a mapped_privilege_list must be released by you.
70 * @param [in] api_version The api-version to get mapped privilege list
71 * @param [in] package_type The package type
72 * @param [in] privilege_list The privilege list
73 * @param [out] mapped_privilege_list The mapped privilege list
74 * @return 0 on success, otherwise a negative error value.
75 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
76 * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
77 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
78 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
79 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
81 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);
84 * @brief Get privilege display name
85 * @remarks @a privilege_display must be released by you.
86 * @param [in] package_type The package type
87 * @param [in] privilege_name The privilege name
88 * @param [in] api_version The api-version
89 * @param [out] privilege_display The privilege display name.
90 * @return 0 on success, otherwise a negative error value.
91 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
92 * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
93 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
94 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
95 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
96 * @retval #PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT No data selected by given qeury.
98 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);
101 * @brief Get privilege description
102 * @remarks @a privilege_description must be released by you.
103 * @param [in] package_type The package type
104 * @param [in] privilege_name The privilege name
105 * @param [in] api_version The api-version
106 * @param [out] privilege_description The privilege description
107 * @return 0 on success, otherwise a negative error value.
108 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
109 * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
110 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
111 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
112 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
113 * @retval #PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT No data selected by given qeury.
115 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);
118 * @brief Get privacy display.
119 * @remarks @a privacy_display must be released by you.
120 * @param [in] privacy_name The privacy name
121 * @param [out] privilege_description The privilege description
122 * @return 0 on success, otherwise a negative error value.
123 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
124 * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
125 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
126 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
127 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
128 * @retval #PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT No data selected by given qeury.
130 int privilege_db_manager_get_privacy_display(const char *privacy_name, char **privacy_display);
133 * @brief Get privilege group ID
134 * @param [in] package_type The package type
135 * @param [in] privilege_name The privilege name
136 * @param [in] api_version The api-version
137 * @param [out] privilege_group_id The ID of privilege group.
138 * @return 0 on success, otherwise a negative error value.
139 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
140 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
141 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
142 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
144 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);
147 * @brief Determine privilege according to the given type and privilege.
148 * @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.
149 * @param [in] privilege The privilege name
150 * @return 1 on true, 0 on false and -1 on error.
152 int privilege_db_manager_is(char type, const char* privilege);
155 * @brief See if the given package id is privacy whitelisted for the given privilege.
156 * @remarks @a privilege must be privacy related
157 * @param [in] pkgid The package ID
158 * @param [in] privacy_id The privacy id
159 * @return 1 on true(is whitelisted), 0 on false and negative value on error.
160 * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
161 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
162 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
163 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
165 int privilege_db_manager_is_privacy_white_list(const char* pkgid, int privacy_id);
168 * @brief See if the given package id is user-settable for the given privacy.
169 * @param [in] pkgid_name The privacy name
170 * @param [in] privacy_id The privacy ID
171 * @return 1 on true(is user-settable), 0 on false and negative value on error.
172 * @retval #PRIVILEGE_DB_MANAGER_ERR_OUT_OF_MEMORY Out of memory.
173 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
174 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
175 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
177 int privilege_db_manager_is_user_settable(const char* pkgid, int privacy_id);
180 * @brief Get all privacy list
181 * @remarks @a privacy_list must be released by using privilege_db_manager_list_free().
182 * @param [out] privacy_list The privacy list.
183 * @return 0 on success, otherwise a negative error value.
184 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
185 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
186 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
187 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
189 int privilege_db_manager_get_privacy_list(GList** privacy_list);
192 * @brief Get list of privileges included in the given privacy group.
193 * @remarks @a privilege_list must be released by using privilege_db_manager_list_free().
194 * @param [in] privacy_name The privacy name
195 * @param [out] privilege_list The privilege list.
196 * @return 0 on success, otherwise a negative error value.
197 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
198 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
199 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
200 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
202 int privilege_db_manager_get_privilege_list_by_privacy(const char* privacy_name, GList **privilege_list);
205 * @brief Get privacy name that the given privilege is included in.
206 * @param [in] privilege The privilege
207 * @param [out] privacy The privacy name
208 * @return 0 on success, otherwise a negative error value.
209 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
210 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
211 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
212 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
214 int privilege_db_manager_get_privacy_by_privilege(const char* privilege, char** privacy_name);
217 * @brief Get privilege list of the same privacy group that the given privilege is included in.
218 * @remarks @a privilege_list must be released by using privilege_db_manager_list_free().
219 * @param [in] privilege The privilege
220 * @param [out] privilege_list The privilege list of the same privacy group.
221 * @return 0 on success, otherwise a negative error value.
222 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
223 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
224 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
225 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
226 * @retval #PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT No data selected by given qeury.
228 int privilege_db_manager_get_same_privacy_grouped_privileges(const char* privilege, GList **privilege_list);
232 * @brief Get privacy ID that the given privilege is included in.
233 * @param [in] privilege The privilege
234 * @param [out] privacy_id The privacy ID
235 * @return 0 on success, otherwise a negative error value.
236 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
237 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
238 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
239 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
241 int privilege_db_manager_get_privacy_id_by_privilege(const char* privilege, int* privacy_id);
244 * @brief Get ID of the given privacy name.
245 * @param [in] privacy_name The privacy name
246 * @param [out] privacy_id The privacy ID
247 * @return 0 on success, otherwise a negative error value.
248 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
249 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
250 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
251 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
253 int privilege_db_manager_get_privacy_id(const char* privacy_name, int *privacy_id);
256 * @brief See if the given privilege is in the mdm blacklist for the given uid.
257 * @param [in] uid The uid
258 * @param [out] privilege The privilege
259 * @return 1 if true(is mdm blacklist privilege), 0 if false and otherwise a negative error value.
260 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
261 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
262 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
264 int privilege_db_manager_is_disabled_privilege(uid_t uid, const char* privilege);
267 * @brief Get blacklisted privileges according to the policy type, uid, and package type.
268 * @remarks @a privilege_list must be released by using privilege_db_manager_list_free().
269 * @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).
270 * @param [in] uid The uid
271 * @param [in] package_type The package type
272 * @param [out] privilege_list The privilege list.
273 * @return 0 on success, otherwise a negative error value.
274 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
275 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
276 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
277 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
279 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);
282 * @brief Set DPM blacklist privileges for the given uid and package type.
283 * @param [in] uid The uid
284 * @param [in] package_type The package type
285 * @param [in] privilege_list The privilege list.
286 * @return 0 on success, otherwise a negative error value.
287 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
288 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
289 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
290 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
291 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_BUSY_FAIL DB is busy.
292 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_CONSTRAINT_FAIL SQL constraint violation occured and update failed.
293 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_FULL_FAIL Write could not complete due to the disk is full.
294 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_UPDATE_FAIL DB update failed.
296 int privilege_db_manager_set_black_list(int uid, privilege_manager_package_type_e pacakge_type, GList *privilege_list);
299 * @brief Remove the given privileges from DPM blacklist of the given uid and package type.
300 * @param [in] uid The uid
301 * @param [in] package_type The package type
302 * @param [in] privilege_list The privilege list.
303 * @return 0 on success, otherwise a negative error value.
304 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
305 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
306 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
307 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
308 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_BUSY_FAIL DB is busy.
309 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_CONSTRAINT_FAIL SQL constraint violation occured and update failed.
310 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_UPDATE_FAIL DB update failed.
312 int privilege_db_manager_unset_black_list(int uid, privilege_manager_package_type_e package_type, GList *privilege_list);
315 * @brief Get the number of DPM blacklisted privileges in the give privilege list
316 * @remarks @a privilege_list must be released by you.
317 * @param [in] uid The uid
318 * @param [in] package_type The package type of the given privilege list
319 * @param [in] privilege_list The privilege list to check
320 * @return 0 if no blacklisted privileges in the given privilege list, or return the number of blacklisted privileges. And negative error value on error.
321 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful. No blacklisted privilege in the given privilege list.
322 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
323 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
324 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
326 int privilege_db_manager_check_black_list(uid_t uid, privilege_manager_package_type_e pacakge_type, GList *privilege_list);
329 * @brief Set application package's privacy privilege information
330 * @remarks Non-privacy privilege included in the privilege list will be ignored.
331 * @remarks Call it with the privilege list before mapping.
332 * @remarks @a privilege_list must be released by you.
333 * @param [in] uid The uid
334 * @param [in] pkgid The package ID
335 * @param [in] api_version The api-version of the package
336 * @param [in] privilege_list The user-settable privacy privilege list of the package
337 * @return 0 on success, otherwise a negative error value.
338 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
339 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
340 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
341 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
342 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_BUSY_FAIL DB is busy.
343 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_CONSTRAINT_FAIL SQL constraint violation occured and update failed.
344 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_FULL_FAIL Write could not complete due to the disk is full.
345 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_UPDATE_FAIL DB update failed.
347 int privilege_db_manager_set_package_privacy_privilege_info(const uid_t uid, const char* pkgid, const char* api_version, GList* privilege_list);
350 * @brief Delete all privacy privilege info of the given application package.
351 * @param [in] uid The uid
352 * @param [in] pkgid The package ID
353 * @return 0 on success, otherwise a negative error value.
354 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
355 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
356 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
357 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
358 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_BUSY_FAIL DB is busy.
359 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_CONSTRAINT_FAIL SQL constraint violation occured and update failed.
360 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_UPDATE_FAIL DB update failed.
362 int privilege_db_manager_unset_package_privilege_info(const uid_t uid, const char* pkgid);
365 * @brief See if the package's api_version says it can request privacy to the user
366 * @remarks If the package have no privacy privilege then it will return PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT
367 * @param [in] uid The uid
368 * @param [in] pkgid The package ID
369 * @param [in] privilege The privilege
370 * @param [out] is_privacy_requestable is_privacy_requestable value
371 * @return 0 on success, otherwise a negative error value.
372 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
373 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
374 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
375 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
376 * @retval #PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT No data selected by given qeury.
378 int privilege_db_manager_is_privacy_requestable(const uid_t uid, const char* pkgid, const char* privilege, privilege_manager_package_type_e pkg_type, bool* is_privacy_requestable);
381 * @brief Get all privacy package list of the user
382 * @remarks @a package_list must be released by using privilege_db_manager_list_free().
383 * @param [in] uid The uid
384 * @param [out] package_list The package list
385 * @return 0 on success, otherwise a negative error value.
386 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
387 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
388 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
389 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
390 * @retval #PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT No data selected by given qeury.
392 int privilege_db_manager_get_all_privacy_package_list(const uid_t uid, GList** package_list);
395 * @brief Get privacy list of the application package
396 * @remarks @a privacy_list must be released by using privilege_db_manager_list_free().
397 * @param [in] uid The uid
398 * @param [in] pkgid The package ID
399 * @param [out] privacy_list The privacy list
400 * @return 0 on success, otherwise a negative error value.
401 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
402 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
403 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
404 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
405 * @retval #PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT No data selected by given qeury.
407 int privilege_db_manager_get_privacy_list_by_pkgid(const uid_t uid, const char* pkgid, GList** privacy_list);
410 * @brief Get package list with the given privacy
411 * @remarks @a package_list must be released by using privilege_db_manager_list_free().
412 * @param [in] uid The uid
413 * @param [in] privacy The privacy name
414 * @param [out] package_list The package list
415 * @return 0 on success, otherwise a negative error value.
416 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
417 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
418 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
419 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
420 * @retval #PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT No data selected by given qeury.
422 int privilege_db_manager_get_package_list_by_privacy(const uid_t uid, const char* privacy, GList** package_list);
425 * @brief Get package's privilege list related to the given privacy
426 * @remarks @a privilege_list must be released by using privilege_db_manager_list_free().
427 * @param [in] uid The uid
428 * @param [in] pkgid The package id
429 * @param [in] privacy The privacy name
430 * @param [out] privilege_list The privilege list
431 * @return 0 on success, otherwise a negative error value.
432 * @retval #PRIVILEGE_DB_MANAGER_ERR_NONE Successful.
433 * @retval #PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY Failed to prepare sql query.
434 * @retval #PRIVILEGE_DB_MANAGER_ERR_DB_NOENTRY DB not exist.
435 * @retval #PRIVILEGE_DB_MANAGER_ERR_CONNECTION_FAIL DB exist but failed to open DB.
436 * @retval #PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT No data selected by given qeury.
438 int privilege_db_manager_get_privilege_list_by_pkgid_and_privacy(const uid_t uid, const char* pkgid, const char* privacy, GList** privilege_list);
441 * @brief Get privilege privacy info list filtered by privacy
442 * @remarks @a privilage_privacy_info_list must released by using free_privilege_privacy_info_list().
443 * @remarks If you want to free an element of @a privilege_privacy_info_list then use free_privilege_privacy_info().
444 * @param [in] privilege_list The privilege list to filter privacy
445 * @param [in] privacy_name The privacy name to filter privilege list. If the privacy name is NULL then just filter privacy privileges.
446 * @param [out] privilege_privacy_info_list The filtered privileges and their privacy info
448 int privilege_db_manager_get_privacy_filtered_privilege_info_list(GList *privilege_list, const char* privacy_name, GList **privilege_privacy_info_list);
454 #endif /* __PRIVILEGE_DB_MANAGER_H */