summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsaerome.kim <saerome.kim@samsung.com>2019-11-11 19:32:43 +0900
committersaerome.kim <saerome.kim@samsung.com>2019-11-11 21:09:43 +0900
commit57819db445669436828f95e3e3f657977d31d6ef (patch)
tree9af3bdc3d4c116e23f8ece7bcccddb4662d15601
parent633a3974a94a53e37f82026ca6fa4968cb4d91e9 (diff)
downloaduser-awareness-57819db445669436828f95e3e3f657977d31d6ef.tar.gz
user-awareness-57819db445669436828f95e3e3f657977d31d6ef.tar.bz2
user-awareness-57819db445669436828f95e3e3f657977d31d6ef.zip
- Problem: Users want to change their name. - Cause: it is not supported to change the user name once user information added to ua-manager DB. - Solution: Make the user can change his name even user-information added. Change-Id: I41e4d8c087af859e886b06c592797052c4e69fa8 Signed-off-by: saerome.kim <saerome.kim@samsung.com>
-rw-r--r--include/user-awareness.h24
-rw-r--r--packaging/capi-network-ua.spec2
-rw-r--r--src/user-awareness-users.c60
-rw-r--r--test/uat-service.c8
-rw-r--r--test/uat-users.c34
5 files changed, 100 insertions, 28 deletions
diff --git a/include/user-awareness.h b/include/user-awareness.h
index 7b779cd..b40f071 100644
--- a/include/user-awareness.h
+++ b/include/user-awareness.h
@@ -1359,6 +1359,7 @@ int ua_user_destroy(
* @post
*
* @see ua_user_remove()
+ * @see ua_user_update()
*/
int ua_user_add(
ua_user_h user_handle);
@@ -1380,12 +1381,35 @@ int ua_user_add(
* @post
*
* @see ua_user_add()
+ * @see ua_user_update()
*/
int ua_user_remove(
ua_user_h user_handle);
/**
* @ingroup CAPI_NETWORK_UA_MODULE
+ * @brief Updates the user.
+ * @since_tizen 5.5
+ *
+ * @param[in] user_handle The user handle
+ *
+ * @return 0 on success, otherwise a negative error value
+ * @retval #UA_ERROR_NONE Successful
+ * @retval #UA_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #UA_ERROR_OPERATION_FAILED Operation failed
+ *
+ * @exception
+ * @pre
+ * @post
+ *
+ * @see ua_user_add()
+ * @see ua_user_remove()
+ */
+int ua_user_update(
+ ua_user_h user_handle);
+
+/**
+ * @ingroup CAPI_NETWORK_UA_MODULE
* @brief Gets default user handle.
* @since_tizen 5.5
*
diff --git a/packaging/capi-network-ua.spec b/packaging/capi-network-ua.spec
index cc1a630..970dfda 100644
--- a/packaging/capi-network-ua.spec
+++ b/packaging/capi-network-ua.spec
@@ -1,6 +1,6 @@
Name: capi-network-ua
Summary: User Awareness Framework CAPI
-Version: 0.12.13
+Version: 0.12.14
Release: 1
License: Apache-2.0
Source0: %{name}-%{version}.tar.gz
diff --git a/src/user-awareness-users.c b/src/user-awareness-users.c
index e0a9f4b..85a1d8c 100644
--- a/src/user-awareness-users.c
+++ b/src/user-awareness-users.c
@@ -384,6 +384,8 @@ int _ua_foreach_registered_users(ua_registered_user_cb foreach_cb,
FUNC_ENTRY;
int i;
int ret;
+ GSList *l;
+ ua_user_info_s *u;
GPtrArray *user_list = NULL;
uam_user_info_s *ptr;
@@ -402,6 +404,11 @@ int _ua_foreach_registered_users(ua_registered_user_cb foreach_cb,
return ret;
}
+ if (ua_users_list) {
+ g_slist_free_full(ua_users_list, _ua_free_ua_user_info_t);
+ ua_users_list = NULL;
+ }
+
for (i = 0; i < user_list->len; i++) {
ptr = g_ptr_array_index(user_list, i);
if (ptr) {
@@ -441,11 +448,8 @@ int _ua_foreach_registered_users(ua_registered_user_cb foreach_cb,
user_info->isadded = true;
user_info->user_handle = (ua_user_h)user_info;
- if (!foreach_cb(user_info->user_handle, user_data)) {
- _ua_free_ua_user_info_t(user_info);
- break;
- } else
- _ua_free_ua_user_info_t(user_info);
+
+ ua_users_list = g_slist_append(ua_users_list, user_info);
} else {
/* LCOV_EXCL_START */
UA_ERR("OPERATION_FAILED(0x%08x)",
@@ -456,6 +460,13 @@ int _ua_foreach_registered_users(ua_registered_user_cb foreach_cb,
}
}
+ for (l = ua_users_list; l; l = g_slist_next(l)) {
+ u = (ua_user_info_s *)l->data;
+
+ if (!foreach_cb(u->user_handle, user_data))
+ break;
+ }
+
done:
g_ptr_array_foreach(user_list, (GFunc)g_free, NULL);
g_ptr_array_free(user_list, TRUE);
@@ -621,6 +632,34 @@ int ua_user_remove(ua_user_h user_handle)
return UA_ERROR_NONE;
}
+int ua_user_update(ua_user_h user_handle)
+{
+ FUNC_ENTRY;
+
+ int ret;
+ uam_user_info_s uam_user;
+ ua_user_info_s *user = (ua_user_info_s *)user_handle;
+
+ UA_VALIDATE_INPUT_PARAMETER(user_handle);
+ UA_IS_EXIST(_ua_get_user_from_list(user->account));
+
+ memset(&uam_user, 0, sizeof(uam_user_info_s));
+ g_strlcpy(uam_user.account, user->account, UAM_USER_ACCOUNT_MAX_STRING_LEN);
+ g_strlcpy(uam_user.name, user->name, UAM_USER_NAME_MAX_STRING_LEN);
+
+ ret = _ua_get_error_code(_uam_update_user(&uam_user));
+ if (UA_ERROR_NONE != ret) {
+ /* LCOV_EXCL_START */
+ UA_ERR("Failed with error: %s(0x%X)",
+ _ua_get_error_string(ret), ret);
+ return ret;
+ /* LCOV_EXCL_STOP */
+ }
+
+ FUNC_EXIT;
+ return UA_ERROR_NONE;
+}
+
int ua_user_get_default_user(ua_user_h* user_handle)
{
FUNC_ENTRY;
@@ -846,17 +885,8 @@ int ua_user_foreach_added(
void *user_data)
{
FUNC_ENTRY;
- GSList *l;
- ua_user_info_s *u;
-
- UA_VALIDATE_INPUT_PARAMETER(foreach_cb);
- for (l = ua_users_list; l; l = g_slist_next(l)) {
- u = (ua_user_info_s *)l->data;
-
- if (!foreach_cb(u->user_handle, user_data))
- break;
- }
+ _ua_foreach_registered_users(foreach_cb, user_data);
FUNC_EXIT;
return UA_ERROR_NONE;
diff --git a/test/uat-service.c b/test/uat-service.c
index 1e80093..c08cc34 100644
--- a/test/uat-service.c
+++ b/test/uat-service.c
@@ -779,9 +779,9 @@ struct menu_data menu_ua_services[] = {
menu_ua_service_get_by_name, NULL, NULL },
{ "10", ANSI_COLOR_LIGHTMAGENTA "ua_service_foreach_added" ANSI_COLOR_NORMAL,
menu_sel_service, NULL, NULL },
- { "21", "ua_service_add_device",
+ { "21", ANSI_COLOR_LIGHTGREEN "ua_service_add_device" ANSI_COLOR_NORMAL,
NULL, run_ua_service_add_device, NULL },
- { "22", "ua_service_remove_device",
+ { "22", ANSI_COLOR_LIGHTRED "ua_service_remove_device" ANSI_COLOR_NORMAL,
NULL, run_ua_service_remove_device, NULL },
{ "23", "ua_service_set_device_discriminant",
menu_ua_service_set_device_discriminant, NULL, NULL },
@@ -789,9 +789,9 @@ struct menu_data menu_ua_services[] = {
NULL, run_ua_service_get_device_discriminant, NULL },
{ "25", ANSI_COLOR_LIGHTMAGENTA "ua_service_foreach_added_devices" ANSI_COLOR_NORMAL,
menu_sel_service_added_device, NULL, NULL },
- { "31", "ua_service_add_user",
+ { "31", ANSI_COLOR_LIGHTGREEN "ua_service_add_user" ANSI_COLOR_NORMAL,
menu_ua_service_add_user, NULL, NULL },
- { "32", "ua_service_remove_user",
+ { "32", ANSI_COLOR_LIGHTRED "ua_service_remove_user" ANSI_COLOR_NORMAL,
menu_ua_service_remove_user, NULL, NULL },
{ "33", ANSI_COLOR_LIGHTMAGENTA "ua_service_foreach_added_users" ANSI_COLOR_NORMAL,
menu_sel_service_added_user, NULL, NULL },
diff --git a/test/uat-users.c b/test/uat-users.c
index ccccaeb..0f00d45 100644
--- a/test/uat-users.c
+++ b/test/uat-users.c
@@ -426,6 +426,22 @@ static int run_ua_user_remove(MManager *mm, struct menu_data *menu)
return RET_SUCCESS;
}
+static int run_ua_user_update(MManager *mm, struct menu_data *menu)
+{
+ int ret = UA_ERROR_NONE;
+
+ msg("ua_user_update");
+
+ check_if(NULL == g_user_h);
+
+ ret = ua_user_update(g_user_h);
+
+ msg(" - ua_user_update() ret: [0x%X] [%s]",
+ ret, uat_get_error_str(ret));
+
+ return RET_SUCCESS;
+}
+
static int run_ua_user_get_default_user(MManager *mm, struct menu_data *menu)
{
int ret = UA_ERROR_NONE;
@@ -692,21 +708,23 @@ struct menu_data menu_ua_users[] = {
NULL, run_ua_user_add, NULL },
{ "6", "ua_user_remove",
NULL, run_ua_user_remove, NULL},
- { "7", "ua_user_get_default_user",
+ { "7", "ua_user_update",
+ NULL, run_ua_user_update, NULL},
+ { "8", "ua_user_get_default_user",
NULL, run_ua_user_get_default_user, NULL },
- { "8", "ua_user_get_handle_by_account",
+ { "9", "ua_user_get_handle_by_account",
menu_ua_user_get_handle_by_account, NULL, NULL },
- { "9", ANSI_COLOR_LIGHTMAGENTA "ua_user_foreach_added" ANSI_COLOR_NORMAL,
+ { "10", ANSI_COLOR_LIGHTMAGENTA "ua_user_foreach_added" ANSI_COLOR_NORMAL,
menu_sel_added_user, NULL, NULL },
- { "10", "ua_user_add_device",
+ { "11", ANSI_COLOR_LIGHTGREEN "ua_user_add_device" ANSI_COLOR_NORMAL,
NULL, run_ua_user_add_device, NULL },
- { "11", "ua_user_remove_device",
+ { "12", ANSI_COLOR_LIGHTRED "ua_user_remove_device" ANSI_COLOR_NORMAL,
NULL, run_ua_user_remove_device, NULL },
- { "12", "ua_user_remove_device_by_device_id",
+ { "13", "ua_user_remove_device_by_device_id",
menu_ua_rm_dev_by_device_id, NULL, NULL },
- { "13", "ua_user_remove_device_by_mac_address",
+ { "14", "ua_user_remove_device_by_mac_address",
menu_ua_rm_dev_by_addr, NULL, NULL },
- { "14", ANSI_COLOR_LIGHTMAGENTA "ua_user_foreach_added_devices" ANSI_COLOR_NORMAL,
+ { "15", ANSI_COLOR_LIGHTMAGENTA "ua_user_foreach_added_devices" ANSI_COLOR_NORMAL,
menu_ua_user_added_devlist, NULL, NULL },
{ NULL, NULL, },
};