Modify display name APIs
authorHyunwoo Kim <hwlove.kim@samsung.com>
Mon, 6 May 2013 07:04:44 +0000 (16:04 +0900)
committerHyunwoo Kim <hwlove.kim@samsung.com>
Mon, 6 May 2013 07:04:51 +0000 (16:04 +0900)
Change-Id: I27ce768e4729be98c6938da353bbfb1fd309e5bc
Signed-off-by: Hyunwoo Kim <hwlove.kim@samsung.com>
client/inc/PrivacyManagerClient.h
client/inc/privacy_checker_client.h
client/src/PrivacyChecker.cpp
client/src/PrivacyManagerClient.cpp
client/src/privacy_checker_client.cpp
client/src/privacy_info_client.cpp
common/inc/PrivacyIdInfo.h
common/src/PrivacyIdInfo.cpp
packaging/privacy-manager.spec
res/opt/dbspace/.privacylist.db

index 0c7deb5..960a96f 100644 (file)
@@ -48,15 +48,19 @@ public:
 \r
        int setPrivacySetting(const std::string pkgId, const std::string privacyId, bool isEnabled);\r
        \r
-       int getPrivacyAppPackages(std::list < std::string >& list);\r
+       int getPrivacyAppPackages(std::list < std::string >& list) const;\r
 \r
-       int     getAppPackagePrivacyInfo(const std::string pkgId, std::list < std::pair <std::string, bool > > & list);\r
+       int     getAppPackagePrivacyInfo(const std::string pkgId, std::list < std::pair <std::string, bool > > & list) const;\r
 \r
-       int isUserPrompted(const std::string pkgId, bool& isPrompted);\r
+       int isUserPrompted(const std::string pkgId, bool& isPrompted) const;\r
 \r
        int setUserPrompted(const std::string pkgId, bool prompted);\r
 \r
-       int getAppPackagesbyPrivacyId(std::string privacyId, std::list < std::pair < std::string, bool > >& list);\r
+       int getAppPackagesbyPrivacyId(const std::string privacyId, std::list < std::pair < std::string, bool > >& list) const;\r
+\r
+       int getPrivaycDisplayName(const std::string privacyId, std::string& displayName) const;\r
+\r
+       int getPrivaycDescription(const std::string privacyId, std::string& description) const;\r
 };\r
 \r
 #endif // _PRIVACY_MANAGER_H_
\ No newline at end of file
index 318b738..e1902f7 100644 (file)
@@ -26,11 +26,9 @@ extern "C" {
 EXTERN_API int privacy_checker_initialize(const char *package_id);\r
 EXTERN_API int privacy_checker_check_privacy(const char *privacy_id);\r
 EXTERN_API int privacy_checker_check_by_privilege(const char *privilege_id);\r
-EXTERN_API int privacy_checker_check_by_device_cap(const char *device_cap);\r
 EXTERN_API int privacy_checker_finalize(void);\r
 \r
 EXTERN_API int privacy_checker_check_package_by_privilege(const char* package_id, const char *privilege_id);\r
-EXTERN_API int privacy_checker_check_package_by_device_cap(const char* package_id, const char *device_cap);\r
 \r
 EXTERN_API int privacy_checker_finalize(void);\r
 \r
index c90267b..897c293 100644 (file)
@@ -318,40 +318,6 @@ PrivacyChecker::checkWithPrivilege(const std::string privilege)
 }\r
 \r
 int\r
