Adding multi user capability 96/16596/1
authorJosé Bollo <jose.bollo@open.eurogiciel.org>
Fri, 14 Feb 2014 15:53:25 +0000 (16:53 +0100)
committerJosé Bollo <jose.bollo@open.eurogiciel.org>
Wed, 19 Feb 2014 14:08:38 +0000 (15:08 +0100)
Bug-Tizen: PTREL-264

Change-Id: I6c5aeb64471d579b2a0d317fb8a01a3114aed7b4
Signed-off-by: José Bollo <jose.bollo@open.eurogiciel.org>
client/CMakeLists.txt
client/src/PrivacyChecker.cpp
common/inc/PrivacyManagerTypes.h
common/src/PrivacyDb.cpp
common/src/PrivacyIdInfo.cpp
packaging/privacy-manager.spec
res/usr/bin/privacy_manager_create_clean_db.sh
server/CMakeLists.txt

index 6930aeb7c65748bf3ee5c753b5e3e70e5ac4e9a0..4a6f526375326d1b0a2145763b5e34086f6eb1e6 100644 (file)
@@ -8,7 +8,7 @@ SET(LIBDIR ${LIB_INSTALL_DIR})
 SET(INCLUDEDIR ${INCLUDE_INSTALL_DIR})
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(privacy-manager-client REQUIRED dlog sqlite3 dbus-1 dbus-glib-1 db-util pkgmgr-info)
+pkg_check_modules(privacy-manager-client REQUIRED dlog sqlite3 dbus-1 dbus-glib-1 db-util pkgmgr-info libtzplatform-config)
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
index dac7b160ef2268f9c0925aaf3962a3c2d55ec00f..c856f85c325a3b6b82cb48219732156965d4f7c1 100644 (file)
@@ -319,7 +319,7 @@ PrivacyChecker::updateCache(const std::string pkgId, std::string privacyId, std:
 {
        static const std::string PrivacyQuery = "SELECT IS_ENABLED from PrivacyInfo where PKG_ID=? and PRIVACY_ID=?";
        
-       openDb(PRIVACY_DB_PATH.c_str(), pDbH, SQLITE_OPEN_READONLY);
+       openDb(PRIVACY_DB_PATH, pDbH, SQLITE_OPEN_READONLY);
        prepareDb(pDbH, PrivacyQuery.c_str(), pPrivacyStmt);
        int res = sqlite3_bind_text(pPrivacyStmt.get(), 1, pkgId.c_str(),  -1, SQLITE_TRANSIENT);
        TryReturn( res == 0, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res);
@@ -346,7 +346,7 @@ PrivacyChecker::updateCache(std::string pkgId, std::map < std::string, bool >& p
 
        pkgCacheMap.clear();
        
-       openDb(PRIVACY_DB_PATH.c_str(), pDbH, SQLITE_OPEN_READONLY);
+       openDb(PRIVACY_DB_PATH, pDbH, SQLITE_OPEN_READONLY);
        prepareDb(pDbH, PrivacyQuery.c_str(), pPrivacyStmt);
        int res = sqlite3_bind_text(pPrivacyStmt.get(), 1, pkgId.c_str(), -1, SQLITE_TRANSIENT);
        TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res);
index becb451879366b37f20502439cad2b9d06309b04..0e994d11df9858e9fae6e132d571f6a678aab6dc 100644 (file)
 
 #include <string>
 #include <privacy_manager_client_types.h>
+#include <tzplatform_config.h>
 
-static const std::string PRIVACY_DB_PATH("/opt/dbspace/.privacy.db");
-static const std::string PRIVACY_INFO_DB_PATH("/opt/dbspace/.privacylist.db");
+#define PRIVACY_DB_PATH         tzplatform_mkpath(TZ_SYS_DB,".privacy.db")
+#define PRIVACY_INFO_DB_PATH    tzplatform_mkpath(TZ_SYS_DB,".privacylist.db")
 static const std::string SERVER_ADDRESS ("/tmp/privacy_manager_server");
 static const std::string DBUS_PATH("/privacy_manager/dbus_notification");
 static const std::string DBUS_SIGNAL_INTERFACE("org.tizen.privacy_manager.signal");
index acd91a750a951d1aae2bb6ee4380527d8b3e51d2..f577edd5842e058c43da94219e222b62b9ffcfef 100644 (file)
@@ -71,7 +71,7 @@ PrivacyDb::setPrivacySetting(const std::string pkgId, const std::string privacyI
 {
        static const std::string query = std::string("UPDATE PrivacyInfo set IS_ENABLED =? where PKG_ID=? and PRIVACY_ID=?");
 
-       openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);
+       openDb(PRIVACY_DB_PATH, pDbHandler, SQLITE_OPEN_READWRITE);
        prepareDb(pDbHandler, query.c_str(), pStmt);
 
        int res = sqlite3_bind_int(pStmt.get(), 1, enabled);
@@ -94,7 +94,7 @@ PrivacyDb::getPrivacyAppPackages(std::list <std::string>& list) const
 {
        std::string query = "SELECT PKG_ID from PackageInfo";
 
-       openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READONLY);
+       openDb(PRIVACY_DB_PATH, pDbHandler, SQLITE_OPEN_READONLY);
        prepareDb(pDbHandler, query.c_str(), pStmt);
 
        while ( sqlite3_step(pStmt.get()) == SQLITE_ROW )
@@ -120,7 +120,7 @@ PrivacyDb::getAppPackagePrivacyInfo(const std::string pkgId, std::list < std::pa
 {
        static const std::string query = "SELECT PRIVACY_ID, IS_ENABLED from PrivacyInfo where PKG_ID=?";
 
-       openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READONLY);
+       openDb(PRIVACY_DB_PATH, pDbHandler, SQLITE_OPEN_READONLY);
        prepareDb(pDbHandler, query.c_str(), pStmt);
 
        int res = sqlite3_bind_text(pStmt.get(), 1, pkgId.c_str(), -1, SQLITE_TRANSIENT);
@@ -146,7 +146,7 @@ PrivacyDb::addAppPackagePrivacyInfo(const std::string pkgId, const std::list < s
        static const std::string pkgInfoQuery("INSERT INTO PackageInfo(PKG_ID, IS_SET) VALUES(?, ?)");
        static const std::string privacyQuery("INSERT INTO PrivacyInfo(PKG_ID, PRIVACY_ID, IS_ENABLED) VALUES(?, ?, ?)");
        
-       openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);
+       openDb(PRIVACY_DB_PATH, pDbHandler, SQLITE_OPEN_READWRITE);
        prepareDb(pDbHandler, pkgInfoQuery.c_str(), pPkgInfoStmt);
 
        int res = sqlite3_bind_text(pPkgInfoStmt.get(), 1, pkgId.c_str(), -1, SQLITE_TRANSIENT);
@@ -190,7 +190,7 @@ PrivacyDb::removeAppPackagePrivacyInfo(const std::string pkgId)
 
        int res;
 
-       openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);
+       openDb(PRIVACY_DB_PATH, pDbHandler, SQLITE_OPEN_READWRITE);
        prepareDb(pDbHandler, pkgInfoQuery.c_str(), pPkgInfoStmt);
 
        res = sqlite3_bind_text(pPkgInfoStmt.get(), 1, pkgId.c_str(), -1, SQLITE_TRANSIENT);
@@ -223,7 +223,7 @@ PrivacyDb::isUserPrompted(const std::string pkgId, bool& isPrompted) const
                return 0;
        }
 
-       openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READONLY);
+       openDb(PRIVACY_DB_PATH, pDbHandler, SQLITE_OPEN_READONLY);
        prepareDb(pDbHandler, query.c_str(), pStmt);
 
        int res = sqlite3_bind_text(pStmt.get(), 1, pkgId.c_str(), -1, SQLITE_TRANSIENT);
@@ -251,7 +251,7 @@ PrivacyDb::setUserPrompted(const std::string pkgId, bool prompted)
 
        int res;
 
-       openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);
+       openDb(PRIVACY_DB_PATH, pDbHandler, SQLITE_OPEN_READWRITE);
        prepareDb(pDbHandler, query.c_str(), pStmt);
 
        res = sqlite3_bind_int(pStmt.get(), 1, prompted? 1 : 0);
