Do not return privilege type privacy for apps with api-version lower than 4.0 17/139717/5 accepted/tizen/unified/20170811.133029 submit/tizen/20170809.012726
authorYunjin Lee <yunjin-.lee@samsung.com>
Thu, 20 Jul 2017 06:56:26 +0000 (15:56 +0900)
committerKim Kidong <kd0228.kim@samsung.com>
Thu, 3 Aug 2017 02:01:02 +0000 (02:01 +0000)
- Privacy request API is available since Tizen 4.0
  so apps with lower api-version can not request privacy at runtime.
  Therefore modify privilege_info_get_privilege_type() not to return
  PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY for apps
  with api-version lower than 4.0.

Change-Id: I1660fa25ce26a08b1537fda9387e8568eec56865
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
capi/src/privilege_info.c

index 521f0bd..30774a6 100755 (executable)
@@ -535,7 +535,16 @@ int privilege_info_get_privilege_type(uid_t uid, const char* pkgid, const char*
                        *type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL;
                        ret = PRVMGR_ERR_NONE;
                } else if (ret == 0) {
-                       *type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY;
+                       bool is_requestable = false;
+                       ret = privilege_db_manager_is_privacy_requestable(uid, pkgid, &is_requestable);
+                       if (ret != PRIVILEGE_DB_MANAGER_ERR_NONE && ret != PRIVILEGE_DB_MANAGER_ERR_NO_EXIST_RESULT) {
+                               LOGE("privilege_db_manager_is_privacy_requestable failed");
+                               return PRVMGR_ERR_INTERNAL_ERROR;
+                       }
+                       if (is_requestable)
+                               *type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_PRIVACY;
+                       else
+                               *type = PRIVILEGE_MANAGER_PRIVILEGE_TYPE_NORMAL;
                        ret = PRVMGR_ERR_NONE;
                } else {
                        LOGE("privilege_db_manager_is_privacy_whitelist failed");