-PrivacyChecker::checkWithDeviceCap(const std::string pkgId, const std::string deviceCap)\r
-{\r
-       LOGI("enter");\r
-\r
-       std::string privacyId;\r
-       int res = PrivacyIdInfo::getPrivacyIdFromDeviceCap(deviceCap, privacyId);\r
-       if (res == PRIV_MGR_ERROR_NO_DATA)\r
-               return PRIV_MGR_ERROR_SUCCESS;\r
-\r
-       TryReturn( res == PRIV_MGR_ERROR_SUCCESS, res, , "getPrivacyIdFromPrivilege : %d", res);\r
-\r
-       LOGI("leave");\r
-\r
-       return check(pkgId ,privacyId);\r
-}\r
-\r
-int\r
-PrivacyChecker::checkWithDeviceCap(const std::string deviceCap)\r
-{\r
-       LOGI("enter");\r
-\r
-       std::string privacyId;\r
-       int res = PrivacyIdInfo::getPrivacyIdFromDeviceCap(deviceCap, privacyId);\r
-       if (res == PRIV_MGR_ERROR_NO_DATA)\r
-               return PRIV_MGR_ERROR_SUCCESS;\r
-\r
-       TryReturn( res == PRIV_MGR_ERROR_SUCCESS, res, , "getPrivacyIdFromPrivilege : %d", res);\r
-\r
-       LOGI("leave");\r
-\r
-       return check(privacyId);\r
-}\r
-\r
-int\r
 PrivacyChecker::finalize(void)\r
 {\r
        std::lock_guard <std::mutex> guard (m_cacheMutex);\r
index 50d9bc6..f070dfe 100644 (file)
@@ -109,7 +109,7 @@ PrivacyManagerClient::setPrivacySetting(const std::string pkgId, const std::stri
 }\r
        \r
 int\r
-PrivacyManagerClient::getPrivacyAppPackages(std::list < std::string >& list)\r
+PrivacyManagerClient::getPrivacyAppPackages(std::list < std::string >& list) const\r
 {\r
 #ifdef __READ_DB_IPC__\r
 \r
@@ -132,7 +132,7 @@ PrivacyManagerClient::getPrivacyAppPackages(std::list < std::string >& list)
 }\r
 \r
 int\r
-PrivacyManagerClient::getAppPackagePrivacyInfo(const std::string pkgId, std::list < std::pair <std::string, bool > > & list)\r
+PrivacyManagerClient::getAppPackagePrivacyInfo(const std::string pkgId, std::list < std::pair <std::string, bool > > & list) const\r
 {\r
 #ifdef __READ_DB_IPC__\r
        std::unique_ptr <SocketClient> pSocketClient (new SocketClient(INTERFACE_NAME));\r
@@ -152,7 +152,7 @@ PrivacyManagerClient::getAppPackagePrivacyInfo(const std::string pkgId, std::lis
 }\r
 \r
 int\r
-PrivacyManagerClient::isUserPrompted(const std::string pkgId, bool& isPrompted)\r
+PrivacyManagerClient::isUserPrompted(const std::string pkgId, bool& isPrompted) const\r
 {\r
 #ifdef __READ_DB_IPC__\r
        LOGI("enter");\r
@@ -194,8 +194,20 @@ PrivacyManagerClient::setUserPrompted(const std::string pkgId, bool prompted)
        return result;\r
 }\r
 \r
-int \r
-PrivacyManagerClient::getAppPackagesbyPrivacyId(std::string privacyId, std::list < std::pair < std::string, bool > >& list)\r
+int\r
+PrivacyManagerClient::getAppPackagesbyPrivacyId(const std::string privacyId, std::list < std::pair < std::string, bool > >& list) const\r
 {\r
        return PrivacyDb::getInstance()->getAppPackagesbyPrivacyId(privacyId, list);\r
-}
\ No newline at end of file
+}
+\r
+int\r
+PrivacyManagerClient::getPrivaycDisplayName(const std::string privacyId, std::string& displayName) const\r
+{\r
+       return PrivacyIdInfo::getPrivaycDisplayName(privacyId, displayName);\r
+}\r
+\r
+int\r
+PrivacyManagerClient::getPrivaycDescription(const std::string privacyId, std::string& description) const\r
+{\r
+       return PrivacyIdInfo::getPrivaycDescription(privacyId, description);\r
+}\r
index 55159ff..011de07 100644 (file)
@@ -41,11 +41,6 @@ int privacy_checker_check_by_privilege(const char *privilege_id)
        return PrivacyChecker::checkWithPrivilege(privilege_id);\r
 }\r
 \r