@@ -271,7 +271,7 @@ PrivacyDb::getAppPackagesbyPrivacyId(std::string privacyId, std::list < std::pai
 {
        std::string sql = std::string("SELECT PKG_ID, IS_ENABLED from PrivacyInfo where PRIVACY_ID=?");
 
-       openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);
+       openDb(PRIVACY_DB_PATH, pDbHandler, SQLITE_OPEN_READWRITE);
        prepareDb(pDbHandler, sql.c_str(), pStmt);
 
        SECURE_LOGD("privacy id : %s", privacyId.c_str());
index 5102c53dab86488b7e008ef977e24b9b074646e2..ba651d899c55d881cb278cd4a0bf423a139865b4 100644 (file)
@@ -32,7 +32,7 @@ PrivacyIdInfo::initialize(void)
        static const std::string sqlPrivilege("SELECT PRIVILEGE_ID, PRIVACY_ID from PrivilegeToPrivacyTable");
        static const std::string sqlPrivacyInfo("SELECT FEATURE FROM PrivacyInfo where PRIVACY_ID=?");
 
-       openDb(PRIVACY_INFO_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READONLY);
+       openDb(PRIVACY_INFO_DB_PATH, pDbHandler, SQLITE_OPEN_READONLY);
        prepareDb(pDbHandler, sqlPrivilege.c_str(), pStmtPrivilege);
 
        int res;
@@ -154,7 +154,7 @@ PrivacyIdInfo::getAllPrivacyId(std::list< std::string >& privacyIdList)
                initialize();
        }
 
