change permission of account.db for user(TSAM-5746). 75/77375/1 accepted/tizen/common/20160703.183606 accepted/tizen/mobile/20160630.063606 accepted/tizen/wearable/20160630.063609 submit/tizen_common/20160703.163500 submit/tizen_mobile/20160630.020603 submit/tizen_wearable/20160630.020616
authorjiseob.jang <jiseob.jang@samsung.com>
Wed, 29 Jun 2016 12:05:22 +0000 (21:05 +0900)
committerjiseob.jang <jiseob.jang@samsung.com>
Wed, 29 Jun 2016 12:05:22 +0000 (21:05 +0900)
Change-Id: I1c0955c47f0c679d8cb06254fec1ac39c875dbb0
Signed-off-by: jiseob.jang <jiseob.jang@samsung.com>
CMakeLists.txt
packaging/libaccount-service.spec
src/account_offline.c

index a65c82ec05d9eab4520e6dfc9b5b736430f652ff..e9646c120bedb195b5e0c527fb5dbc6ee8be9d30 100644 (file)
@@ -6,6 +6,6 @@ SET(EXEC_PREFIX ${_prefix})
 #SET(LIBDIR "\${prefix}/lib")
 #SET(INCLUDEDIR "\${prefix}/include ")
 SET(VERSION_MAJOR 0)
-SET(VERSION "${VERSION_MAJOR}.4.3")
+SET(VERSION "${VERSION_MAJOR}.4.4")
 
 ADD_SUBDIRECTORY(src)
index ef700b7d4ffb6d7a5d70717951c86b108ec5047e..dadd1e2d026c9137805f6f4526e5c5219aff4dcd 100644 (file)
@@ -1,7 +1,7 @@
 
 Name:       libaccount-service
 Summary:    Account DB library
-Version:    0.4.3
+Version:    0.4.4
 Release:    1
 Group:      Social & Content/API
 License:    Apache-2.0
index 26a2c17d9c8a76345d67f8f6bc22ae604981a0fe..01c9e8dd093b5e889fd6bf384999162454c83867 100644 (file)
@@ -45,6 +45,8 @@
 
 #define APP_GID 100
 #define MIN_USER_UID 5000
+#define SERVICE_FW_UID 651
+#define SERVICE_FW_GID 651
 #define PW_BUF_LEN 4096
 
 typedef sqlite3_stmt * account_stmt;
@@ -93,13 +95,24 @@ static int _account_user_db_open(sqlite3 **p_hAccountDB, int mode, uid_t uid)
                _account_user_db_close(*p_hAccountDB);
 
        ACCOUNT_GET_USER_DB_DIR(account_db_dir, sizeof(account_db_dir), uid);
-       if ((-1 == access(account_db_dir, F_OK)) && uid != OWNER_ROOT)
-               mkdir(account_db_dir, 644);
-
-       if (mode == ACCOUNT_DB_OPEN_READWRITE)
+       if ((-1 == access(account_db_dir, F_OK)) && uid != OWNER_ROOT) {
+               int ret;
+               mkdir(account_db_dir, 777);
+               ret = chown(account_db_dir, SERVICE_FW_UID, SERVICE_FW_GID);
+               ACCOUNT_DEBUG("chown result = [%d]", ret);
+               ret = chmod(account_db_dir, S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
+               ACCOUNT_DEBUG("chmod result = [%d]", ret);
                rc = db_util_open(account_db_path, p_hAccountDB, DB_UTIL_REGISTER_HOOK_METHOD);
-       else
-               return ACCOUNT_ERROR_DB_NOT_OPENED;
+               ret = chown(account_db_path, SERVICE_FW_UID, SERVICE_FW_GID);
+               ACCOUNT_DEBUG("chown result = [%d]", ret);
+               ret = chmod(account_db_path, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP);
+               ACCOUNT_DEBUG("chmod result = [%d]", ret);
+       } else {
+               if (mode == ACCOUNT_DB_OPEN_READWRITE)
+                       rc = db_util_open(account_db_path, p_hAccountDB, DB_UTIL_REGISTER_HOOK_METHOD);
+               else
+                       return ACCOUNT_ERROR_DB_NOT_OPENED;
+       }
 
        if (_account_db_err_code(*p_hAccountDB) == SQLITE_PERM) {
                ACCOUNT_ERROR("Access failed(%s)", _account_db_err_msg(*p_hAccountDB));
@@ -156,13 +169,24 @@ static int _account_global_db_open(int mode)
 
        if (!g_hAccountGlobalDB) {
                ACCOUNT_GET_USER_DB_DIR(account_db_dir, sizeof(account_db_dir), uid);
-               if ((-1 == access(account_db_dir, F_OK)) && uid != OWNER_ROOT)
-                       mkdir(account_db_dir, 644);
-
-               if (mode == ACCOUNT_DB_OPEN_READWRITE)
+               if ((-1 == access(account_db_dir, F_OK)) && uid != OWNER_ROOT) {
+                       int ret;
+                       mkdir(account_db_dir, 777);
+                       ret = chown(account_db_dir, SERVICE_FW_UID, SERVICE_FW_GID);
+                       ACCOUNT_DEBUG("chown result = [%d]", ret);
+                       ret = chmod(account_db_dir, S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
+                       ACCOUNT_DEBUG("chmod result = [%d]", ret);
                        rc = db_util_open(account_db_path, &g_hAccountGlobalDB, DB_UTIL_REGISTER_HOOK_METHOD);
-               else
-                       return ACCOUNT_ERROR_DB_NOT_OPENED;
+                       ret = chown(account_db_path, SERVICE_FW_UID, SERVICE_FW_GID);
+                       ACCOUNT_DEBUG("chown result = [%d]", ret);
+                       ret = chmod(account_db_path, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP);
+                       ACCOUNT_DEBUG("chmod result = [%d]", ret);
+               } else {
+                       if (mode == ACCOUNT_DB_OPEN_READWRITE)
+                               rc = db_util_open(account_db_path, &g_hAccountGlobalDB, DB_UTIL_REGISTER_HOOK_METHOD);
+                       else
+                               return ACCOUNT_ERROR_DB_NOT_OPENED;
+               }
 
                if (_account_db_err_code(g_hAccountGlobalDB) == SQLITE_PERM) {
                        ACCOUNT_ERROR("Access failed(%s)", _account_db_err_msg(g_hAccountGlobalDB));