#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
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
}\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
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
}\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