-       openDb(PRIVACY_INFO_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READONLY);
+       openDb(PRIVACY_INFO_DB_PATH, pDbHandler, SQLITE_OPEN_READONLY);
        prepareDb(pDbHandler, sql.c_str(), pStmt);
 
        int res;
@@ -192,7 +192,7 @@ PrivacyIdInfo::getPrivaycDisplayName(const std::string privacyId, std::string& d
 
        std::string sql = std::string("SELECT STR_MODULE_ID, STR_NAME_ID from PrivacyInfo where PRIVACY_ID=?");
 
-       openDb(PRIVACY_INFO_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READONLY);
+       openDb(PRIVACY_INFO_DB_PATH, pDbHandler, SQLITE_OPEN_READONLY);
        prepareDb(pDbHandler, sql.c_str(), pStmt);
 
        int res = sqlite3_bind_text(pStmt.get(), 1, privacyId.c_str(), -1, SQLITE_TRANSIENT);
@@ -231,7 +231,7 @@ PrivacyIdInfo::getPrivaycDescription(const std::string privacyId, std::string& d
 
        std::string sql = std::string("SELECT STR_MODULE_ID, STR_NAME_ID from PrivacyInfo where PRIVACY_ID=?");
 
-       openDb(PRIVACY_INFO_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READONLY);
+       openDb(PRIVACY_INFO_DB_PATH, pDbHandler, SQLITE_OPEN_READONLY);
        prepareDb(pDbHandler, sql.c_str(), pStmt);
 
        int res = sqlite3_bind_text(pStmt.get(), 1, privacyId.c_str(), -1, SQLITE_TRANSIENT);
index cfbb46190b7682aa9dd6b512c457f02bd73556f9..f963fbdeeb66aa46f78aaf4334a6c3db46484ce9 100644 (file)
@@ -24,6 +24,7 @@ BuildRequires:  pkgconfig(libxml-2.0)
 BuildRequires:  pkgconfig(pkgmgr-info)
 BuildRequires:  pkgconfig(sqlite3)
 BuildRequires: pkgconfig(capi-system-info)
+BuildRequires: pkgconfig(libtzplatform-config)
 
 Requires(post):   /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
@@ -92,8 +93,8 @@ make %{?_smp_mflags}
 %install
 mkdir -p %{buildroot}%{_prefix}/bin
 cp res/usr/bin/* %{buildroot}%{_bindir}/
-mkdir -p %{buildroot}/opt/dbspace
-cp res/opt/dbspace/.privacylist.db /%{buildroot}/opt/dbspace/
+mkdir -p %{buildroot}%{TZ_SYS_DB}
+cp res/opt/dbspace/.privacylist.db /%{buildroot}%{TZ_SYS_DB}
 mkdir -p %{buildroot}%{_datadir}/privacy-manager/
 cp res/usr/share/privacy-manager/privacy-filter-list.ini %{buildroot}%{_datadir}/privacy-manager/
 
@@ -108,10 +109,10 @@ mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants
 /sbin/ldconfig
 
 echo "Check privacy DB"
-if [ ! -f /opt/dbspace/.privacy.db ]
+if [ ! -f %{TZ_SYS_DB}/.privacy.db ]
 then
        echo "Create privacy DB"
-       /usr/bin/privacy_manager_create_clean_db.sh
+       %{_bindir}/privacy_manager_create_clean_db.sh
 fi
 
 %postun -p /sbin/ldconfig
@@ -129,7 +130,7 @@ fi
 %license  LICENSE.APLv2
 %manifest privacy-manager-server.manifest
 %{_libdir}/libprivacy-manager-server.so*
-/opt/dbspace/.privacylist.db
+%{TZ_SYS_DB}/.privacylist.db
 /usr/bin/*
 
 %files -n privacy-manager-server-devel
index 3a366c0d725a09e04342220007591a2748dc9b15..5f47112451b1509d5a8c113c90f1ee3a1aa66657 100755 (executable)
 #    See the License for the specific language governing permissions and
 #    limitations under the License.
 #
+source /etc/tizen-platform.conf
 for name in privacy
 do
-    rm -f /opt/dbspace/.$name.db
-    rm -f /opt/dbspace/.$name.db-journal
+    rm -f ${TZ_SYS_DB}/.$name.db
+    rm -f ${TZ_SYS_DB}/.$name.db-journal
     SQL="PRAGMA journal_mode = PERSIST;"
-    sqlite3 /opt/dbspace/.$name.db "$SQL"
+    sqlite3 ${TZ_SYS_DB}/.$name.db "$SQL"
     SQL=".read /usr/bin/"$name"_db.sql"
-    sqlite3 /opt/dbspace/.$name.db "$SQL"
-    touch /opt/dbspace/.$name.db-journal
-    chown 0:0 /opt/dbspace/.$name.db
-    chown 0:0 /opt/dbspace/.$name.db-journal
-    chmod 664 /opt/dbspace/.$name.db
-    chmod 664 /opt/dbspace/.$name.db-journal
+    sqlite3 ${TZ_SYS_DB}/.$name.db "$SQL"
+    touch ${TZ_SYS_DB}/.$name.db-journal
+    chown root:root ${TZ_SYS_DB}/.$name.db
+    chown root:root ${TZ_SYS_DB}/.$name.db-journal
+    chmod 664 ${TZ_SYS_DB}/.$name.db
+    chmod 664 ${TZ_SYS_DB}/.$name.db-journal
 done
 
 
index f62ae6197a44364da2aaa1c3b8427ab65b927b40..ec51d1a668f5754800a632f2af377ffe3db5ae5f 100644 (file)
@@ -7,7 +7,7 @@ SET(EXEC_PREFIX "\${prefix}")
 SET(INCLUDEDIR "\${prefix}/include")
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED dlog sqlite3 dbus-1 dbus-glib-1 db-util pkgmgr-info capi-system-info)
+pkg_check_modules(pkgs REQUIRED dlog sqlite3 dbus-1 dbus-glib-1 db-util pkgmgr-info capi-system-info libtzplatform-config)
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")