-int privacy_checker_check_by_device_cap(const char *device_cap)\r
-{\r
-       return PrivacyChecker::checkWithPrivilege(device_cap);\r
-}\r
-\r
 int privacy_checker_finalize(void)\r
 {\r
        return PrivacyChecker::finalize();\r
@@ -54,9 +49,4 @@ int privacy_checker_finalize(void)
 int privacy_checker_check_package_by_privilege(const char* package_id, const char *privilege_id)\r
 {\r
        return PrivacyChecker::checkWithPrivilege(package_id,privilege_id);\r
-}\r
-\r
-int privacy_checker_check_package_by_device_cap(const char* package_id, const char *device_cap)\r
-{\r
-       return PrivacyChecker::checkWithDeviceCap(package_id, device_cap);\r
 }
\ No newline at end of file
index 4b1141a..ac379e3 100644 (file)
@@ -46,14 +46,13 @@ int privacy_info_client_get_privacy_id(privacy_info_client_s* privacy_info, char
 \r
 int privacy_info_client_get_privacy_display_name(privacy_info_client_s* privacy_info, char **name)\r
 {\r
-       // TODO: Modify to use STMS\r
-       std::string temp = std::string(privacy_info->privacy_id);\r
-       int startIndex = temp.find_last_of("/");\r
-       std::string displayName = temp.substr(startIndex + 1, temp.size());\r
+       std::string displayName;\r
+       int res = PrivacyManagerClient::getInstance()->getPrivaycDisplayName(std::string(privacy_info->privacy_id), displayName);\r
+       if (res != PRIV_MGR_ERROR_SUCCESS)\r
+               return res;\r
 \r
        int size = strlen(displayName.c_str());\r
        *name = (char*) calloc(1, size + 1);\r
-\r
        memcpy (*name, displayName.c_str(), size);\r
 \r
        return PRIV_MGR_ERROR_SUCCESS;\r
@@ -61,12 +60,14 @@ int privacy_info_client_get_privacy_display_name(privacy_info_client_s* privacy_
 \r
 int privacy_info_client_get_privacy_description(privacy_info_client_s* privacy_info, char **description)\r
 {\r
-       // TODO: Modify to use STMS\r
-       char tempDesc[] = "Undefined";\r
-       int size = strlen(tempDesc);\r
-       *description = (char*) calloc(1, size + 1);\r
+       std::string desc;\r
+       int res = PrivacyManagerClient::getInstance()->getPrivaycDisplayName(std::string(privacy_info->privacy_id), desc);\r
+       if (res != PRIV_MGR_ERROR_SUCCESS)\r
+               return res;\r
 \r
-       memcpy (*description, tempDesc, size);\r
+       int size = strlen(desc.c_str());\r
+       *description = (char*) calloc(1, size + 1);\r
+       memcpy (*description, desc.c_str(), size);\r
 \r
        return PRIV_MGR_ERROR_SUCCESS;\r
 }\r
index 0c58248..0d82d11 100644 (file)
@@ -25,15 +25,16 @@ class PrivacyIdInfo
 {\r
 private:\r
        static std::map <std::string, std::string> m_privilegeToPrivacyMap;\r
-       static std::map <std::string, std::string> m_deviceCapToPrivacyMap;\r
        static bool m_isInitialized;\r
 \r
 public:\r
        static int initialize(void);\r
        static int getPrivacyIdFromPrivilege(const std::string privilege, std::string& privacyId);\r
-       static int getPrivacyIdFromDeviceCap(const std::string deviceCap, std::string& privacyId);\r
        static int getPrivacyIdListFromPrivilegeList(const std::list < std::string> privilegeList, std::list < std::string> & privacyIdList);\r
        static int getAllPrivacyId(std::list < std::string >& privacyIdList);\r
+\r
+       static int getPrivaycDisplayName(const std::string privacyId, std::string& displayName);\r
+       static int getPrivaycDescription(const std::string privacyId, std::string& description);\r
 };\r
 \r
 #endif //_PRIVACY_ID_INFO_H_
\ No newline at end of file
index 7b18e1a..1168a87 100644 (file)
 #include <dlog.h>\r
 #include <set>\r
 #include <Utils.h>\r
-\r
+#include <libintl.h>\r
 \r
 std::map <std::string, std::string> PrivacyIdInfo::m_privilegeToPrivacyMap;\r
-std::map <std::string, std::string> PrivacyIdInfo::m_deviceCapToPrivacyMap;\r
 bool PrivacyIdInfo:: m_isInitialized;\r
 \r
-\r
-struct PrivacyPrivilegePair\r
-{\r
-       char privilege[128];\r
-       char privacy[128];\r
-};\r
-\r
-struct PrivacyDeviceCapPair\r
-{\r
-       char DeviceCap[128];\r
-       char privacy[128];\r
-};\r
-/*\r
-static struct PrivacyPrivilegePair DeviceCapToPrivacyTable[] =\r
-{\r
-       {"bluetooth.admin",                     "http://tizen.org/privacy/bluetooth"},\r
-       {"bluetooth.gap",                               "http://tizen.org/privacy/bluetooth"},\r
-       {"bluetooth.spp",                               "http://tizen.org/privacy/bluetooth"},\r
-       {"bluetoothmanager",                    "http://tizen.org/privacy/bluetooth"},\r
-\r
-       {"calendar.read",                               "http://tizen.org/privacy/calender"},\r
-       {"calendar.write",                              "http://tizen.org/privacy/calender"},\r
-\r
-       {"contact.read",                                "http://tizen.org/privacy/contact"},\r
-       {"contact.write",                               "http://tizen.org/privacy/contact"},\r
-\r
-       {"messaging.read",                              "http://tizen.org/privacy/messaging"},\r
-       {"messaging.write",                     "http://tizen.org/privacy/messaging"},\r
-       {"messaging.send",                              "http://tizen.org/privacy/messaging"},\r
-\r
-       {"nfc.admin",                                   "http://tizen.org/privacy/nfc"},\r
-       {"nfcmanager.cardemulation",    "http://tizen.org/privacy/nfc"},\r
-       {"nfc.common",                                  "http://tizen.org/privacy/nfc"},\r
-       {"nfc.p2p",                                     "http://tizen.org/privacy/nfc"},\r
-       {"nfc.tag",                                     "http://tizen.org/privacy/nfc"},\r
-\r
-       {"XMLHttpRequest",                              "http://tizen.org/privacy/internet"},\r
-       {"externalNetworkAccess",               "http://tizen.org/privacy/internet"},\r
-\r
-       {"\0", "\0"}\r
-};\r
-\r
-static struct PrivacyPrivilegePair PrivilegeToPrivacyTable[] =\r
-{\r
-       {"http://tizen.org/privilege/bluetooth.admin",                  "http://tizen.org/privacy/bluetooth"},\r
-       {"http://tizen.org/privilege/bluetooth.gap",                    "http://tizen.org/privacy/bluetooth"},\r
-       {"http://tizen.org/privilege/bluetooth.health",                 "http://tizen.org/privacy/bluetooth"},\r
-       {"http://tizen.org/privilege/bluetooth.opp",                    "http://tizen.org/privacy/bluetooth"},\r
-       {"http://tizen.org/privilege/bluetooth.spp",                    "http://tizen.org/privacy/bluetooth"},\r
-       {"http://tizen.org/privilege/bluetoothmanager",                 "http://tizen.org/privacy/bluetooth"},\r
-\r
-       {"http://tizen.org/privilege/calendar.read",                    "http://tizen.org/privacy/calender"},\r
-       {"http://tizen.org/privilege/calendar.write",                   "http://tizen.org/privacy/calender"},\r
-\r
-       {"http://tizen.org/privilege/contact.read",                     "http://tizen.org/privacy/contact"},\r
-       {"http://tizen.org/privilege/contact.write",                    "http://tizen.org/privacy/contact"},\r
-\r
-       {"http://tizen.org/privilege/contextmanager.privacy",   "http://tizen.org/privacy/context"},\r
-       {"http://tizen.org/privilege/contextmanager.upload",    "http://tizen.org/privacy/context"},\r
-\r
-       {"http://tizen.org/privilege/location",                                 "http://tizen.org/privacy/location"},\r
-\r
-       {"http://tizen.org/privilege/messaging.read",                   "http://tizen.org/privacy/messaging"},\r
-       {"http://tizen.org/privilege/messaging.write",                  "http://tizen.org/privacy/messaging"},\r
-\r
-       {"http://tizen.org/privilege/nfc.admin",                                "http://tizen.org/privacy/nfc"},\r
-       {"http://tizen.org/privilege/nfcmanager.cardemulation", "http://tizen.org/privacy/nfc"},\r
-       {"http://tizen.org/privilege/nfc.common",                               "http://tizen.org/privacy/nfc"},\r
-       {"http://tizen.org/privilege/nfc.p2p",                                  "http://tizen.org/privacy/nfc"},\r
-       {"http://tizen.org/privilege/nfc.tag",                                  "http://tizen.org/privacy/nfc"},\r
-\r
-       {"http://tizen.org/privilege/http",                                     "http://tizen.org/privacy/internet"},\r
-       {"http://tizen.org/privilege/socket",                                   "http://tizen.org/privacy/internet"},\r
-       {"http://tizen.org/privilege/web.service",                              "http://tizen.org/privacy/internet"},\r
-\r
-       {"\0", "\0"}\r
-};\r
-*/\r
-\r
 int\r
 PrivacyIdInfo::initialize(void)\r
 {\r
        static const std::string sqlPrivilege("SELECT PRIVILEGE_ID, PRIVACY_ID from PrivilegeToPrivacyTable");\r
-       static const std::string sqlDeviceCap("SELECT DEVICE_CAP, PRIVACY_ID from DeviceCapToPrivacyTable");\r
 \r
        LOGI("enter");\r
        \r
@@ -124,13 +43,6 @@ PrivacyIdInfo::initialize(void)
                m_privilegeToPrivacyMap.insert(std::map < std::string, std::string >::value_type(std::string(privilegeId), std::string(privacyId)));\r
        }\r
 \r
-       prepareDb(pDbHandler, sqlDeviceCap.c_str(), pStmtDeviceCap);\r
-       while ( (res = sqlite3_step(pStmtDeviceCap.get())) == SQLITE_ROW )\r
-       {\r
-               const char* DeviceCap =  reinterpret_cast < const char* > (sqlite3_column_text(pStmtDeviceCap.get(), 0));\r
-               const char* privacyId =  reinterpret_cast < const char* > (sqlite3_column_text(pStmtDeviceCap.get(), 1));\r
-               m_deviceCapToPrivacyMap.insert(std::map < std::string, std::string >::value_type(std::string(DeviceCap), std::string(privacyId)));\r
-       }\r
        m_isInitialized = true;\r
 \r
        return PRIV_MGR_ERROR_SUCCESS;\r
@@ -150,20 +62,11 @@ PrivacyIdInfo::getPrivacyIdFromPrivilege(const std::string privilege, std::strin
 }\r
 \r
 int\r
-PrivacyIdInfo::getPrivacyIdFromDeviceCap(const std::string deviceCap, std::string& privacyId)\r
+PrivacyIdInfo::getPrivacyIdListFromPrivilegeList(const std::list < std::string> privilegeList, std::list < std::string> & privacyIdList)\r
 {\r
        if (!m_isInitialized)\r
                initialize();\r
-       std::map < std::string, std::string >::iterator iter = m_deviceCapToPrivacyMap.find(deviceCap);\r
-       if (iter == m_deviceCapToPrivacyMap.end())\r
-               return PRIV_MGR_ERROR_NO_DATA;\r
-       privacyId =  iter->second;\r
-       return PRIV_MGR_ERROR_SUCCESS;\r
-}\r
 \r
-int\r
-PrivacyIdInfo::getPrivacyIdListFromPrivilegeList(const std::list < std::string> privilegeList, std::list < std::string> & privacyIdList)\r
-{\r
        privacyIdList.clear();\r
 \r
        std::set <std::string> privacyIdSet;\r
@@ -188,6 +91,9 @@ int
 PrivacyIdInfo::getAllPrivacyId(std::list < std::string >& privacyIdList)\r
 {\r
        static const std::string sql("SELECT PRIVACY_ID from PrivacyInfo");\r
+\r
+       if (!m_isInitialized)\r
+               initialize();   \r
        \r
        openDb(PRIVACY_INFO_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READONLY);\r
        prepareDb(pDbHandler, sql.c_str(), pStmt);\r
@@ -201,4 +107,88 @@ PrivacyIdInfo::getAllPrivacyId(std::list < std::string >& privacyIdList)
        }\r
 \r
        return PRIV_MGR_ERROR_SUCCESS;\r
+}\r
+\r
+int\r
+PrivacyIdInfo::getPrivaycDisplayName(const std::string privacyId, std::string& displayName)\r
+{\r
+       LOGI("enter");\r
+\r
+       if (!m_isInitialized)\r
+               initialize();\r
+       //bindtextdomain("privacy-manager", "/usr/share/locale");\r
+       //setlocale(LC_ALL, "");\r
+\r
+       std::string sql = std::string("SELECT STR_MODULE_ID, STR_NAME_ID from PrivacyInfo where PRIVACY_ID=?");\r
+\r
+       openDb(PRIVACY_INFO_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READONLY);\r
+       prepareDb(pDbHandler, sql.c_str(), pStmt);\r
+\r
+       LOGD("privacy id : %s", privacyId.c_str());\r
+       int res = sqlite3_bind_text(pStmt.get(), 1, privacyId.c_str(), -1, SQLITE_TRANSIENT);\r
+       TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res);\r
+\r
+       if ( sqlite3_step(pStmt.get()) == SQLITE_ROW )\r
+       {\r
+               const char* pModuleId = reinterpret_cast < const char* > (sqlite3_column_text(pStmt.get(), 0));\r
+               const char* pNameId = reinterpret_cast < const char* > (sqlite3_column_text(pStmt.get(), 1));\r
+\r
+               LOGD("result : [%s] [%s]", pModuleId, pNameId);\r
+\r
+               if (pNameId == NULL)\r
+                       displayName = privacyId;\r
+               else\r
+                       displayName = std::string(dgettext("privacy-manager", pNameId));\r
+\r
+               LOGD("name : %s", displayName.c_str());\r
+       }\r
+       else\r
+       {\r
+               LOGI("Cannot find privacy string %s ", privacyId.c_str());\r
+\r
+               // Todo : return no_data.\r
+               displayName = privacyId;\r
+               return PRIV_MGR_ERROR_SUCCESS;\r
+       }\r
+\r
+       LOGI("leave %d", res);\r
+\r
+       return PRIV_MGR_ERROR_SUCCESS;\r
+}\r
+\r
+int\r
+PrivacyIdInfo::getPrivaycDescription(const std::string privacyId, std::string& displayName)\r
+{\r
+       LOGI("enter");\r
+\r
+       if (!m_isInitialized)\r
+               initialize();\r
+\r
+       std::string sql = std::string("SELECT STR_MODULE_ID, STR_NAME_ID from PrivacyInfo where PRIVACY_ID=?");\r
+\r
+       openDb(PRIVACY_INFO_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READONLY);\r
+       prepareDb(pDbHandler, sql.c_str(), pStmt);\r
+\r
+       LOGD("privacy id : %s", privacyId.c_str());\r
+       int res = sqlite3_bind_text(pStmt.get(), 1, privacyId.c_str(), -1, SQLITE_TRANSIENT);\r
+       TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res);\r
+\r
+       if ( sqlite3_step(pStmt.get()) == SQLITE_ROW )\r
+       {\r
+               const char* pModuleId = reinterpret_cast < const char* > (sqlite3_column_text(pStmt.get(), 0));\r
+               const char* pNameId = reinterpret_cast < const char* > (sqlite3_column_text(pStmt.get(), 0));\r
+\r
+               LOGD("result : %s %s", pModuleId, pNameId);\r
+\r
+               displayName = std::string(dgettext(pModuleId, pNameId));\r
+       }\r
+       else\r
+       {\r
+               LOGI("Cannot find privacy string %s ", privacyId.c_str());\r
+               return PRIV_MGR_ERROR_NO_DATA;\r
+       }\r
+\r
+       LOGI("leave %d", res);\r
+\r
+       return PRIV_MGR_ERROR_SUCCESS;\r
 }
\ No newline at end of file
index 829bee0..d0431ff 100755 (executable)
@@ -1,7 +1,7 @@
 Name:    privacy-manager-server
 Summary: Privacy Management
 Version: 0.0.3
-Release: 0
+Release: 1
 Group:   System/Libraries
 License: SAMSUNG
 Source0: %{name}-%{version}.tar.gz
index 1cb4dfd..e6bfd7c 100644 (file)
Binary files a/res/opt/dbspace/.privacylist.db and b/res/opt/dbspace/.privacylist.db differ