Fix the problem that the device can not be added to default_user accepted/tizen/unified/20191101.042011 submit/tizen/20191030.083316
authorsaerome.kim <saerome.kim@samsung.com>
Wed, 30 Oct 2019 01:54:48 +0000 (10:54 +0900)
committersaerome.kim <saerome.kim@samsung.com>
Wed, 30 Oct 2019 03:17:39 +0000 (12:17 +0900)
- Problem: Unable to add device to default_user.
- Cause: ua-manager regards default_user's ID is always 1.
  However, If ua-manager has a problem occurred while accessing user-db,
  so all user information is deleted. In this case the user id of the default user
  is added to a value that is not 1.
- Solution: Deletes the hard-coded default user ID is 1.

Change-Id: I0d79364107aa7416c5b64b9481d2edc83801fbc4
Signed-off-by: saerome.kim <saerome.kim@samsung.com>
packaging/ua-manager.spec
ua-daemon/include/ua-manager-core.h
ua-daemon/src/pm/ua-cloud-plugin-handler.c
ua-daemon/src/ua-manager-core.c
ua-daemon/src/ua-manager-request-handler.c

index 5b5cbee..f8da4a0 100644 (file)
@@ -1,6 +1,6 @@
 Name:       ua-manager
 Summary:    User awareness manager
-Version:    0.12.5
+Version:    0.12.6
 Release:    1
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
index dfac5f1..bc9f3f7 100644 (file)
@@ -111,7 +111,7 @@ typedef enum {
        UAM_ACTIVE_SCAN_COMPLETED = 0x02
 } uam_active_scan_event_e;
 
-int _uam_core_add_user(const char *account, const char *name);
+int _uam_core_add_user(int *user_id, const char *account, const char *name);
 
 int _uam_core_remove_user(const char *account);
 
index 4ee1128..13fe6d9 100644 (file)
@@ -68,10 +68,11 @@ static void __uam_to_uap_device_info(uap_device_info_t *dest,
 static int add_user(const char *account, const char *name)
 {
        FUNC_ENTRY;
+       int user_id;
        retv_if(NULL == account, UAP_STATUS_INVALID_PARAMS);
        retv_if(NULL == name, UAP_STATUS_INVALID_PARAMS);
 
-       if (UAM_ERROR_NONE != _uam_core_add_user(account, name)) {
+       if (UAM_ERROR_NONE != _uam_core_add_user(&user_id, account, name)) {
                UAM_ERR("_uam_core_add_user() failed");
                return UAP_STATUS_FAIL;
        }
index 520bca1..1deadc5 100644 (file)
@@ -31,7 +31,6 @@
 #define UAM_MAX_USERS 255
 #define USER_ACCOUNT_DEFAULT "default@default.com"
 #define USER_NAME_DEFAULT "default"
-#define USER_ACCOUNT_DEFAULT_ID 1
 
 typedef struct {
        char *name;
@@ -809,7 +808,7 @@ static void __uam_core_add_dev_to_list(
        FUNC_EXIT;
 }
 
-int _uam_core_add_user(const char *account, const char *name)
+int _uam_core_add_user(int *user_id, const char *account, const char *name)
 {
        FUNC_ENTRY;
        GSList *l;
@@ -831,6 +830,8 @@ int _uam_core_add_user(const char *account, const char *name)
        user->account = g_strdup(account);
        user->devices = NULL;
 
+       *user_id = user->user_id;
+
        users = g_slist_append(users, user);
 
        /* Send user added event to application */
@@ -1214,12 +1215,13 @@ int _uam_core_get_default_user(uam_user_info_s *user_info)
 {
        FUNC_ENTRY;
        int ret;
+       int user_id;
        GSList *l;
        uam_db_user_info_t *user;
 
        retv_if(NULL == user_info, UAM_ERROR_INVALID_PARAMETER);
 
-       ret = _uam_core_add_user(USER_ACCOUNT_DEFAULT, USER_NAME_DEFAULT);
+       ret = _uam_core_add_user(&user_id, USER_ACCOUNT_DEFAULT, USER_NAME_DEFAULT);
        if ((UAM_ERROR_NONE != ret) && (UAM_ERROR_ALREADY_REGISTERED != ret)) {
                UAM_ERR("_uam_core_add_user failed with %s", _uam_manager_error_to_str(ret));
                return ret;
@@ -2453,11 +2455,11 @@ int _uam_core_handle_device_added(int status,
        }
 
        if (0 > user_id) {
+               int id = 0;
                l = g_slist_find_custom(users,
                                USER_ACCOUNT_DEFAULT, __compare_user_account);
                if (NULL == l) {
-                       ret = _uam_core_add_user(
-                                       USER_ACCOUNT_DEFAULT, USER_NAME_DEFAULT);
+                       ret = _uam_core_add_user(&id, USER_ACCOUNT_DEFAULT, USER_NAME_DEFAULT);
                        if (UAM_ERROR_NONE != ret) {
                                UAM_ERR("_uam_core_add_user failed with %s",
                                                _uam_manager_error_to_str(ret));
@@ -2465,7 +2467,7 @@ int _uam_core_handle_device_added(int status,
                                return ret;
                        }
                }
-               user_id = USER_ACCOUNT_DEFAULT_ID;
+               user_id = id;
        }
        l = g_slist_find_custom(users, &user_id, __compare_user_id);
        if (NULL == l) {
index fb2f5b9..0ca9b9b 100644 (file)
@@ -124,14 +124,16 @@ static int __uam_manager_sync_request_handler(
                break;
        }
        case UAM_REQUEST_ADD_USER: {
+               int user_id;
                const char *account;
                const char *name;
 
                account = (char *)g_variant_get_data(in_param1);
                name = (char *)g_variant_get_data(in_param2);
-               UAM_DBG("Account: [%s], Name: [%s]", account, name);
 
-               result = _uam_core_add_user(account, name);
+               result = _uam_core_add_user(&user_id, account, name);
+
+               UAM_DBG("UserID: [%d] Account: [%s], Name: [%s]", user_id, account, name);
                break;
        }
        case UAM_REQUEST_DELETE_USER: {