From 190c8c352286e7c7f351b0610c338845eeccbee2 Mon Sep 17 00:00:00 2001 From: Hyejin Kim Date: Wed, 19 Sep 2012 11:31:06 +0900 Subject: [PATCH] [security,password] remove unused code --- setting-password/include/setting-password-main.h | 6 - setting-password/include/setting-password.h | 80 - setting-password/src/setting-password-main.c | 1925 +------------------- setting-password/src/setting-password.c | 653 +------ setting-security/include/setting-security.h | 1 + .../src/setting-security-sim-settings.c | 11 +- setting-security/src/setting-security.c | 6 +- 7 files changed, 125 insertions(+), 2557 deletions(-) diff --git a/setting-password/include/setting-password-main.h b/setting-password/include/setting-password-main.h index 7c05c63..62ab667 100755 --- a/setting-password/include/setting-password-main.h +++ b/setting-password/include/setting-password-main.h @@ -25,12 +25,6 @@ static int setting_password_main_create_ui(void *data); -/* for simple password */ -static int setting_password_main_draw_simple_password(void *data, int title_index); -static int setting_password_main_check_simple_password(const char *collection); -static int setting_password_main_draw_next_simple_password(void *data, int title_index); -/* end */ - static int setting_password_main_draw_1line_password(void *data, void *cb); static int setting_password_main_draw_2line_password(void *data, void *cb); static int setting_password_main_draw_3line_password(void *data, void *cb); diff --git a/setting-password/include/setting-password.h b/setting-password/include/setting-password.h index 7bfeb24..fa84d60 100755 --- a/setting-password/include/setting-password.h +++ b/setting-password/include/setting-password.h @@ -38,21 +38,6 @@ #include -#ifdef SUPPORT_MDM -#include -#define MAX_DESC_BUF_SIZE 2048 -#define DESC_BUF1_SIZE 256 -#define DESC_BUF2_SIZE 128 - -#define NEW_PASSWORD_NECESSARY "New password is necessary because of new security policy." -#define PASSWORD_MUST_DIGITS "Password must consist of at least %d digit(s)." -#define PASSWORD_MUST_ALPHANUMERIC "Password must consist of at least %d alphanumeric character(s)." -#define PASSWORD_MUST_NOT_MATCH_PREV "Password must not match previous passwords." -#define ENTER_ANOTHER_PASSWORD "Enter another password." -#define PASSWORD_EXPIRED "Password expired." -#define MAX_NUM_REACHED "Maxinum number of password entry attempts reached." -#endif - #define SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH 4 #define SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH 16 #define SETTING_PW_UG_PRIVACY_PASSWORD_MIN_LENGTH 4 @@ -81,13 +66,6 @@ #define PW_SHORT_GUIDE_CONFIRM "IDS_ST_BODY_CONFIRM" typedef enum { - SETTING_PW_TYPE_PASSWORD, - SETTING_PW_TYPE_SET_PASSWORD, - SETTING_PW_TYPE_CHANGE_PASSWORD, - SETTING_PW_TYPE_SIMPLE_PASSWORD, - SETTING_PW_TYPE_SET_SIMPLE_PASSWORD, - SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD, - SETTING_PW_TYPE_ENTER_LOCK_TYPE, SETTING_PW_TYPE_SIM_LOCK_ON, SETTING_PW_TYPE_SIM_LOCK_OFF, SETTING_PW_TYPE_PIN_LOCK_ON, @@ -97,31 +75,9 @@ typedef enum { SETTING_PW_TYPE_PIN1_BLOCKED, SETTING_PW_TYPE_PIN2_BLOCKED, SETTING_PW_TYPE_RESET, -#ifdef SUPPORT_MDM - SETTING_PW_TYPE_MDM_NEW_POLICY, /* for setting password according to new policy */ - SETTING_PW_TYPE_MDM_CHANGE_PASSWORD, /* for changing password by force : mdm_enforce_password_change() */ - SETTING_PW_TYPE_MDM_TO_SIMPLE, -#endif SETTING_PW_TYPE_MAX, } setting_pw_type; - -#ifdef SUPPORT_MDM -typedef enum { - SETTING_PW_ERROR_INVALID_LENGTH = -1, /* if length of password is wrong, */ - SETTING_PW_ERROR_INCLUDE_NO_LETTER = -2, /* if password that user enter has no letter, */ - SETTING_PW_ERROR_NO_MATCH_WITH_POLICY = -3, /* if password that user enter does not match with policy, */ - SETTING_PW_ERROR_NO_MATCH_MIN_COMPLEX = -4, /* if password that user enter has no letter, */ -} setting_pw_errors_for_mdm; - -typedef enum { - SETTING_PW_STATUS_OK = 0, - SETTING_PW_STATUS_EXPIRED, - SETTING_PW_STATUS_MAX_FAILED, - SETTING_PW_STATUS_MAX, -} setting_pw_status_for_mdm; -#endif - struct _pw_item { int pw_type_num; char *pw_type_string; @@ -223,34 +179,6 @@ typedef struct _SettingPasswordUG { Evas_Object *scroller; int disable_item_type; -#ifdef SUPPORT_MDM - int is_expired; - Elm_Object_Item *mdm_desc; - Elm_Genlist_Item_Class itc_mdm_desc; - /* for support mdm policy */ - mdm_result_t mdm_status; - mdm_data_t *mdm_data; - mdm_password_policy_t *mdm_policy; - Ecore_Event_Handler *event_handler; - char *guide_str; - char *step1_str; -#endif - - /* for simple password */ - Elm_Genlist_Item_Class itc_title; - Elm_Genlist_Item_Class itc_sp_bg_1icon; - Elm_Object_Item *sp_item; - Evas_Object *sp_entry1; - Evas_Object *sp_entry2; - Evas_Object *sp_entry3; - Evas_Object *sp_entry4; - Evas_Object *sp_focused; - - int sp_title_index; - char *cur_pwd; - - //int is_simple_password_on; - int screen_lock_type; int is_description; int is_empty; @@ -272,14 +200,6 @@ void setting_password_ug_popup_resp_cb(void *data, Evas_Object *obj, void *event void setting_password_ug_create_popup_notitle_nobtn(void *data, char *str, int destroy); void setting_password_ug_display_desc(void *data, char *desc, int destroy); -#ifdef SUPPORT_MDM -void setting_password_ug_display_mdm_desc(void *data, const char* guide_text); -#endif - -extern void setting_password_ug_check_attemps_left(void *data); -int setting_password_is_password_empty(); -int setting_password_check_password(const char *challenge, unsigned int *remain_attempt, unsigned int *valid_sec); -int setting_password_set_password(const char *cur_pwd, const char *new_pwd, void *data); #endif diff --git a/setting-password/src/setting-password-main.c b/setting-password/src/setting-password-main.c index 5574038..0f6d857 100755 --- a/setting-password/src/setting-password-main.c +++ b/setting-password/src/setting-password-main.c @@ -25,11 +25,6 @@ #include #include -#ifdef SUPPORT_MDM -#include -#include -#endif - static int setting_password_main_create(void *cb); static int setting_password_main_destroy(void *cb); static int setting_password_main_update(void *cb); @@ -42,27 +37,9 @@ setting_view setting_view_password_main = { .cleanup = setting_password_main_cleanup, }; -const char *sp_titles[5] = { "IDS_ST_BODY_ENTER_PASSWORD", - "IDS_ST_BODY_ENTER_NEW_PASSWORD", - "IDS_ST_BODY_ENTER_PASSWORD_AGAIN", - "IDS_ST_BODY_ENTER_CURRENT_PASSWORD", - NULL -}; -#define SETTING_SP_TITLE_INDEX_START 0 -#define SETTING_SP_TITLE_INDEX_MAX 3 - #define ENTRY_CALLBACK_REPEAT_MAX 3 #define SETTING_COMPARE_PW_FAIL -2 -static void _sp_changed_cb1(void *data, Evas_Object *obj, void *event_info); -static void _sp_changed_cb2(void *data, Evas_Object *obj, void *event_info); -static void _sp_changed_cb3(void *data, Evas_Object *obj, void *event_info); -static void _sp_changed_cb4(void *data, Evas_Object *obj, void *event_info); - -#ifdef SUPPORT_MDM -int _count_string(const char *str, int *cnt_letter, int *cnt_digit, int *cnt_sym); -#endif - /* *************************************************** * *basic func @@ -94,20 +71,6 @@ static char *setting_password_main_get_title_str(void *data) SettingPasswordUG *ad = (SettingPasswordUG *) data; switch (ad->view_type) { - case SETTING_PW_TYPE_PASSWORD: - case SETTING_PW_TYPE_SET_PASSWORD: - case SETTING_PW_TYPE_CHANGE_PASSWORD: - case SETTING_PW_TYPE_SIMPLE_PASSWORD: - case SETTING_PW_TYPE_SET_SIMPLE_PASSWORD: - case SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD: -#ifdef SUPPORT_MDM - case SETTING_PW_TYPE_MDM_NEW_POLICY: - case SETTING_PW_TYPE_MDM_CHANGE_PASSWORD: - case SETTING_PW_TYPE_MDM_TO_SIMPLE: -#endif - return _("IDS_COM_BODY_AUTH_PASSWORD"); - break; - case SETTING_PW_TYPE_SIM_LOCK_ON: case SETTING_PW_TYPE_SIM_LOCK_OFF: return _("IDS_COM_BODY_AUTH_PASSWORD"); @@ -140,55 +103,6 @@ static char *setting_password_main_get_title_str(void *data) } -static void -_sp_back_key_up(void *data, Evas *e, Evas_Object *obj, void *event) -{ - retm_if(data == NULL || event == NULL, "[Setting > Password] Data parameter is NULL"); - - SettingPasswordUG *ad = (SettingPasswordUG *) data; - - ret_if(ad->sp_focused == NULL || ad->sp_entry1 == NULL || ad->sp_entry2 == NULL - || ad->sp_entry3 == NULL || ad->sp_entry4 == NULL); - - Evas_Object *cur_entry = NULL; - Evas_Object *move_to = NULL; - - Evas_Event_Key_Up *ev = (Evas_Event_Key_Up*)event; - - cur_entry = ad->sp_focused; - - if(cur_entry == ad->sp_entry1) - { - /* nothing to move. */ - return; - } - else if(cur_entry == ad->sp_entry2) - { - move_to = ad->sp_entry1; - } - else if(cur_entry == ad->sp_entry3) - { - move_to = ad->sp_entry2; - } - else if(cur_entry == ad->sp_entry4) - { - move_to = ad->sp_entry3; - } - else - { - return; - } - - if(strcmp(ev->keyname, "BackSpace") == 0) - { - SETTING_TRACE_DEBUG("BackSpace Key Up"); - elm_object_focus_set(move_to, EINA_TRUE); - elm_entry_entry_set(move_to, ""); - elm_entry_cursor_end_set(move_to); - ad->sp_focused = move_to; - } -} - Elm_Object_Item* __create_navibar(void *data, Evas_Object *content, Evas_Object *navibar, setting_pw_navibar_style_t style) { SETTING_TRACE_BEGIN; @@ -277,32 +191,7 @@ static int __create_common_password_frame(void *data) navi_bar = setting_create_navi_bar(ad->ly_main); retv_if(!navi_bar, SETTING_RETURN_FAIL); -#ifdef SUPPORT_MDM - if((ad->view_type == SETTING_PW_TYPE_MDM_NEW_POLICY) - || (ad->view_type == SETTING_PW_TYPE_MDM_CHANGE_PASSWORD)) - { - ad->navi_it = __create_navibar(ad, pw_list, navi_bar, SETTING_PW_NAVIBAR_WITH_BOTH_BTN); - } - else if(ad->view_type == SETTING_PW_TYPE_MDM_TO_SIMPLE) - { - ad->navi_it = __create_navibar(ad, pw_list, navi_bar, SETTING_PW_NAVIBAR_WITH_LEFT_BTN); - } - else - { -#endif - if( (ad->view_type == SETTING_PW_TYPE_SIMPLE_PASSWORD) - || (ad->view_type == SETTING_PW_TYPE_SET_SIMPLE_PASSWORD) - || (ad->view_type == SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD)) - { - ad->navi_it = __create_navibar(ad, pw_list, navi_bar, SETTING_PW_NAVIBAR_WITH_LEFT_BTN); - } - else - { - ad->navi_it = __create_navibar(ad, pw_list, navi_bar, SETTING_PW_NAVIBAR_WITH_BOTH_BTN); - } -#ifdef SUPPORT_MDM - } -#endif + ad->navi_it = __create_navibar(ad, pw_list, navi_bar, SETTING_PW_NAVIBAR_WITH_BOTH_BTN); retv_if(!ad->navi_it, SETTING_RETURN_FAIL); #else @@ -334,743 +223,6 @@ static int __create_common_password_frame(void *data) return SETTING_RETURN_SUCCESS; } -static void _copy_chars_from_sp_entries(void *data, char *collection) -{ - ret_if(data == NULL || collection == NULL); - - SettingPasswordUG *ad = (SettingPasswordUG *) data; - - if(ad->sp_entry1 == NULL || ad->sp_entry2 == NULL || - ad->sp_entry3 == NULL || ad->sp_entry4 == NULL) - return; - - strncpy(&collection[0], elm_entry_entry_get(ad->sp_entry1), 1); - strncpy(&collection[1], elm_entry_entry_get(ad->sp_entry2), 1); - strncpy(&collection[2], elm_entry_entry_get(ad->sp_entry3), 1); - strncpy(&collection[3], elm_entry_entry_get(ad->sp_entry4), 1); -} - -static int _handle_step1(void *data, char *collection) -{ - retv_if(data == NULL, SETTING_RETURN_FAIL); - - SettingPasswordUG *ad = (SettingPasswordUG *) data; - int ret = 0; - int err = 0; - - char svalue[SHA256_DIGEST_LENGTH]; - memset(svalue, 0x0, SHA256_DIGEST_LENGTH); - - _copy_chars_from_sp_entries(ad, collection); - - ret = setting_password_main_check_simple_password(collection); - if(ret < 0) - { - setting_password_main_draw_simple_password(ad, 3); - return SETTING_RETURN_FAIL; - } - - ret = setting_password_check_password(collection, NULL, NULL); - if(ret != SETTING_RETURN_SUCCESS) - { - setting_password_main_draw_simple_password(ad, 3); - return SETTING_COMPARE_PW_FAIL; - } - - int value = 0; - - if ( 0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_SIMPLE_PASSWORD")) - { - setting_get_bool_slp_key(BOOL_SLP_SETTING_POWER_ON_LOCK, &value, &err); - SETTING_TRACE_DEBUG("get VCONF POWER_ON_LOCK : %d", value); - - if (value == 0) - ret = setting_set_bool_slp_key(BOOL_SLP_SETTING_POWER_ON_LOCK, - SETTING_ON_OFF_BTN_ON, &err); - else - ret = setting_set_bool_slp_key(BOOL_SLP_SETTING_POWER_ON_LOCK, - SETTING_ON_OFF_BTN_OFF, &err); - - /* reset VCONF */ - setting_set_int_slp_key(INT_SLP_SETTING_PHONE_LOCK_ATTEMPTS_LEFT, - PHONE_LOCK_ATTEMPS_MAX, &err); - setting_retvm_if(err == SETTING_RETURN_FAIL, SETTING_RETURN_FAIL, "[Error] set value of vconf fail."); - - /* Correct Password. Send Bundle to caller for status change */ - } - - service_h svc; - if (service_create(&svc)) - { - setting_password_main_draw_simple_password(ad, 3); - return SETTING_RETURN_FAIL; - } - - service_add_extra_data(svc, "result", ad->view_type_string); - - if(0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_ENTER_LOCK_TYPE")) - service_add_extra_data(svc, "current", collection); - - /* reset static variables */ - memset(collection, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1); - - ug_send_result(ad->ug, svc); - SETTING_TRACE("Send Result : %s\n", ad->view_type_string); - service_destroy(svc); - /* Send destroy request */ - ug_destroy_me(ad->ug); - - return SETTING_RETURN_SUCCESS; -} -#if DISABLED_CODE -static int _handle_step_sp(void *data, int *step, char *collection1, char *collection2) -{ - retv_if(data == NULL, SETTING_RETURN_FAIL); - - SettingPasswordUG *ad = (SettingPasswordUG *) data; - int ret = 0; - - char svalue[SHA256_DIGEST_LENGTH]; - memset(svalue, 0x0, SHA256_DIGEST_LENGTH); - - if(ad->is_simple_password_on == 1) - { - SETTING_TRACE_DEBUG("case ON->OFF"); - _copy_chars_from_sp_entries(ad, collection1); - - ret = setting_password_main_check_simple_password(collection1); - if(ret < 0) - { - setting_password_main_draw_simple_password(ad, 3); - return SETTING_RETURN_FAIL; - } - - SETTING_TRACE_DEBUG("collection_step1 : %s", collection1); - - ret = setting_password_check_password(collection1, NULL, NULL); - if(ret != SETTING_RETURN_SUCCESS) - { - setting_password_main_draw_simple_password(ad, 3); - return SETTING_RETURN_FAIL; - } - ad->cur_pwd = (char*)strdup(collection1); - - /* reset static variables */ - memset(collection1, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1); - - if(ad->sp_entry1 == NULL || ad->sp_entry2 == NULL || ad->sp_entry3 == NULL || ad->sp_entry4 == NULL) - return SETTING_RETURN_FAIL; - - evas_object_event_callback_del(ad->sp_entry1, EVAS_CALLBACK_KEY_UP, _sp_back_key_up); - evas_object_event_callback_del(ad->sp_entry2, EVAS_CALLBACK_KEY_UP, _sp_back_key_up); - evas_object_event_callback_del(ad->sp_entry3, EVAS_CALLBACK_KEY_UP, _sp_back_key_up); - evas_object_event_callback_del(ad->sp_entry4, EVAS_CALLBACK_KEY_UP, _sp_back_key_up); - - evas_object_smart_callback_del(ad->sp_entry1, "changed", _sp_changed_cb1); - evas_object_smart_callback_del(ad->sp_entry2, "changed", _sp_changed_cb2); - evas_object_smart_callback_del(ad->sp_entry3, "changed", _sp_changed_cb3); - evas_object_smart_callback_del(ad->sp_entry4, "changed", _sp_changed_cb4); - - if(ad->ly_main) - { - evas_object_del(ad->ly_main); - ad->ly_main = NULL; - } - if(ad->remove_timer) - { - ecore_timer_del(ad->remove_timer); - ad->remove_timer = NULL; - } - -#ifdef SUPPORT_MDM - if((ad->mdm_policy) && (ad->mdm_policy->quality != MDM_PASSWORD_QUALITY_UNSPECIFIED)) - { - ad->view_type = SETTING_PW_TYPE_MDM_NEW_POLICY; - ad->step1_str = ad->cur_pwd; - } - else - { - ad->step1_str = NULL; - } -#endif - __create_common_password_frame(ad); - setting_password_main_draw_2line_password(ad, NULL); - } - else if(ad->is_simple_password_on == 0) - { - SETTING_TRACE_DEBUG("case OFF->ON"); - if(*step == 0) /* Enter new password */ - { - _copy_chars_from_sp_entries(ad, collection1); - - ret = setting_password_main_check_simple_password(collection1); - if(ret < 0) - { - setting_password_main_draw_simple_password(ad, 1); - return SETTING_RETURN_FAIL; - } - (*step)++; - setting_password_main_draw_next_simple_password(ad, 2); - } - else if(*step == 1) /* Enter password again */ - { - _copy_chars_from_sp_entries(ad, collection2); - - ret = setting_password_main_check_simple_password(collection2); - if(ret < 0) - { - setting_password_main_draw_simple_password(ad, 2); - return SETTING_RETURN_FAIL; - } - - SETTING_TRACE_DEBUG("collection_step1 : %s", collection1); - SETTING_TRACE_DEBUG("collection_step2 : %s", collection2); - - /* compare two input passwords : collection_step1, collection_step2 */ - if(safeStrNCmp(collection1, collection2, 4) == 0) - { - ret = setting_password_set_password(ad->cur_pwd, collection1, ad); - FREE(ad->cur_pwd); - - /* Modify Setting Password */ - if (SETTING_RETURN_SUCCESS == ret) { - SETTING_TRACE_DEBUG("success to save new password"); - - /* set vconfkey ON : if fail, try one more time. */ - if(vconf_set_bool(VCONFKEY_SETAPPL_STATE_SIMPLE_PASSWORD_BOOL, 1) < 0) - return SETTING_RETURN_FAIL; - else - SETTING_TRACE_DEBUG("set vconfkey : simple password is ON"); - - /* Display popup */ - setting_password_ug_create_popup_notitle_nobtn(ad, - _("IDS_ST_POP_NEW_PASSWD_SAVED"), TRUE); - - *step = 0; - /* reset static variables */ - memset(collection1, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1); - memset(collection2, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1); - - /* Correct Password. Send Bundle to caller for status change */ - service_h svc; - if (service_create(&svc)) - { - setting_password_main_draw_simple_password(ad, 2); - return SETTING_RETURN_FAIL; - } - - service_add_extra_data(svc, "result", ad->view_type_string); - ug_send_result(ad->ug, svc); - SETTING_TRACE("Send Result : %s\n", ad->view_type_string); - service_destroy(svc); - /* Send destroy request */ - ug_destroy_me(ad->ug); - } - else - { - setting_password_main_draw_simple_password(ad, 2); - return SETTING_RETURN_FAIL; - } - } - else - { - setting_password_main_draw_simple_password(ad, 2); - return SETTING_RETURN_FAIL; - } - } - } - - return SETTING_RETURN_SUCCESS; -} -#endif - -static int _handle_step2(void *data, int *step, char *collection1, char*collection2) -{ - retv_if(data == NULL, SETTING_RETURN_FAIL); - - SettingPasswordUG *ad = (SettingPasswordUG *) data; - int ret = 0; - - if(*step == 0) /* Enter new password */ - { - _copy_chars_from_sp_entries(ad, collection1); - - ret = setting_password_main_check_simple_password(collection1); - if(ret < 0) - { - setting_password_main_draw_simple_password(ad, 1); - return SETTING_RETURN_FAIL; - } - (*step)++; - setting_password_main_draw_next_simple_password(ad, 2); - } - else if(*step == 1) /* Enter password again */ - { - _copy_chars_from_sp_entries(ad, collection2); - - ret = setting_password_main_check_simple_password(collection2); - if(ret < 0) - { - setting_password_main_draw_simple_password(ad, 2); - return SETTING_RETURN_FAIL; - } - - /* compare two input passwords : collection_step1, collection_step2 */ - if(safeStrNCmp(collection1, collection2, 4) == 0) - { -#ifdef SUPPORT_MDM - if((ad->view_type == SETTING_PW_TYPE_MDM_TO_SIMPLE) && (ad->step1_str)) - { - ret = setting_password_set_password(ad->step1_str, collection1, ad); - } - else -#endif - ret = setting_password_set_password(ad->cur_pwd, collection1, ad); - - if (SETTING_RETURN_SUCCESS == ret) - { -#ifdef SUPPORT_MDM - FREE(ad->step1_str); -#endif - - if (0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_PASSWORD")) - { - int err; - int ret; - - ret = setting_set_bool_slp_key(BOOL_SLP_SETTING_POWER_ON_LOCK, - SETTING_ON_OFF_BTN_ON, &err); - retvm_if(ret < 0, SETTING_RETURN_FAIL, "[ERR] setting vconfkey failed."); - } -#ifdef SUPPORT_MDM - else if (0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_MDM_CHANGE_PASSWORD")) - { - int err; - int ret; - - ret = setting_set_bool_slp_key(BOOL_SLP_SETTING_POWER_ON_LOCK, - SETTING_ON_OFF_BTN_ON, &err); - retvm_if(ret < 0, SETTING_RETURN_FAIL, "[ERR] setting vconfkey(phonelock) failed."); - - ret = vconf_set_bool(VCONFKEY_SETAPPL_STATE_SIMPLE_PASSWORD_BOOL, TRUE); - retvm_if(ret < 0, SETTING_RETURN_FAIL, "[ERR] setting vconfkey(simplepassword) failed."); - - mdm_set_password_status(MDM_PASSWORD_CHANGED); - } -#endif - - service_h svc; - if (service_create(&svc)) - return SETTING_RETURN_FAIL; - - service_add_extra_data(svc, "result", ad->view_type_string); - service_add_extra_data(svc, "current", collection1); - ug_send_result(ad->ug, svc); - SETTING_TRACE("Send Result : %s\n", ad->view_type_string); - - service_destroy(svc); - - if(safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_RESET")) - /* Display popup */ - setting_password_ug_create_popup_notitle_nobtn(ad, - _("IDS_ST_POP_NEW_PASSWD_SAVED"), TRUE); - /* Send destroy request */ - ug_destroy_me(ad->ug); - } - else - { -#ifdef SUPPORT_MDM - if(ad->notify) - { - evas_object_del(ad->notify); - ad->notify = NULL; - } -#endif - setting_password_main_draw_simple_password(ad, 1); - } - - *step = 0; - /* reset static variables */ - memset(collection1, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1); - memset(collection2, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1); - } - else - { - setting_password_main_draw_simple_password(ad, 2); - return SETTING_RETURN_FAIL; - } - } - return SETTING_RETURN_SUCCESS; -} - -static int _handle_step3(void *data, int *step, char *collection1, char *collection2, char *collection3) -{ - retv_if(data == NULL, SETTING_RETURN_FAIL); - - SettingPasswordUG *ad = (SettingPasswordUG *) data; - int ret = 0; - int err = 0; - - char svalue[SHA256_DIGEST_LENGTH]; - memset(svalue, 0x0, SHA256_DIGEST_LENGTH); - - if(*step == 0) /* Enter current password */ - { - _copy_chars_from_sp_entries(ad, collection1); - - ret = setting_password_main_check_simple_password(collection1); - if(ret < 0) - { - setting_password_main_draw_simple_password(ad, 3); - return SETTING_RETURN_FAIL; - } - - ret = setting_password_check_password(collection1, NULL, NULL); - if(ret != SETTING_RETURN_SUCCESS) - { - setting_password_main_draw_simple_password(ad, 3); - return SETTING_RETURN_FAIL; - } - (*step)++; - setting_password_main_draw_next_simple_password(ad, 1); - } - else if(*step == 1) /* Enter new password */ - { - _copy_chars_from_sp_entries(ad, collection2); - - ret = setting_password_main_check_simple_password(collection2); - if(ret < 0) - { - setting_password_main_draw_simple_password(ad, 1); - return SETTING_RETURN_FAIL; - } - - (*step)++; - setting_password_main_draw_next_simple_password(ad, 2); - } - else if(*step == 2) /* Enter password again */ - { - _copy_chars_from_sp_entries(ad, collection3); - - ret = setting_password_main_check_simple_password(collection3); - if(ret < 0) - { - setting_password_main_draw_simple_password(ad, 2); - return SETTING_RETURN_FAIL; - } - - /* compare two input passwords : collection_step1, collection_step2 */ - if(safeStrNCmp(collection2, collection3, 4) == 0) - { - ret = setting_password_set_password(collection1, collection2, ad); - /* Modify Setting Password */ - if (SETTING_RETURN_FAIL != ret) { - /* Display popup */ - setting_password_ug_create_popup_notitle_nobtn(ad, - _("IDS_ST_POP_PASSWORD_CHANGED"), TRUE); - } else { - /* Error Msg */ - SETTING_TRACE_DEBUG("%s*** [ERR] setting_set_string_slp_key err=%d ***%s", - SETTING_FONT_RED, err, SETTING_FONT_BLACK); - setting_password_ug_create_popup_notitle_nobtn(ad, - _("IDS_COM_POP_ERROR"), FALSE); - } - } - else - { - setting_password_main_draw_simple_password(ad, 2); - return SETTING_RETURN_FAIL; - } - *step = 0; - /* reset static variables */ - memset(collection1, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1); - memset(collection2, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1); - memset(collection3, 0x00, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1); - - /* Send destroy request */ - ug_destroy_me(ad->ug); - } - return SETTING_RETURN_SUCCESS; -} - -static int setting_password_main_done_simple_password(void *data, int on_locking) -{ - SETTING_TRACE_BEGIN; - retv_if(data == NULL, SETTING_RETURN_FAIL); - - SettingPasswordUG *ad = (SettingPasswordUG *) data; - - static int step = 0; - - static char collection_step1[SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1] = {0,}; - static char collection_step2[SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1] = {0,}; - static char collection_step3[SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH+1] = {0,}; - - switch(ad->view_type) - { - case SETTING_PW_TYPE_SIMPLE_PASSWORD: - SETTING_TRACE_DEBUG("case SIMPLE_PASSWORD"); - return _handle_step1(ad, collection_step1); - break; - case SETTING_PW_TYPE_SET_SIMPLE_PASSWORD: -#ifdef SUPPORT_MDM - case SETTING_PW_TYPE_MDM_TO_SIMPLE: -#endif - SETTING_TRACE_DEBUG("case SET_SIMPLE_PASSWORD"); - return _handle_step2(ad, &step, collection_step1, collection_step2); - break; - case SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD: - SETTING_TRACE_DEBUG("case CHANGE_SIMPLE_PASSWORD"); - return _handle_step3(ad, &step, collection_step1, collection_step2, collection_step3); - break; - default: - break; - } - return SETTING_RETURN_SUCCESS; -} - -static void _sp_changed_cb1(void *data, Evas_Object *obj, void *event_info) -{ - ret_if(data == NULL); - - SettingPasswordUG *ad = (SettingPasswordUG *)data; - - if((ad->sp_entry1 == NULL) || (ad->sp_entry1 != obj) || (ad->sp_entry2 == NULL)) - return; - - if(!elm_entry_is_empty(ad->sp_entry1) && elm_entry_is_empty(ad->sp_entry2)) - { - SETTING_TRACE_DEBUG("entry1 : %s", elm_entry_entry_get(ad->sp_entry1)); - if(safeStrNCmp(elm_entry_entry_get(ad->sp_entry1), "", safeStrLen("")) == 0) - return; - /* focus on next entry */ - elm_object_focus_set(ad->sp_entry2, EINA_TRUE); - elm_entry_entry_set(ad->sp_entry2, ""); - elm_entry_cursor_end_set(ad->sp_entry2); - ad->sp_focused = ad->sp_entry2; - } -} - -static void _sp_changed_cb2(void *data, Evas_Object *obj, void *event_info) -{ - ret_if(data == NULL); - - SettingPasswordUG *ad = (SettingPasswordUG *)data; - - if((ad->sp_entry2 == NULL) || (ad->sp_entry2 != obj) || (ad->sp_entry3 == NULL)) - return; - - if(!elm_entry_is_empty(ad->sp_entry2) && elm_entry_is_empty(ad->sp_entry3)) - { - SETTING_TRACE_DEBUG("entry2 : %s", elm_entry_entry_get(ad->sp_entry2)); - if(safeStrNCmp(elm_entry_entry_get(ad->sp_entry2), "", safeStrLen("")) == 0) - return; - /* focus on next entry */ - elm_object_focus_set(ad->sp_entry3, EINA_TRUE); - elm_entry_entry_set(ad->sp_entry3, ""); - elm_entry_cursor_end_set(ad->sp_entry3); - ad->sp_focused = ad->sp_entry3; - } -} - -static void _sp_changed_cb3(void *data, Evas_Object *obj, void *event_info) -{ - ret_if(data == NULL); - - SettingPasswordUG *ad = (SettingPasswordUG *)data; - - if((ad->sp_entry3 == NULL) || (ad->sp_entry3 != obj) || (ad->sp_entry4 == NULL)) - return; - - if(!elm_entry_is_empty(ad->sp_entry3) && elm_entry_is_empty(ad->sp_entry4)) - { - SETTING_TRACE_DEBUG("entry3 : %s", elm_entry_entry_get(ad->sp_entry3)); - if(safeStrNCmp(elm_entry_entry_get(ad->sp_entry3), "", safeStrLen("")) == 0) - return; - /* focus on next entry */ - elm_object_focus_set(ad->sp_entry4, EINA_TRUE); - elm_entry_entry_set(ad->sp_entry4, ""); - elm_entry_cursor_end_set(ad->sp_entry4); - ad->sp_focused = ad->sp_entry4; - } -} - -static void _sp_changed_cb4(void *data, Evas_Object *obj, void *event_info) -{ - ret_if(data == NULL); - - static int counter = 0; - - SettingPasswordUG *ad = (SettingPasswordUG *)data; - - if((ad->sp_entry4 == NULL) || (ad->sp_entry4 != obj)) - return; - if((ad->sp_entry1 == NULL) || (ad->sp_entry2 == NULL) || (ad->sp_entry3 == NULL)) - return; - - if(strcmp(elm_entry_entry_get(ad->sp_entry4), "") == 0) - { - SETTING_TRACE_DEBUG("this is align text"); - return; - } - if(safeStrNCmp(elm_entry_entry_get(ad->sp_entry4), "", safeStrLen("")) == 0) - return; - - SETTING_TRACE_DEBUG("entry4 : %s", elm_entry_entry_get(ad->sp_entry4)); - /* add this below for removing IMF faster */ - /* need to discuss with IMF or Entry developer more */ - elm_object_focus_set(ad->sp_entry4, EINA_FALSE); - /* end */ - counter++; - - if(counter == ENTRY_CALLBACK_REPEAT_MAX) - { - int ret = 0; - - ret = setting_password_main_done_simple_password(ad, TRUE); - - if(ret == SETTING_RETURN_FAIL) - { - setting_password_ug_display_desc(ad, _("IDS_ST_BODY_INCORRECT_PASSWORD_TRY_AGAIN"), FALSE); - } - else if(ret == SETTING_COMPARE_PW_FAIL) - { - if (0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_RESET") - || 0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_ENTER_LOCK_TYPE")) - { - setting_password_ug_display_desc(ad, _("IDS_ST_BODY_INCORRECT_PASSWORD"), FALSE); - return; - } - - /** @todo setting_password_ug_check_attemps_left */ - setting_int_slp_list item_attempts_left; - setting_str_slp_list item_lock_timestamp; - int attemps_left_max = 5; - - item_attempts_left = INT_SLP_SETTING_PHONE_LOCK_ATTEMPTS_LEFT; - item_lock_timestamp = STR_SLP_SETTING_PHONE_LOCK_TIMESTAMP; - attemps_left_max = PHONE_LOCK_ATTEMPS_MAX; - - int value = -1; - int err = SETTING_RETURN_SUCCESS; - setting_get_int_slp_key(item_attempts_left, &value, &err); - setting_retm_if(err == SETTING_RETURN_FAIL, "[Error] get value of vconf fail."); - - value--; - - if (value > 0 && value <= attemps_left_max) { - setting_set_int_slp_key(item_attempts_left, value, &err); - setting_retm_if(err == SETTING_RETURN_FAIL, "[Error] set value of vconf fail."); - - char speciliztion[MAX_SPECIALIZITION_LEN] = { 0, }; - char temp[MAX_SPECIALIZITION_LEN] = {0,}; - - if(value > 1) - snprintf(temp, sizeof(temp), "%s. %s.", PW_ERR_DESC, ATTEMPTS_DESC); - else - snprintf(temp, sizeof(temp), "%s. %s.", PW_ERR_DESC, ATTEMPT_DESC); - - snprintf(speciliztion, sizeof(speciliztion), temp, value); - setting_password_ug_display_desc(ad, speciliztion, FALSE); - } else if (value == 0) { - /* store the lock timestamp */ - elm_object_focus_set(ad->sp_entry1, EINA_FALSE); - time_t cur_time = time(NULL); - char cur_timestamp[LOCK_TIMESTAMP_LEN] = { 0, }; - int ret = snprintf(cur_timestamp, sizeof(cur_timestamp), "%ld", cur_time); - ret_if(ret < 0); - - setting_set_string_slp_key(item_lock_timestamp, cur_timestamp, &err); - setting_retm_if(err == SETTING_RETURN_FAIL, - "[Error] set value of vconf fail."); - - setting_set_int_slp_key(item_attempts_left, value, &err); - setting_retm_if(err == SETTING_RETURN_FAIL, - "[Error] set value of vconf fail."); - - ad->disable_item_type = ad->view_type; - - char temp[MAX_SPECIALIZITION_LEN] = {0,}; - snprintf(temp, sizeof(temp), PW_ERR_DELAY_DESC, PW_ERR_DELAY_TIME); - setting_password_ug_create_popup_notitle_nobtn(ad, temp, TRUE); - } - } - else - { - /* if you have more cases, modify here. */ - } - counter = 0; - } - return; -} - -static char *__gl_sp_text_get(void *data, Evas_Object *obj, const char *part) -{ - retv_if(data == NULL, NULL); - SettingPasswordUG *ad = (SettingPasswordUG*)data; - - SETTING_TRACE_DEBUG("[sp_label_get] label intex, %d", ad->sp_title_index); - - if(ad->sp_title_index < SETTING_SP_TITLE_INDEX_START || ad->sp_title_index > SETTING_SP_TITLE_INDEX_MAX) - { - SETTING_TRACE_DEBUG("title index is invalid"); - return NULL; - } - else - { - return strdup(_(sp_titles[ad->sp_title_index])); - } -} - -static Evas_Object* __gl_sp_content_get(void *data, Evas_Object *obj, const char *part) -{ - retv_if(data == NULL, NULL); - SettingPasswordUG *ad = (SettingPasswordUG*)data; - - Evas_Object *entry = NULL; - - static Elm_Entry_Filter_Limit_Size limit_filter_data; - limit_filter_data.max_byte_count = 0; - limit_filter_data.max_char_count = 1; - - entry = elm_entry_add(obj); - elm_entry_password_set(entry, EINA_TRUE); - elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data); - elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_NUMBERONLY); - elm_entry_entry_set(entry, ""); - evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_UP, _sp_back_key_up, ad); - - elm_config_password_show_last_set(EINA_TRUE); - elm_config_password_show_last_timeout_set(0.1); - - if(safeStrCmp("elm.icon.1", part) == 0) - { - SETTING_TRACE_DEBUG("create entry1"); - evas_object_smart_callback_add(entry, "changed", _sp_changed_cb1, ad); - ad->sp_entry1 = entry; - } - else if(safeStrCmp("elm.icon.2", part) == 0) - { - SETTING_TRACE_DEBUG("create entry2"); - evas_object_smart_callback_add(entry, "changed", _sp_changed_cb2, ad); - ad->sp_entry2 = entry; - } - else if(safeStrCmp("elm.icon.3", part) == 0) - { - SETTING_TRACE_DEBUG("create entry3"); - evas_object_smart_callback_add(entry, "changed", _sp_changed_cb3, ad); - ad->sp_entry3 = entry; - } - else if(safeStrCmp("elm.icon.4", part) == 0) - { - SETTING_TRACE_DEBUG("create entry4"); - evas_object_smart_callback_add(entry, "changed", _sp_changed_cb4, ad); - ad->sp_entry4 = entry; - } - - return entry; -} - static int setting_password_main_create(void *cb) { @@ -1081,12 +233,6 @@ setting_password_main_create(void *cb) SettingPasswordUG *ad = (SettingPasswordUG *) cb; int ret = 0; - ad->itc_sp_bg_1icon.item_style = "dialogue/1text.4icon"; - ad->itc_sp_bg_1icon.func.text_get = __gl_sp_text_get; - ad->itc_sp_bg_1icon.func.content_get = __gl_sp_content_get; - ad->itc_sp_bg_1icon.func.state_get = NULL; - ad->itc_sp_bg_1icon.func.del = NULL; - ret = __create_common_password_frame(ad); if(ret < 0) @@ -1109,28 +255,6 @@ static int setting_password_main_destroy(void *cb) ecore_timer_del(ad->remove_timer); ad->remove_timer = NULL; } -#ifdef SUPPORT_MDM - if(ad->set_history_timer) - { - ecore_timer_del(ad->set_history_timer); - ad->set_history_timer = NULL; - } -#endif - if( (ad->view_type == SETTING_PW_TYPE_SIMPLE_PASSWORD) - || (ad->view_type == SETTING_PW_TYPE_SET_SIMPLE_PASSWORD) - || (ad->view_type == SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD)) - { - evas_object_event_callback_del(ad->sp_entry1, EVAS_CALLBACK_KEY_UP, _sp_back_key_up); - evas_object_event_callback_del(ad->sp_entry2, EVAS_CALLBACK_KEY_UP, _sp_back_key_up); - evas_object_event_callback_del(ad->sp_entry3, EVAS_CALLBACK_KEY_UP, _sp_back_key_up); - evas_object_event_callback_del(ad->sp_entry4, EVAS_CALLBACK_KEY_UP, _sp_back_key_up); - } -#ifdef SUPPORT_MDM - if(ad->step1_str) - FREE(ad->step1_str); -#endif - if(ad->cur_pwd) - FREE(ad->cur_pwd); if (ad->ly_main != NULL) { evas_object_del(ad->ly_main); @@ -1185,24 +309,15 @@ static int setting_password_main_create_ui(void *data) SETTING_TRACE_DEBUG("ad->view_type=%d ***", ad->view_type); switch (ad->view_type) { - case SETTING_PW_TYPE_PASSWORD: case SETTING_PW_TYPE_SIM_LOCK_OFF: case SETTING_PW_TYPE_PIN_LOCK_ON: case SETTING_PW_TYPE_PIN_LOCK_OFF: -#ifdef SUPPORT_MDM - case SETTING_PW_TYPE_MDM_CHANGE_PASSWORD: -#endif setting_password_main_draw_1line_password(ad, NULL); break; case SETTING_PW_TYPE_SIM_LOCK_ON: - case SETTING_PW_TYPE_SET_PASSWORD: -#ifdef SUPPORT_MDM - case SETTING_PW_TYPE_MDM_NEW_POLICY: -#endif setting_password_main_draw_2line_password(ad, NULL); break; - case SETTING_PW_TYPE_CHANGE_PASSWORD: case SETTING_PW_TYPE_CHANGE_PIN1: case SETTING_PW_TYPE_CHANGE_PIN2: case SETTING_PW_TYPE_PIN1_BLOCKED: @@ -1210,19 +325,6 @@ static int setting_password_main_create_ui(void *data) setting_password_main_draw_3line_password(ad, NULL); break; - case SETTING_PW_TYPE_SET_SIMPLE_PASSWORD: -#ifdef SUPPORT_MDM - case SETTING_PW_TYPE_MDM_TO_SIMPLE: -#endif - setting_password_main_draw_simple_password(ad, 1); - - break; - - case SETTING_PW_TYPE_SIMPLE_PASSWORD: - case SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD: - setting_password_main_draw_simple_password(ad, 3); - break; - default: SETTING_TRACE_DEBUG("%s*** Unknown Password Type. ***%s", SETTING_FONT_BGREEN, SETTING_FONT_BLACK); @@ -1299,22 +401,6 @@ setting_password_main_entry_changed_cb(void *data, Evas_Object *obj, } -static Eina_Bool __focus_sp_on_idler(void *data) -{ - /* error check */ - retv_if(data == NULL, FALSE); - - SettingPasswordUG *ad = (SettingPasswordUG *) data; - - if(ad->sp_entry1) - { - elm_object_focus_set(ad->sp_entry1, EINA_TRUE); - ad->sp_focused = ad->sp_entry1; - } - - return ECORE_CALLBACK_CANCEL; -} - static Eina_Bool __focus_on_idler(void *data) { /* error check */ @@ -1328,68 +414,10 @@ static Eina_Bool __focus_on_idler(void *data) { /* no matter how many edifileds, it only need focus on 1st editfiled */ elm_object_focus_set(ad->ed_pw1->eo_check, EINA_TRUE); - } - } - - return ECORE_CALLBACK_CANCEL; -} - - -static int setting_password_main_draw_next_simple_password(void *data, int title_index) -{ - /* error check */ - retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER, - "[Setting > Password] Data parameter is NULL"); - - SettingPasswordUG *ad = (SettingPasswordUG *) data; - - setting_password_main_draw_simple_password(ad, title_index); - - return SETTING_RETURN_SUCCESS; -} - -static int setting_password_main_draw_simple_password(void *data, int title_index) -{ - /* error check */ - retvm_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER, - "[Setting > Password] Data parameter is NULL"); - - SettingPasswordUG *ad = (SettingPasswordUG *) data; - - switch (ad->view_type) { - case SETTING_PW_TYPE_SIMPLE_PASSWORD: - case SETTING_PW_TYPE_SET_SIMPLE_PASSWORD: - case SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD: -#ifdef SUPPORT_MDM - case SETTING_PW_TYPE_MDM_TO_SIMPLE: -#endif - ad->sp_title_index = title_index; - - if(ad->sp_item != NULL) - { - elm_genlist_item_update(ad->sp_item); - } - else - { - elm_genlist_clear(ad->scroller); - ad->sp_item = elm_genlist_item_append(ad->scroller, &(ad->itc_sp_bg_1icon), ad, NULL, - ELM_GENLIST_ITEM_NONE, NULL, NULL); - } -#ifdef SUPPORT_MDM - if(ad->view_type == SETTING_PW_TYPE_MDM_TO_SIMPLE) - { - if(ad->is_expired == SETTING_PW_STATUS_EXPIRED) - setting_password_ug_display_mdm_desc(ad, PASSWORD_EXPIRED); - else - setting_password_ug_display_mdm_desc(ad, NEW_PASSWORD_NECESSARY); - } -#endif - - ecore_idler_add(__focus_sp_on_idler, ad); - default: - break; + } } - return 0; + + return ECORE_CALLBACK_CANCEL; } static int setting_password_main_draw_1line_password(void *data, void *cb) @@ -1401,42 +429,6 @@ static int setting_password_main_draw_1line_password(void *data, void *cb) SettingPasswordUG *ad = (SettingPasswordUG *) data; switch (ad->view_type) { - case SETTING_PW_TYPE_PASSWORD: -#ifdef SUPPORT_MDM - case SETTING_PW_TYPE_MDM_CHANGE_PASSWORD: -#endif - ad->ed_pw1 = - setting_create_Gendial_field_entry(ad->scroller, - & - (ad->itc_variable_height), - NULL, ad, - SWALLOW_Type_LAYOUT_ENTRY, - NULL, NULL, 0, - "IDS_COM_BODY_PASSWORD", - NULL, - setting_password_main_entry_changed_cb, - ELM_INPUT_PANEL_LAYOUT_NORMAL, - TRUE, TRUE, - SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH, - 0, NULL, NULL); - break; - case SETTING_PW_TYPE_SIM_LOCK_OFF: - ad->ed_pw1 = - setting_create_Gendial_field_entry(ad->scroller, - & - (ad->itc_variable_height), - NULL, ad, - SWALLOW_Type_LAYOUT_ENTRY, - NULL, NULL, 0, - "IDS_ST_BODY_SIM_PASSWORD", - NULL, - setting_password_main_entry_changed_cb, - ELM_INPUT_PANEL_LAYOUT_NUMBERONLY, - TRUE, TRUE, - SETTING_PW_UG_SIM_MAX_LENGTH, - 0, "0123456789", NULL); - break; - case SETTING_PW_TYPE_PIN_LOCK_ON: case SETTING_PW_TYPE_PIN_LOCK_OFF: ad->ed_pw1 = @@ -1487,55 +479,6 @@ static int setting_password_main_draw_2line_password(void *data, void *cb) SettingPasswordUG *ad = (SettingPasswordUG *) data; switch (ad->view_type) { - case SETTING_PW_TYPE_SET_PASSWORD: -#ifdef SUPPORT_MDM - case SETTING_PW_TYPE_MDM_NEW_POLICY: -#endif - ad->ed_pw1 = - setting_create_Gendial_field_entry(ad->scroller, - & - (ad->itc_variable_height), - NULL, ad, - SWALLOW_Type_LAYOUT_ENTRY, - NULL, NULL, 0, - PW_SHORT_GUIDE_NEW, - NULL, - setting_password_main_entry_changed_cb, - ELM_INPUT_PANEL_LAYOUT_NORMAL, - TRUE, TRUE, - SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH, - 0, NULL, NULL); - - ad->ed_pw2 = - setting_create_Gendial_field_entry(ad->scroller, - & - (ad->itc_variable_height), - NULL, ad, - SWALLOW_Type_LAYOUT_ENTRY, - NULL, NULL, 0, - PW_SHORT_GUIDE_CONFIRM, - NULL, - setting_password_main_entry_changed_cb, - ELM_INPUT_PANEL_LAYOUT_NORMAL, - TRUE, FALSE, - SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH, - 0, NULL, NULL); -#ifdef SUPPORT_MDM - if(ad->view_type == SETTING_PW_TYPE_MDM_NEW_POLICY) - { - if(ad->is_expired == SETTING_PW_STATUS_EXPIRED) - { - setting_password_ug_display_mdm_desc(ad, PASSWORD_EXPIRED); - } - else - { - setting_password_ug_display_mdm_desc(ad, NEW_PASSWORD_NECESSARY); - } - } - -#endif - break; - case SETTING_PW_TYPE_SIM_LOCK_ON: ad->ed_pw1 = setting_create_Gendial_field_entry(ad->scroller, @@ -1607,65 +550,8 @@ static int setting_password_main_draw_3line_password(void *data, void *cb) "[Setting > Password] Data parameter is NULL"); SettingPasswordUG *ad = (SettingPasswordUG *) data; - Elm_Input_Panel_Layout ime_style = ELM_INPUT_PANEL_LAYOUT_NORMAL; switch (ad->view_type) { - case SETTING_PW_TYPE_CHANGE_PASSWORD: - ad->ed_pw1 = - setting_create_Gendial_field_entry(ad->scroller, - & - (ad->itc_variable_height), - NULL, ad, - SWALLOW_Type_LAYOUT_ENTRY, - NULL, NULL, 0, - "IDS_ST_BODY_CURRENT_PASSWORD", - NULL, - setting_password_main_entry_changed_cb, - ime_style, - TRUE, TRUE, - SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH, - 0, NULL, NULL); - - ad->ed_pw2 = - setting_create_Gendial_field_entry(ad->scroller, - & - (ad->itc_variable_height), - NULL, ad, - SWALLOW_Type_LAYOUT_ENTRY, - NULL, NULL, 0, - "IDS_ST_BODY_NEW_PASSWORD", - NULL, - setting_password_main_entry_changed_cb, - ime_style, - TRUE, FALSE, - SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH, - 0, NULL, NULL); - - ad->ed_pw3 = - setting_create_Gendial_field_entry(ad->scroller, - & - (ad->itc_variable_height), - NULL, ad, - SWALLOW_Type_LAYOUT_ENTRY, - NULL, NULL, 0, - "IDS_ST_BODY_CONFIRM_PASSWORD", - NULL, - setting_password_main_entry_changed_cb, - ime_style, - TRUE, FALSE, - SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH, - 0, NULL, NULL); -#ifdef SUPPORT_MDM - if(ad->mdm_data != NULL) - { - ad->mdm_policy = (mdm_password_policy_t*)(ad->mdm_data->data); - - if(ad->mdm_policy->quality != MDM_PASSWORD_QUALITY_UNSPECIFIED) - elm_genlist_item_append(ad->scroller, &(ad->itc_mdm_desc), ad, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); - } -#endif - break; - case SETTING_PW_TYPE_CHANGE_PIN1: ad->ed_pw1 = setting_create_Gendial_field_entry(ad->scroller, @@ -1888,336 +774,55 @@ static int setting_password_main_clear_3line_password(void *data) ad->ed_pw3->isFocusFlag = FALSE; elm_entry_entry_set(ad->ed_pw3->eo_check, ""); layout = elm_object_parent_widget_get(ad->ed_pw3->eo_check); - elm_object_part_text_set(layout, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT")); - return 0; -} - -static int setting_password_main_check_simple_password(const char *collection) -{ - retv_if(collection == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER); - - int sp_len = safeStrLen(collection); - int index = 0; - char temp; - - SETTING_TRACE_DEBUG("collection length is %d", sp_len); - - if(sp_len != 4) - return SETTING_RETURN_FAIL; - - /* check if digit. */ - for(index = 0; index < sp_len; index++) - { - temp = (char)(collection[index]); - if((temp < '0') || ( temp > '9')) - return SETTING_RETURN_FAIL; - else - SETTING_TRACE_DEBUG("temp %c", temp); - } - - return SETTING_RETURN_SUCCESS; -} - -static int setting_password_main_check_1line_password(void *data) -{ - /* error check */ - retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER); - - SettingPasswordUG *ad = (SettingPasswordUG *) data; - - const char *entry_str = ad->ed_pw1->sub_desc; - ad->focus_data = ad->ed_pw1; - - /* Empty Check */ - if (isEmptyStr(entry_str)) { -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, - _("IDS_ST_BODY_PASSWORD_EMPTY"), - FALSE); -#else - setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE); - -#endif - return SETTING_ENTRY_RETURN_NULL_STR_ERR; - } - - /* Length Check */ - int entry_str_len = safeStrLen(entry_str); - switch (ad->view_type) { - case SETTING_PW_TYPE_PASSWORD: - { - if (entry_str_len < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH - || entry_str_len > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH) - { - setting_password_main_warning_entry_added_byte_popup(ad, - SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH, SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH); - return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW; - } -#ifdef SUPPORT_MDM - int letter = 0; - int digit = 0; - int symbol = 0; - - if( _count_string(entry_str, &letter, &digit, &symbol) == SETTING_RETURN_SUCCESS) - { - if(letter < 1) - return SETTING_PW_ERROR_INCLUDE_NO_LETTER; - } -#endif - } - break; - case SETTING_PW_TYPE_PIN_LOCK_ON: - case SETTING_PW_TYPE_PIN_LOCK_OFF: - { - if (entry_str_len < SETTING_PW_UG_PIN_MIN_LENGTH - || entry_str_len > SETTING_PW_UG_PIN_MAX_LENGTH) { - setting_password_main_warning_entry_added_byte_popup - (ad, SETTING_PW_UG_PIN_MIN_LENGTH, SETTING_PW_UG_PIN_MAX_LENGTH); - return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW; - } - } - break; - case SETTING_PW_TYPE_SIM_LOCK_OFF: - { - if (entry_str_len < SETTING_PW_UG_SIM_MIN_LENGTH - || entry_str_len > SETTING_PW_UG_SIM_MAX_LENGTH) { - setting_password_main_warning_entry_added_byte_popup - (ad, SETTING_PW_UG_SIM_MIN_LENGTH, SETTING_PW_UG_SIM_MAX_LENGTH); - return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW; - } - } - default: - break; - } - return SETTING_RETURN_SUCCESS; -} - -#ifdef SUPPORT_MDM -int _count_string(const char *str, int *cnt_letter, int *cnt_digit, int *cnt_sym) -{ - SETTING_TRACE_BEGIN; - retv_if(str == NULL || cnt_letter == NULL || cnt_digit == NULL || cnt_sym == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER); - - int length = strlen(str); - int index = 0; - char temp = 0; - int letter = 0; - int digit = 0; - int symbol = 0; - - if(length <= 0) - { - SETTING_TRACE_DEBUG("[DEBUG] invalid input length"); - return SETTING_RETURN_FAIL; - } - - for(index = 0; index < length; index++) - { - temp = (char)(str[index]); - SETTING_TRACE_DEBUG("temp %c", temp); - - if((temp >= '0') && (temp <= '9')) /* digit */ - { - digit++; - } - else if((temp >= 'a') && (temp <= 'z')) /* lower letter */ - { - letter++; - } - else if((temp >= 'A') && (temp <= 'Z')) /* upper letter */ - { - letter++; - } - else if((temp >= ' ') && (temp <= '~')) /* symbol means special char that enables to input from IME. */ - { - symbol++; - } - } - SETTING_TRACE_DEBUG("%s includes %d letters, %d digits, and %d symbols", str, letter, digit, symbol); - *cnt_letter = letter; - *cnt_digit = digit; - *cnt_sym = symbol; - return SETTING_RETURN_SUCCESS; -} - -int _check_min_length(int str_length, int min_length) -{ - /* if min_length is 0~3, it operates the same as 4. */ - if((min_length < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH) - && (str_length < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH)) - { - return SETTING_RETURN_FAIL; - } - else if(min_length < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH) - { - /* do nothing */ - } - else if((min_length > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH) - || (str_length > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH)) - { - return SETTING_RETURN_FAIL; - } - else if(min_length > str_length) - { - return SETTING_RETURN_FAIL; - } - - return SETTING_RETURN_SUCCESS; -} - -int _check_min_complex(int min_complex, int digit, int symbol) -{ - switch(min_complex) - { - case 0: - case 1: - if(digit < 1) - { - SETTING_TRACE_DEBUG("[ERROR] should include 1 digit at list."); - return SETTING_RETURN_FAIL; - } - break; - case 2: - if((digit < 1) || (symbol < 1)) - { - SETTING_TRACE_DEBUG("[ERROR] should include 1 digit and 1 symbol at list."); - return SETTING_RETURN_FAIL; - } - break; - case 3: - if((digit >= 1) && (symbol >= 2)) - { - /* do nothing */ - } - else if((digit >= 2) && (symbol >= 1)) - { - /* do nothing */ - } - else - { - SETTING_TRACE_DEBUG("[ERROR] digits or symbols are not enough."); - return SETTING_RETURN_FAIL; - } - break; - case 4: - if((digit >= 1) && (symbol >= 3)) - { - /* do nothing */ - } - else if((digit >= 3) && (symbol >= 1)) - { - /* do nothing */ - } - else if((digit >= 2) && (symbol >= 2)) - { - /* do nothing */ - } - else - { - SETTING_TRACE_DEBUG("[ERROR] digits or symbols are not enough."); - return SETTING_RETURN_FAIL; - } - break; - default: - SETTING_TRACE_DEBUG("unknown value of min_complex, %d", min_complex); - } - return SETTING_RETURN_SUCCESS; -} - -int _is_numeric(const char *str) -{ - SETTING_TRACE_BEGIN; - int length = strlen(str); - int index = 0; - char temp = 0; - - if(length <= 0) - { - SETTING_TRACE_DEBUG("[DEBUG] invalid input length"); - return SETTING_RETURN_FAIL; - } - for(index = 0; index < length; index++) - { - temp = (char)(str[index]); - if((temp < '0') || ( temp > '9')) - { - SETTING_TRACE_DEBUG("[DEBUG] %c is not a digit", temp); - return SETTING_RETURN_FAIL; - } - else - SETTING_TRACE_DEBUG("temp %c", temp); - } - return SETTING_RETURN_SUCCESS; + elm_object_part_text_set(layout, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT")); + return 0; } -static int setting_password_main_match_with_mdm_policy(const char* input, mdm_password_policy_t *policy) +static int setting_password_main_check_1line_password(void *data) { - retv_if(input == NULL || policy == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER); - - int letter = 0; - int digit = 0; - int symbol = 0; - int length = strlen(input); - int ret = 0; + /* error check */ + retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER); - if(_count_string(input, &letter, &digit, &symbol) != SETTING_RETURN_SUCCESS) - return SETTING_RETURN_FAIL; + SettingPasswordUG *ad = (SettingPasswordUG *) data; - if(letter < 1) /* should include 1 letter at least. */ - return SETTING_PW_ERROR_INCLUDE_NO_LETTER; + const char *entry_str = ad->ed_pw1->sub_desc; + ad->focus_data = ad->ed_pw1; - ret = _check_min_length(length, policy->min_length); - if(ret != SETTING_RETURN_SUCCESS) - { - SETTING_TRACE_DEBUG("[ERROR] _check_min_length(): invalid return %d", ret); - return SETTING_PW_ERROR_INVALID_LENGTH; - } + /* Empty Check */ + if (isEmptyStr(entry_str)) { + setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE); - if(policy->quality == MDM_PASSWORD_QUALITY_ALPHANUMERIC) - { - ret = _check_min_complex(policy->min_complex, digit, symbol); - if(ret != SETTING_RETURN_SUCCESS) - { - SETTING_TRACE_DEBUG("[ERROR] _check_min_complex(): invalid return %d", ret); - return SETTING_PW_ERROR_NO_MATCH_MIN_COMPLEX; - } + return SETTING_ENTRY_RETURN_NULL_STR_ERR; } - // check pattern - int cflags = REG_EXTENDED; - int eflags = 0; - int match_len = 0; - regex_t reg; - regmatch_t pmatch; - - if((policy->pattern != NULL) && (strlen(policy->pattern) > 0)) - { - ret = regcomp(®, policy->pattern, cflags); - if(ret != 0) - { - SETTING_TRACE_DEBUG("[DEBUG] fail to compile pattern"); - return SETTING_RETURN_FAIL; - } - ret = regexec(®, policy->pattern, 1, &pmatch, eflags); - if(ret != 0) + /* Length Check */ + int entry_str_len = safeStrLen(entry_str); + switch (ad->view_type) { + case SETTING_PW_TYPE_PIN_LOCK_ON: + case SETTING_PW_TYPE_PIN_LOCK_OFF: { - SETTING_TRACE_DEBUG("[DEBUG] input does not match with pattern"); - return SETTING_RETURN_FAIL; + if (entry_str_len < SETTING_PW_UG_PIN_MIN_LENGTH + || entry_str_len > SETTING_PW_UG_PIN_MAX_LENGTH) { + setting_password_main_warning_entry_added_byte_popup + (ad, SETTING_PW_UG_PIN_MIN_LENGTH, SETTING_PW_UG_PIN_MAX_LENGTH); + return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW; + } } - match_len = pmatch.rm_eo - pmatch.rm_so; - if((pmatch.rm_so != 0) || (match_len != strlen(policy->pattern))) + break; + case SETTING_PW_TYPE_SIM_LOCK_OFF: { - SETTING_TRACE_DEBUG("[DEBUG] input does not match with pattern"); - return SETTING_RETURN_FAIL; + if (entry_str_len < SETTING_PW_UG_SIM_MIN_LENGTH + || entry_str_len > SETTING_PW_UG_SIM_MAX_LENGTH) { + setting_password_main_warning_entry_added_byte_popup + (ad, SETTING_PW_UG_SIM_MIN_LENGTH, SETTING_PW_UG_SIM_MAX_LENGTH); + return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW; + } } - regfree(®); + default: + break; } - - // 3. no need to check max_num_wipe, expire time, and history count - return SETTING_RETURN_SUCCESS; } -#endif static int setting_password_main_check_2line_password(void *data) { @@ -2232,39 +837,21 @@ static int setting_password_main_check_2line_password(void *data) /* Empty Check */ if (isEmptyStr(entry_str1)) { -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE); -#else setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE); -#endif + return SETTING_ENTRY_RETURN_NULL_STR_ERR; } if (isEmptyStr(entry_str2)) { ad->focus_data = ad->ed_pw2; -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE); -#else setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE); -#endif + return SETTING_ENTRY_RETURN_NULL_STR_ERR; } /* Length Check */ int entry_str_len = safeStrLen(entry_str1); switch (ad->view_type) { - case SETTING_PW_TYPE_SET_PASSWORD: - { - if (entry_str_len < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH - || entry_str_len > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH) - { - setting_password_main_warning_entry_added_byte_popup - (ad, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH, SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH); - return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW; - } - } - break; - case SETTING_PW_TYPE_SIM_LOCK_ON: { if (entry_str_len < SETTING_PW_UG_SIM_MIN_LENGTH @@ -2281,38 +868,11 @@ static int setting_password_main_check_2line_password(void *data) /* Match Check */ if (0 != safeStrCmp(entry_str1, entry_str2)) { -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_PASSWORDS_DO_NOT_MATCH"), FALSE); -#else setting_password_ug_display_desc(ad, _("IDS_ST_POP_PASSWORDS_DO_NOT_MATCH"), FALSE); -#endif - return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW; - } - -#ifdef SUPPORT_MDM - if(ad->view_type == SETTING_PW_TYPE_SET_PASSWORD) - { - int letter = 0; - int digit = 0; - int symbol = 0; - if( _count_string(entry_str1, &letter, &digit, &symbol) == SETTING_RETURN_SUCCESS) - { - if(letter < 1) - return SETTING_PW_ERROR_INCLUDE_NO_LETTER; - } + return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW; } -#endif -#ifdef SUPPORT_MDM - if(ad->view_type == SETTING_PW_TYPE_MDM_NEW_POLICY) - { - int ret = 0; - ret = setting_password_main_match_with_mdm_policy(entry_str1, ad->mdm_policy); - if(ret == SETTING_RETURN_FAIL) - return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW; - } -#endif return SETTING_RETURN_SUCCESS; } @@ -2324,12 +884,8 @@ setting_password_main_warning_entry_added_byte_popup(SettingPasswordUG *ad, snprintf(str, MAX_SPECIALIZITION_LEN, "%d~%d %s", min, max, _("characters required")); - /* SETTING_TRACE("str:%s", str); */ -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, str, FALSE); -#else setting_password_ug_display_desc(ad, str, FALSE); -#endif + } static int setting_password_main_check_3line_password(void *data) @@ -2346,31 +902,22 @@ static int setting_password_main_check_3line_password(void *data) /* Empty Check */ if (isEmptyStr(entry_str1)) { -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE); -#else setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE); -#endif + return SETTING_ENTRY_RETURN_NULL_STR_ERR; } if (isEmptyStr(entry_str2)) { ad->focus_data = ad->ed_pw2; -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE); -#else setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE); -#endif + return SETTING_ENTRY_RETURN_NULL_STR_ERR; } if (isEmptyStr(entry_str3)) { ad->focus_data = ad->ed_pw3; -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE); -#else setting_password_ug_display_desc(ad, _("IDS_ST_BODY_PASSWORD_EMPTY"), FALSE); -#endif + return SETTING_ENTRY_RETURN_NULL_STR_ERR; } @@ -2379,31 +926,6 @@ static int setting_password_main_check_3line_password(void *data) int entry_str2_len = safeStrLen(entry_str2); int entry_str3_len = safeStrLen(entry_str3); switch (ad->view_type) { - case SETTING_PW_TYPE_CHANGE_PASSWORD: - { - if (entry_str1_len < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH - || entry_str1_len > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH) { - setting_password_main_warning_entry_added_byte_popup - (ad, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH, SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH); - return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW; - } - if (entry_str2_len < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH - || entry_str2_len > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH) { - ad->focus_data = ad->ed_pw2; - setting_password_main_warning_entry_added_byte_popup - (ad, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH, SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH); - return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW; - } - if (entry_str3_len < SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH - || entry_str3_len > SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH) { - ad->focus_data = ad->ed_pw3; - setting_password_main_warning_entry_added_byte_popup - (ad, SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH, SETTING_PW_UG_NORMAL_PASSWORD_MAX_LENGTH); - return SETTING_ENTRY_REQUIRED_CORRECT_DIGIT_PW; - } - } - break; - case SETTING_PW_TYPE_PIN1_BLOCKED: case SETTING_PW_TYPE_PIN2_BLOCKED: case SETTING_PW_TYPE_CHANGE_PIN1: @@ -2438,28 +960,10 @@ static int setting_password_main_check_3line_password(void *data) /* Match Check */ if (0 != safeStrCmp(entry_str2, entry_str3)) { ad->focus_data = ad->ed_pw2; -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_PASSWORDS_DO_NOT_MATCH"), FALSE); -#else setting_password_ug_display_desc(ad, _("IDS_ST_POP_PASSWORDS_DO_NOT_MATCH"), FALSE); -#endif - return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW; - } - -#ifdef SUPPORT_MDM - if(ad->view_type == SETTING_PW_TYPE_CHANGE_PASSWORD) - { - int letter = 0; - int digit = 0; - int symbol = 0; - if( _count_string(entry_str2, &letter, &digit, &symbol) == SETTING_RETURN_SUCCESS) - { - if(letter < 1) - return SETTING_PW_ERROR_INCLUDE_NO_LETTER; - } + return SETTING_ENTRY_NOT_MATCH_NEW_CONF_PW; } -#endif return SETTING_RETURN_SUCCESS; } @@ -2473,14 +977,6 @@ setting_password_main_click_softkey_cancel_cb(void *data, Evas_Object *obj, SettingPasswordUG *ad = (SettingPasswordUG *) data; - if(ad->sp_entry4) - { - /* add this below for removing IMF faster */ - /* need to discuss with IMF or Entry developer more */ - elm_object_focus_set(ad->sp_entry4, EINA_FALSE); - /* end */ - } - /* send result : Cancel */ service_h svc; if(service_create(&svc)) @@ -2518,335 +1014,6 @@ setting_password_main_click_softkey_done_cb(void *data, Evas_Object *obj, SETTING_TRACE("ad->view_type:%d", ad->view_type); switch (ad->view_type) { - case SETTING_PW_TYPE_PASSWORD: - ret = setting_password_main_check_1line_password(ad); - - if (ret == SETTING_RETURN_SUCCESS) { - const char *entry_str; - entry_str = ad->ed_pw1->sub_desc; - - ret = setting_password_check_password(entry_str, NULL, NULL); - if(ret == SETTING_RETURN_SUCCESS) - { - int err; - - if(safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_PASSWORD") == 0) { - - /* reset VCONF */ - setting_set_int_slp_key(INT_SLP_SETTING_PHONE_LOCK_ATTEMPTS_LEFT, - PHONE_LOCK_ATTEMPS_MAX, &err); - setting_retm_if(err == SETTING_RETURN_FAIL, "[Error] set value of vconf fail."); - } - else if(0 == safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_ENTER_LOCK_TYPE")) - { - service_add_extra_data(svc, "current", entry_str); - } - } else { - /* Incorrect Password. Display Popup. */ - setting_password_main_clear_1line_password(ad); - ad->focus_data = ad->ed_pw1; - if (safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_PASSWORD") == 0) { - setting_password_ug_check_attemps_left(ad); - return; - } -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, - _("IDS_COM_POP_INCORRECT_PASSWORD"), FALSE); -#else - setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE); -#endif - if(safeStrCmp(ad->view_type_string, "SETTING_PW_TYPE_RESET") == 0) - { - service_add_extra_data(svc, "result", "Fail"); - ug_send_result(ad->ug, svc); - SETTING_TRACE("Send Result : %s\n", "Fail"); - - service_destroy(svc); - /* Send destroy request */ - ug_destroy_me(ad->ug); - } - return; - } - } else { - setting_password_main_clear_1line_password(ad); - return; - } - break; - -#ifdef SUPPORT_MDM - case SETTING_PW_TYPE_MDM_NEW_POLICY: - SETTING_TRACE("case SETTING_PW_TYPE_MDM_NEW_POLICY"); - ret = setting_password_main_check_2line_password(ad); - - if (SETTING_RETURN_SUCCESS == ret) - { - const char *entry_str; - entry_str = ad->ed_pw1->sub_desc; - - if (isEmptyStr(entry_str)) { - ad->focus_data = ad->ed_pw1; - SETTING_TRACE_DEBUG("%s*** [ERR] elm_entry_entry_get return NULL ***%s", - SETTING_FONT_RED, SETTING_FONT_BLACK); - return; - } - - if(ad->step1_str) - ret = setting_password_set_password(ad->step1_str, entry_str, ad); - else - ret = setting_password_set_password(NULL, entry_str, ad); - - if(ret == SETTING_RETURN_SUCCESS) - { - FREE(ad->step1_str); - - SETTING_TRACE_DEBUG("[DEBUG] success to set password"); - - /* To Do : 1. phone lock on */ - /* 2. if quality is something, simple password on.*/ - /* 3. else, simple password off */ - setting_set_bool_slp_key(BOOL_SLP_SETTING_POWER_ON_LOCK, - SETTING_ON_OFF_BTN_ON, &err); - setting_retm_if(err == SETTING_RETURN_FAIL, "[Error] set value of vconf fail."); - - setting_set_int_slp_key(INT_SLP_SETTING_PHONE_LOCK_ATTEMPTS_LEFT, - ad->mdm_policy->max_num_wipe, &err); - setting_retm_if(err == SETTING_RETURN_FAIL, "[Error] set value of vconf fail."); - - vconf_set_bool(VCONFKEY_SETAPPL_STATE_SIMPLE_PASSWORD_BOOL, FALSE); - - /* End */ - - SETTING_TRACE_DEBUG("[DEBUG] send status to mdm"); - mdm_set_password_status(MDM_PASSWORD_CHANGED); - setting_password_ug_create_popup_notitle_nobtn(ad, - _("IDS_ST_POP_NEW_PASSWD_SAVED"), TRUE); - } - else if(ret == SECURITY_SERVER_API_ERROR_PASSWORD_REUSED) - { - setting_password_ug_display_mdm_desc(ad, PASSWORD_MUST_NOT_MATCH_PREV); - return; - } - else - { - setting_password_ug_display_mdm_desc(ad, ENTER_ANOTHER_PASSWORD); - setting_password_main_clear_2line_password(ad); - return; - } - } - else - { - setting_password_ug_display_mdm_desc(ad, ENTER_ANOTHER_PASSWORD); - setting_password_main_clear_2line_password(ad); - return; - } - break; -#endif - case SETTING_PW_TYPE_SET_PASSWORD: - { - SETTING_TRACE("case SETTING_PW_TYPE_SET_PASSWORD"); - ret = setting_password_main_check_2line_password(ad); - - if (SETTING_RETURN_SUCCESS == ret) { - const char *entry_str; - entry_str = ad->ed_pw1->sub_desc; - - if (isEmptyStr(entry_str)) { - ad->focus_data = ad->ed_pw1; - SETTING_TRACE_DEBUG("%s*** [ERR] elm_entry_entry_get return NULL ***%s", - SETTING_FONT_RED, SETTING_FONT_BLACK); - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE); - return; - } - - ret = setting_password_set_password(ad->cur_pwd, entry_str,ad); - - /* Modify Setting Password */ - if (SETTING_RETURN_FAIL != ret) { - /* Display popup */ - service_add_extra_data(svc, "current", entry_str); - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_NEW_PASSWD_SAVED"), TRUE); - } else { - ad->focus_data = ad->ed_pw1; - /* Error Msg */ - SETTING_TRACE_DEBUG("%s*** [ERR] setting_set_string_slp_key err=%d ***%s", - SETTING_FONT_RED, err, SETTING_FONT_BLACK); - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE); - return; - } - } else { - setting_password_main_clear_2line_password(ad); - return; - } - } - break; -#ifdef SUPPORT_MDM - case SETTING_PW_TYPE_MDM_CHANGE_PASSWORD: - { - SETTING_TRACE_DEBUG("case MDM_CHANGE_PASSWORD_STEP1"); - ad->step1_str = strdup(ad->ed_pw1->sub_desc); - SETTING_TRACE_DEBUG("step1_str : %s", ad->step1_str); - - unsigned int remain_attempt = ATTEMPT_INFINITE; - unsigned int valid_seconds = 0; - char guide_text[DESC_BUF1_SIZE] = {0,}; - - if(ad->step1_str == NULL) - { - SETTING_TRACE_DEBUG("step1_str is NULL"); - } - else - { - ret = setting_password_check_password(ad->step1_str, &remain_attempt, &valid_seconds); - // check current password - if(ret != SETTING_RETURN_SUCCESS){ - setting_password_main_clear_1line_password(ad); - ad->focus_data = ad->ed_pw1; - FREE(ad->step1_str); - - if(valid_seconds == 0) - { - mdm_set_password_status(MDM_PASSWORD_EXPIRED); - setting_password_ug_display_mdm_desc(ad, PASSWORD_EXPIRED); - return; - } - - if((remain_attempt > 0) && (ad->mdm_policy->recoverable == TRUE)) - { - // display guide text. remain_attempt with recovery mode - char temp[DESC_BUF1_SIZE] = {0,}; - snprintf(temp, sizeof(temp), ATTEMPTS_DESC, remain_attempt); - snprintf(guide_text, sizeof(guide_text), "%s. %s.", PW_ERR_DESC, temp); - setting_password_ug_display_mdm_desc(ad, guide_text); - } - else if((remain_attempt > 0) && (ad->mdm_policy->recoverable == FALSE)) - { - // display guide text. remain_attempt with wipe mode - char temp[DESC_BUF1_SIZE] = {0,}; - snprintf(temp, sizeof(temp), ATTEMPTS_DESC, remain_attempt); - snprintf(guide_text, sizeof(guide_text), "%s. %s.", PW_ERR_DESC, temp); - setting_password_ug_display_mdm_desc(ad, guide_text); - } - else if((remain_attempt == 0) && (ad->mdm_policy->recoverable == TRUE)) - { - mdm_set_password_status(MDM_PASSWORD_FAILED); - setting_password_ug_display_mdm_desc(ad, MAX_NUM_REACHED); - } - else if((remain_attempt == 0) && (ad->mdm_policy->recoverable == FALSE)) - { - mdm_set_password_status(MDM_RECOVERY_PASSWORD_FAILED); - setting_password_ug_display_mdm_desc(ad, MAX_NUM_REACHED); - } - return; - } - SETTING_TRACE_DEBUG("Success to check step1_str"); - - elm_genlist_clear(ad->scroller); - if(((ad->mdm_policy->quality == MDM_PASSWORD_QUALITY_SOMETHING) - || (ad->mdm_policy->quality == MDM_PASSWORD_QUALITY_NUMERIC))) - { - if(ad->mdm_policy->min_length <= SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH) - { - ad->view_type = SETTING_PW_TYPE_MDM_TO_SIMPLE; - __create_common_password_frame(ad); - setting_password_main_draw_simple_password(ad, 1); - } - else - { - ad->view_type = SETTING_PW_TYPE_MDM_NEW_POLICY; - setting_password_main_draw_2line_password(ad, NULL); - } - } - else if(ad->mdm_policy->quality == MDM_PASSWORD_QUALITY_UNSPECIFIED) - { - ad->view_type = SETTING_PW_TYPE_MDM_TO_SIMPLE; - __create_common_password_frame(ad); - setting_password_main_draw_simple_password(ad, 1); - } - else - { - ad->view_type = SETTING_PW_TYPE_MDM_NEW_POLICY; - setting_password_main_draw_2line_password(ad, NULL); - } - } - } - break; -#endif - case SETTING_PW_TYPE_CHANGE_PASSWORD: - { - SETTING_TRACE("case SETTING_PW_TYPE_CHANGE_PASSWORD"); - ret = setting_password_main_check_3line_password(ad); - - if (SETTING_RETURN_SUCCESS == ret) { - const char *entry_str; -#if LEGACY - entry_str = ad->ed_pw1->sub_desc; - - ret = setting_password_check_password(entry_str, NULL, NULL); - - if(ret != SETTING_RETURN_SUCCESS){ - setting_password_main_clear_3line_password(ad); - ad->focus_data = ad->ed_pw1; - -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_INCORRECT_PASSWORD"), FALSE); -#else - setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE); -#endif - return; - } -#endif - - entry_str = ad->ed_pw2->sub_desc; - - if (isEmptyStr(entry_str)) { - ad->focus_data = ad->ed_pw2; - SETTING_TRACE_DEBUG("%s*** [ERR] elm_entry_entry_get(pw2) return NULL ***%s", - SETTING_FONT_RED, SETTING_FONT_BLACK); - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE); - return; - } - -#ifdef SUPPORT_MDM - if(ad->mdm_data != NULL) - { - ad->mdm_policy = (mdm_password_policy_t*)(ad->mdm_data->data); - - if(ad->mdm_policy->quality != MDM_PASSWORD_QUALITY_UNSPECIFIED) - { - SETTING_TRACE_DEBUG("checking policy"); - ret = setting_password_main_match_with_mdm_policy(entry_str, ad->mdm_policy); - if(ret != SETTING_RETURN_SUCCESS) - { - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE); - return; - } - } - } -#endif - - ret = setting_password_set_password(ad->ed_pw1->sub_desc, entry_str, ad); - - /* Modify Setting Password */ - if (SETTING_RETURN_FAIL != ret) { - /* Display popup */ - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_PASSWORD_CHANGED"), TRUE); - } else { - ad->focus_data = ad->ed_pw2; - /* Error Msg */ - SETTING_TRACE_DEBUG("%s*** [ERR] setting_set_string_slp_key err=%d ***%s", - SETTING_FONT_RED, err, SETTING_FONT_BLACK); - setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_COM_POP_ERROR"), FALSE); - return; - } - - } else { - setting_password_main_clear_3line_password(ad); - setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE); - return; - } - } - break; - case SETTING_PW_TYPE_PIN_LOCK_ON: { SETTING_TRACE("case SETTING_PW_TYPE_PIN_LOCK_ON"); @@ -3314,7 +1481,7 @@ setting_password_main_click_softkey_done_cb(void *data, Evas_Object *obj, #endif default: - break; + return; } service_add_extra_data(svc, "result", ad->view_type_string); diff --git a/setting-password/src/setting-password.c b/setting-password/src/setting-password.c index 41526db..cdbfb2a 100755 --- a/setting-password/src/setting-password.c +++ b/setting-password/src/setting-password.c @@ -21,23 +21,11 @@ #include #include -#ifdef SUPPORT_MDM -#include -#include -#endif - #ifndef UG_MODULE_API #define UG_MODULE_API __attribute__ ((visibility("default"))) #endif static struct _pw_item pw_its[] = { - { SETTING_PW_TYPE_PASSWORD, "SETTING_PW_TYPE_PASSWORD" }, - { SETTING_PW_TYPE_SET_PASSWORD, "SETTING_PW_TYPE_SET_PASSWORD" }, - { SETTING_PW_TYPE_CHANGE_PASSWORD, "SETTING_PW_TYPE_CHANGE_PASSWORD" }, - { SETTING_PW_TYPE_SIMPLE_PASSWORD, "SETTING_PW_TYPE_SIMPLE_PASSWORD" }, - { SETTING_PW_TYPE_SET_SIMPLE_PASSWORD, "SETTING_PW_TYPE_SET_SIMPLE_PASSWORD" }, - { SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD, "SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD" }, - { SETTING_PW_TYPE_ENTER_LOCK_TYPE, "SETTING_PW_TYPE_ENTER_LOCK_TYPE" }, { SETTING_PW_TYPE_SIM_LOCK_ON, "SETTING_PW_TYPE_SIM_LOCK_ON" }, { SETTING_PW_TYPE_SIM_LOCK_OFF, "SETTING_PW_TYPE_SIM_LOCK_OFF" }, { SETTING_PW_TYPE_PIN_LOCK_ON, "SETTING_PW_TYPE_PIN_LOCK_ON" }, @@ -47,11 +35,6 @@ static struct _pw_item pw_its[] = { { SETTING_PW_TYPE_PIN1_BLOCKED, "SETTING_PW_TYPE_PIN1_BLOCKED" }, { SETTING_PW_TYPE_PIN2_BLOCKED, "SETTING_PW_TYPE_PIN2_BLOCKED" }, { SETTING_PW_TYPE_RESET, "SETTING_PW_TYPE_RESET" }, -#ifdef SUPPORT_MDM - { SETTING_PW_TYPE_MDM_NEW_POLICY, "SETTING_PW_TYPE_MDM_NEW_POLICY" }, /*for mdm policy */ - { SETTING_PW_TYPE_MDM_CHANGE_PASSWORD, "SETTING_PW_TYPE_MDM_CHANGE_PASSWORD" }, - { SETTING_PW_TYPE_MDM_TO_SIMPLE, "SETTING_PW_TYPE_MDM_TO_SIMPLE" }, -#endif { SETTING_PW_TYPE_MAX, NULL } }; @@ -124,23 +107,7 @@ setting_pw_type __get_password_view_type(SettingPasswordUG *ad, service_h servic SETTING_TRACE_BEGIN; service_get_extra_data(service, "viewtype", &(ad->view_type_string)); - service_get_extra_data(service, "current", &(ad->cur_pwd)); - if(ad->cur_pwd) - SETTING_TRACE_DEBUG("Receive current : %s", ad->cur_pwd); -#ifdef SUPPORT_MDM - char *status = NULL; - service_get_extra_data(service, "status", &status); - if(safeStrCmp(status, "expired") == 0) - { - ad->is_expired = SETTING_PW_STATUS_EXPIRED; - } - else - { - ad->is_expired = SETTING_PW_STATUS_OK; - } - SETTING_TRACE_DEBUG("is_expired : %d", ad->is_expired); -#endif SETTING_TRACE("viewtype:%s", ad->view_type_string); setting_pw_type ret_pw_type = 0; int i; @@ -154,124 +121,11 @@ setting_pw_type __get_password_view_type(SettingPasswordUG *ad, service_h servic } } - ad->is_empty = setting_password_is_password_empty(); - - /* exception handle */ - if(ret_pw_type == SETTING_PW_TYPE_PASSWORD) - { - ret_pw_type = SETTING_PW_TYPE_SET_PASSWORD; - } - else if(ret_pw_type == SETTING_PW_TYPE_SIMPLE_PASSWORD) - { - ret_pw_type = SETTING_PW_TYPE_SET_SIMPLE_PASSWORD; - } - else if(ret_pw_type == SETTING_PW_TYPE_CHANGE_PASSWORD) - { - if(ad->is_empty == TRUE) - { - ret_pw_type = SETTING_PW_TYPE_SET_PASSWORD; - } - } - else if(ret_pw_type == SETTING_PW_TYPE_CHANGE_SIMPLE_PASSWORD) - { - if(ad->is_empty == TRUE) - { - ret_pw_type = SETTING_PW_TYPE_SET_SIMPLE_PASSWORD; - } - } - else if( ret_pw_type == SETTING_PW_TYPE_RESET ) - { - if(ad->is_empty == TRUE) - { - /* To do : check screen lock option key */ - if(ad->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD) - ret_pw_type = SETTING_PW_TYPE_SET_PASSWORD; - else if(ad->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) - ret_pw_type = SETTING_PW_TYPE_SET_SIMPLE_PASSWORD; - } - else - { - if(ad->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD) - ret_pw_type = SETTING_PW_TYPE_PASSWORD; - else if(ad->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) - ret_pw_type = SETTING_PW_TYPE_SIMPLE_PASSWORD; - } - } - else if( ret_pw_type == SETTING_PW_TYPE_ENTER_LOCK_TYPE ) - { - if(ad->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD) - ret_pw_type = SETTING_PW_TYPE_PASSWORD; - else if(ad->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) - ret_pw_type = SETTING_PW_TYPE_SIMPLE_PASSWORD; - } -#ifdef SUPPORT_MDM - else if (ret_pw_type == SETTING_PW_TYPE_MDM_CHANGE_PASSWORD) - { - if((ad->is_empty == TRUE) - || (ad->is_expired == SETTING_PW_STATUS_EXPIRED)) - { - ret_pw_type = SETTING_PW_TYPE_MDM_NEW_POLICY; - } - } -#endif /* end */ return ret_pw_type; } -#if DISABLED_CODE -static void setting_password_ug_set_password_cb(void *data, Evas_Object *obj, - void *event_info) -{ - /* error check */ - retm_if(data == NULL, "Data parameter is NULL"); - - SettingPasswordUG *ad = (SettingPasswordUG *) data; - - switch (btn_type(obj)) { - case POPUP_RESPONSE_OK: - { - /* creating a view. */ - setting_view_create(&setting_view_password_main, (void *)ad); - evas_object_event_callback_add(ad->win_main_layout, - EVAS_CALLBACK_RESIZE, - setting_password_ug_cb_resize, - ad); - if (ad->setpw_notify) - { - evas_object_del(ad->setpw_notify); - ad->setpw_notify = NULL; - } - } - break; - - case POPUP_RESPONSE_CANCEL: - { - if (ad->setpw_notify) - { - evas_object_del(ad->setpw_notify); - ad->setpw_notify = NULL; - } - - /* send result : Cancel */ - service_h svc; - if(service_create(&svc)) - return; - - service_add_extra_data(svc, "result", "Cancel"); - ug_send_result(ad->ug, svc); - SETTING_TRACE("Send Result : %s\n", "Cancel"); - - service_destroy(svc); - - ug_destroy_me(ad->ug); - } - break; - default: - break; - } -} -#endif static char *__gl_err_desc_text_get(void *data, Evas_Object *obj, const char *part) { retv_if(data == NULL, NULL); @@ -282,102 +136,6 @@ static char *__gl_err_desc_text_get(void *data, Evas_Object *obj, const char *pa return strdup(buf); } -#ifdef SUPPORT_MDM -void setting_password_ug_display_mdm_desc(void *data, const char* guide_text) -{ - SETTING_TRACE_BEGIN; - ret_if(data == NULL || guide_text == NULL); - - SettingPasswordUG *ad = (SettingPasswordUG *)data; - - if(ad->mdm_desc != NULL) - { - elm_object_item_del(ad->mdm_desc); - ad->mdm_desc = NULL; - } - - ad->guide_str = (char *)guide_text; - - ad->mdm_desc = elm_genlist_item_append(ad->scroller, &(ad->itc_mdm_desc), ad, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); - - SETTING_TRACE_END; -} - -static char *__gl_mdm_desc_text_get(void *data, Evas_Object *obj, const char *part) -{ - SETTING_TRACE_BEGIN; - retv_if(data == NULL, NULL); - char buf[MAX_DESC_BUF_SIZE] = {0,}; - - SettingPasswordUG *ad = (SettingPasswordUG *)data; - - if(ad->mdm_policy == NULL) - return NULL; - - if(ad->guide_str) - safeCopyStr(buf, ad->guide_str, MAX_DESC_BUF_SIZE); - - SETTING_TRACE_END; - return strdup(buf); -} - -static Eina_Bool __setting_password_ug_keydown_cb(void *data, int type, void *event) -{ - SETTING_TRACE_BEGIN; - - Ecore_Event_Key *ev = event; - - if(!strcmp(ev->keyname, KEY_END) || !strcmp(ev->keyname, KEY_SELECT)) - { - SETTING_TRACE_DEBUG("event key name : %s", ev->keyname); - // nothing to do. - } - return ECORE_CALLBACK_DONE; -} - -static void __setting_password_ug_key_grab(SettingPasswordUG *ad) -{ - SETTING_TRACE_BEGIN; - Ecore_X_Window xwin = 0; - Ecore_X_Display *disp = NULL; - - int ret = 0; - - if(ad == NULL) - return; - - disp = ecore_x_display_get(); - xwin = elm_win_xwindow_get((Evas_Object*)ug_get_window()); - - ret = utilx_grab_key(disp, xwin, KEY_SELECT, EXCLUSIVE_GRAB); - if(ret) - return; - - ad->event_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, __setting_password_ug_keydown_cb, ad); - SETTING_TRACE_END; -} -static void __setting_password_ug_key_ungrab(SettingPasswordUG *ad) -{ - SETTING_TRACE_BEGIN; - Ecore_X_Window xwin = 0; - Ecore_X_Display *disp = NULL; - - int ret = 0; - - if(ad == NULL) - return; - - disp = ecore_x_display_get(); - xwin = elm_win_xwindow_get((Evas_Object*)ug_get_window()); - - ret = utilx_ungrab_key(disp, xwin, KEY_HOME); - if(ret) - return; - - ecore_event_handler_del(ad->event_handler); -} -#endif - static void *setting_password_ug_on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv) @@ -408,7 +166,6 @@ static void *setting_password_ug_on_create(ui_gadget_h ug, setting_set_i18n(SETTING_PACKAGE, SETTING_LOCALEDIR); FREE(pa_path); - setting_create_Gendial_itc("dialogue/title", &(passwordUG->itc_title)); setting_create_Gendial_itc("dialogue/1icon",&(passwordUG->itc_variable_height)); passwordUG->itc_seperator.item_style = "dialogue/separator/21/with_line"; passwordUG->itc_seperator.func.text_get = NULL; @@ -421,107 +178,11 @@ static void *setting_password_ug_on_create(ui_gadget_h ug, passwordUG->itc_err_desc.func.content_get = NULL; passwordUG->itc_err_desc.func.state_get = NULL; passwordUG->itc_err_desc.func.del = NULL; -#ifdef SUPPORT_MDM - passwordUG->itc_mdm_desc.item_style = "multiline/1text"; - passwordUG->itc_mdm_desc.func.text_get = __gl_mdm_desc_text_get; - passwordUG->itc_mdm_desc.func.content_get = NULL; - passwordUG->itc_mdm_desc.func.state_get = NULL; - passwordUG->itc_mdm_desc.func.del = NULL; -#endif - - /* get screen lock type */ - if( vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &(passwordUG->screen_lock_type)) < 0) { - passwordUG->screen_lock_type = 0; - } - SETTING_TRACE_DEBUG("screen lock type : %d", passwordUG->screen_lock_type); - - passwordUG->cur_pwd = NULL; /* init */ passwordUG->view_type = __get_password_view_type(passwordUG, service); setting_tapi_init(passwordUG); -#ifdef SUPPORT_MDM - /* To do : check for MDM server */ - passwordUG->mdm_data = NULL; - passwordUG->mdm_policy = NULL; - - passwordUG->mdm_status = mdm_get_service(); - - if(passwordUG->mdm_status == MDM_RESULT_SUCCESS) - { - passwordUG->mdm_data = mdm_get_password_policy(); - - passwordUG->mdm_policy = (mdm_password_policy_t*)(passwordUG->mdm_data->data); - - if ((SETTING_PW_TYPE_MDM_NEW_POLICY == passwordUG->view_type) /* support mdm policy */ - || (SETTING_PW_TYPE_MDM_CHANGE_PASSWORD == passwordUG->view_type)) - { - if(passwordUG->mdm_policy != NULL) - { - if((passwordUG->mdm_policy->quality == MDM_PASSWORD_QUALITY_SOMETHING) - || (passwordUG->mdm_policy->quality == MDM_PASSWORD_QUALITY_NUMERIC)) - { - if( (passwordUG->view_type == SETTING_PW_TYPE_MDM_NEW_POLICY) - && (passwordUG->screen_lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD)) - { - /*if only length is 0~4, apply simple password mode */ - if(passwordUG->mdm_policy->min_length <= SETTING_PW_UG_NORMAL_PASSWORD_MIN_LENGTH) - { - passwordUG->view_type = SETTING_PW_TYPE_MDM_TO_SIMPLE; - } - else - { - if(vconf_set_bool(VCONFKEY_SETAPPL_STATE_SIMPLE_PASSWORD_BOOL, FALSE) != 0) - { - SETTING_TRACE_DEBUG("[ERROR] setting VCONFKEY_SETAPPL_STATE_SIMPLE_PASSWORD_BOOL failed"); - } - } - } - } - - ecore_x_netwm_window_type_set(elm_win_xwindow_get(passwordUG->win_get), ECORE_X_WINDOW_TYPE_NOTIFICATION); - utilx_set_system_notification_level(ecore_x_display_get(), elm_win_xwindow_get(passwordUG->win_get), UTILX_NOTIFICATION_LEVEL_NORMAL); - - /* creating a view. */ - setting_view_create(&setting_view_password_main,(void *)passwordUG); - evas_object_event_callback_add(passwordUG->win_main_layout, - EVAS_CALLBACK_RESIZE, - setting_password_ug_cb_resize, - passwordUG); - __setting_password_ug_key_grab(passwordUG); - - return passwordUG->ly_main; - } - else - { - /* unexpected case */ - SETTING_TRACE_DEBUG("[ERROR] no policy"); - if (SETTING_PW_TYPE_MDM_NEW_POLICY == passwordUG->view_type) - passwordUG->view_type = SETTING_PW_TYPE_SET_PASSWORD; - else if (SETTING_PW_TYPE_MDM_CHANGE_PASSWORD == passwordUG->view_type) - passwordUG->view_type = SETTING_PW_TYPE_CHANGE_PASSWORD; - } - } - else - { - SETTING_TRACE_DEBUG("[ERROR] failed to connect mdm server"); - } - } -#endif -#ifdef SUPPORT_MDM - if (SETTING_PW_TYPE_CHANGE_PASSWORD == passwordUG->view_type) - { - // to do : if policy exist and quality is not unspecified, - // change view type to SETTING_PW_TYPE_MDM_CHANGE_PASSWORD - if((passwordUG->mdm_policy) && (passwordUG->mdm_policy->quality != MDM_PASSWORD_QUALITY_UNSPECIFIED)) - { - passwordUG->view_type = SETTING_PW_TYPE_MDM_CHANGE_PASSWORD; - SETTING_TRACE_DEBUG("change view type to SETTING_PW_TYPE_MDM_CHANGE_PASSWORD"); - } - // end - } -#endif /* creating a view. */ setting_view_create(&setting_view_password_main,(void *)passwordUG); evas_object_event_callback_add(passwordUG->win_main_layout, @@ -559,16 +220,6 @@ static void setting_password_ug_on_destroy(ui_gadget_h ug, service_h service, vo ecore_timer_del(passwordUG->remove_timer); passwordUG->remove_timer = NULL; } -#ifdef SUPPORT_MDM - if(passwordUG->event_handler) - { - __setting_password_ug_key_ungrab(passwordUG); - } - if(passwordUG->mdm_status == MDM_RESULT_SUCCESS) - { - mdm_release_service(); - } -#endif /* delete the allocated objects. */ setting_view_destroy(&setting_view_password_main, passwordUG); @@ -716,8 +367,9 @@ void setting_sim_verify_puks_cb(TapiHandle *handle, int result, void *data, void if (TAPI_SIM_PTYPE_PUK1 == sim_event_data->type) { - //if (TAPI_SIM_PIN_REQUIRED == sec_rt){ if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt){ + SETTING_TRACE_DEBUG("SIM_PIN1_UNBLOCKED"); + safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN1_UNBLOCKED", sizeof("SETTING_PW_TYPE_PIN1_UNBLOCKED")+1); setting_password_ug_create_popup_notitle_nobtn(ad, _("Verfy PUK1 Sucessfully"), TRUE); return; } else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == sec_rt) { @@ -730,8 +382,9 @@ void setting_sim_verify_puks_cb(TapiHandle *handle, int result, void *data, void else if (TAPI_SIM_PTYPE_PUK2 == sim_event_data->type) { - //if (TAPI_SIM_PUK_REQUIRED == sec_rt) if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt){ + SETTING_TRACE_DEBUG("SIM_PIN2_UNBLOCKED"); + safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN2_UNBLOCKED", sizeof("SETTING_PW_TYPE_PIN2_UNBLOCKED")+1); setting_password_ug_create_popup_notitle_nobtn(ad, _("Verfy PUK2 Sucessfully"), TRUE); return; } else if (TAPI_SIM_PUK_INCORRECT_PASSWORD == sec_rt) { @@ -814,6 +467,7 @@ void setting_sim_facility_disable_cb(TapiHandle *handle, int result, void *data, /* Sim Lock */ if (TAPI_SIM_LOCK_PS == sim_event_data->type) { + SETTING_TRACE_DEBUG("SIM lOCK"); if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt) result_info.stat = SIM_LOCK_OFF_SUCCESS; else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == sec_rt) @@ -828,6 +482,7 @@ void setting_sim_facility_disable_cb(TapiHandle *handle, int result, void *data, } /* Pin Lock */ else if (TAPI_SIM_LOCK_SC == sim_event_data->type) { + SETTING_TRACE_DEBUG("PIN LOCK"); if (TAPI_SIM_PIN_OPERATION_SUCCESS == sec_rt) result_info.stat = SIM_PIN_LOCK_OFF_SUCCESS; else if (TAPI_SIM_PIN_INCORRECT_PASSWORD == sec_rt) { @@ -902,14 +557,15 @@ static void setting_password_ug_display_result_popup(tapi_receive_info *result, setting_retm_if(ret < 0, "snprintf fail"); ret_str = tmp_str; } else { - ret_str = _("IDS_ST_POP_INCORRECT_PIN1"); + int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, PIN_ERR_DESC, result->retry_cnt); + setting_retm_if(ret < 0, "snprintf fail"); + ret_str = tmp_str; + ret_str = _("IDS_ST_POP_INCORRECT_PIN1_ATTEMPT_LEFT"); } ad->focus_data = ad->ed_pw1; -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, (char *)ret_str, FALSE); -#else + setting_password_ug_display_desc(ad, (char *)ret_str, FALSE); -#endif + } break; case SIM_INCORRECT_PIN2_CODE: @@ -923,14 +579,12 @@ static void setting_password_ug_display_result_popup(tapi_receive_info *result, setting_retm_if(ret < 0, "snprintf fail"); ret_str = tmp_str; } else { - ret_str = _("IDS_ST_POP_INCORRECT_PIN2"); + ret_str = _("IDS_ST_POP_INCORRECT_PIN1_ATTEMPT_LEFT"); } ad->focus_data = ad->ed_pw1; -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, ret_str, FALSE); -#else + setting_password_ug_display_desc(ad, ret_str, FALSE); -#endif + } break; case SIM_INCORRECT_PUK1_CODE: @@ -947,11 +601,9 @@ static void setting_password_ug_display_result_popup(tapi_receive_info *result, ret_str = _("IDS_ST_POP_INCORRECT_PUK1_CODE"); } ad->focus_data = ad->ed_pw1; -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, ret_str, FALSE); -#else + setting_password_ug_display_desc(ad, ret_str, FALSE); -#endif + } break; case SIM_INCORRECT_PUK2_CODE: @@ -967,11 +619,9 @@ static void setting_password_ug_display_result_popup(tapi_receive_info *result, ret_str = _("IDS_ST_POP_INCORRECT_PUK2"); } ad->focus_data = ad->ed_pw1; -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, ret_str, FALSE); -#else + setting_password_ug_display_desc(ad, ret_str, FALSE); -#endif + } break; case SIM_PIN1_CHANGE_SUCCESS: @@ -983,14 +633,22 @@ static void setting_password_ug_display_result_popup(tapi_receive_info *result, _("IDS_ST_POP_PIN2_CHANGED"), TRUE); break; case SIM_PIN1_BLOCKED: + SETTING_TRACE_DEBUG("SIM_PIN1_BLOCKED"); + ad->view_type = SETTING_PW_TYPE_PIN1_BLOCKED; + safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN1_BLOCKED", safeStrLen("SETTING_PW_TYPE_PIN1_BLOCKED")+1); setting_password_ug_create_popup_notitle_nobtn(ad, - _("IDS_ST_POP_PIN1_BLOCKED"), TRUE); + _("IDS_ST_POP_PIN1_BLOCKED"), FALSE); break; case SIM_PIN2_BLOCKED: + SETTING_TRACE_DEBUG("SIM_PIN2_BLOCKED"); + ad->view_type = SETTING_PW_TYPE_PIN2_BLOCKED; + safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN2_BLOCKED", safeStrLen("SETTING_PW_TYPE_PIN2_BLOCKED")+1); setting_password_ug_create_popup_notitle_nobtn(ad, - _("IDS_ST_POP_PIN2_BLOCKED"), TRUE); + _("IDS_ST_POP_PIN2_BLOCKED"), FALSE); break; case SIM_PIN1_UNBLOCKED: + SETTING_TRACE_DEBUG("SIM_PIN1_UNBLOCKED"); + safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN_LOCK_ON", sizeof("SETTING_PW_TYPE_PIN_LOCK_ON")+1); setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_POP_PIN_UNBLOCKED"), TRUE); break; @@ -1001,7 +659,7 @@ static void setting_password_ug_display_result_popup(tapi_receive_info *result, case SIM_PUK1_BLOCKED: setting_password_ug_create_popup_notitle_nobtn(ad, _("IDS_ST_BODY_PUK1_BLOCKED"), TRUE); - /* Call Permernent UG */ + /* Phone blocked. Call Permernent UG */ break; case SIM_PUK2_BLOCKED: setting_password_ug_create_popup_notitle_nobtn(ad, @@ -1009,6 +667,10 @@ static void setting_password_ug_display_result_popup(tapi_receive_info *result, /* Call Permernent UG */ break; case SIM_REQUIRED_PUK_CODE: + SETTING_TRACE_DEBUG("SIM_REQUIRED_PUK_CODE"); + safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_PIN1_BLOCKED", sizeof("SETTING_PW_TYPE_PIN1_BLOCKED")+1); + setting_password_ug_create_popup_notitle_nobtn(ad, + _("IDS_ST_POP_PIN1_BLOCKED"), TRUE); break; case SIM_OPERATION_UNAVAILABLE: setting_password_ug_create_popup_notitle_nobtn(ad, @@ -1022,8 +684,26 @@ static void setting_password_ug_display_result_popup(tapi_receive_info *result, case SIM_REQ_PIN: case SIM_OPERATION_OFF: case SIM_LOCK_ON_FAIL: + SETTING_TRACE_DEBUG("SIM_LOCK_ON_FAIL"); + { + int err = SETTING_RETURN_SUCCESS; + + if(result->retry_cnt > 0) + { + setting_password_ug_display_desc(ad, PW_ERR_DESC, FALSE); + } + else + { + char tmp_str[SETTING_STR_SLP_LEN] = {0,}; + int ret = snprintf(tmp_str, SETTING_STR_SLP_LEN, PW_ERR_DELAY_DESC, PW_ERR_DELAY_TIME); + safeCopyStr(ad->view_type_string, "SETTING_PW_TYPE_SIM_LOCK_DISABLE", sizeof("SETTING_PW_TYPE_SIM_LOCK_DISABLE")+1); + setting_password_ug_create_popup_notitle_nobtn(ad, tmp_str, TRUE); + } + } case SIM_PIN1_CHANGE_FAIL: case SIM_PIN2_CHANGE_FAIL: + setting_password_ug_create_popup_notitle_nobtn(ad, + _("Change Failed"), TRUE); break; default: break; @@ -1054,9 +734,19 @@ void setting_password_ug_popup_resp_cb(void *data, Evas_Object *obj, ug_destroy_me(ad->ug); } else { char *diable_view_type = NULL; - //if (ad->disable_item_type == SETTING_PW_TYPE_PASSWORD) { - // diable_view_type = "SETTING_PW_TYPE_PHONE_LOCK_DISABLE"; - //} else + if (ad->view_type == SETTING_PW_TYPE_PIN1_BLOCKED) + { + setting_view_destroy(&setting_view_password_main, ad); + setting_view_create(&setting_view_password_main, ad); + return; + } + else if (ad->view_type == SETTING_PW_TYPE_PIN2_BLOCKED) + { + setting_view_destroy(&setting_view_password_main, ad); + setting_view_create(&setting_view_password_main, ad); + return; + } + if (ad->disable_item_type == SETTING_PW_TYPE_SIM_LOCK_OFF) { diable_view_type = "SETTING_PW_TYPE_SIM_LOCK_DISABLE"; } @@ -1116,9 +806,6 @@ static Eina_Bool __remove_desc(void *data) ug_destroy_me(ad->ug); } else { char *diable_view_type = NULL; - //if (ad->disable_item_type == SETTING_PW_TYPE_PASSWORD) { - // diable_view_type = "SETTING_PW_TYPE_PHONE_LOCK_DISABLE"; - //} else if (ad->disable_item_type == SETTING_PW_TYPE_SIM_LOCK_OFF) { diable_view_type = "SETTING_PW_TYPE_SIM_LOCK_DISABLE"; } @@ -1196,213 +883,3 @@ setting_password_ug_create_popup_notitle_nobtn(void *data, char *str, POPUP_INTERVAL, FALSE, FALSE); } -void setting_password_ug_check_attemps_left(void *data) -{ - ret_if(!data); - SettingPasswordUG *ad = (SettingPasswordUG *) data; - - setting_int_slp_list item_attempts_left; - setting_str_slp_list item_lock_timestamp; - int attemps_left_max = 5; - - if (ad->view_type == SETTING_PW_TYPE_PASSWORD) { - item_attempts_left = INT_SLP_SETTING_PHONE_LOCK_ATTEMPTS_LEFT; - item_lock_timestamp = STR_SLP_SETTING_PHONE_LOCK_TIMESTAMP; - attemps_left_max = PHONE_LOCK_ATTEMPS_MAX; - } else if (ad->view_type == SETTING_PW_TYPE_SIM_LOCK_OFF) { - item_attempts_left = INT_SLP_SETTING_SIM_LOCK_ATTEMPTS_LEFT; - item_lock_timestamp = STR_SLP_SETTING_SIM_LOCK_TIMESTAMP; - attemps_left_max = SIM_LOCK_ATTEMPS_MAX; - } else { - return; - } - - int value = -1; - int err = SETTING_RETURN_SUCCESS; - setting_get_int_slp_key(item_attempts_left, &value, &err); - setting_retm_if(err == SETTING_RETURN_FAIL, - "[Error] get value of vconf fail."); - - value--; - - if (value > 0 && value <= attemps_left_max) { - setting_set_int_slp_key(item_attempts_left, value, &err); - setting_retm_if(err == SETTING_RETURN_FAIL, "[Error] set value of vconf fail."); - char temp_str[MAX_SPECIALIZITION_LEN] = {0,}; - char temp[MAX_SPECIALIZITION_LEN] ={0,}; - - if(value > 1) - snprintf(temp, sizeof(temp), "%s. %s.", PW_ERR_DESC, ATTEMPTS_DESC); - else - snprintf(temp, sizeof(temp), "%s. %s.", PW_ERR_DESC, ATTEMPT_DESC); - - int ret = snprintf(temp_str, MAX_SPECIALIZITION_LEN, temp, value); - - ret_if(ret < 0); - -#ifdef SUPPORT_POPUP - setting_password_ug_create_popup_notitle_nobtn(ad, temp_str, FALSE); -#else - setting_password_ug_display_desc(ad, temp_str, FALSE); -#endif - } else if (value == 0) { - /* store the lock timestamp */ - time_t cur_time = time(NULL); - char cur_timestamp[LOCK_TIMESTAMP_LEN] = { 0, }; - int ret = snprintf(cur_timestamp, sizeof(cur_timestamp), "%ld", cur_time); - ret_if(ret < 0); - - setting_set_string_slp_key(item_lock_timestamp, cur_timestamp, &err); - setting_retm_if(err == SETTING_RETURN_FAIL, - "[Error] set value of vconf fail."); - - setting_set_int_slp_key(item_attempts_left, value, &err); - setting_retm_if(err == SETTING_RETURN_FAIL, - "[Error] set value of vconf fail."); - - ad->disable_item_type = ad->view_type; - - char temp[MAX_SPECIALIZITION_LEN] = {0,}; - snprintf(temp, sizeof(temp), PW_ERR_DELAY_DESC, PW_ERR_DELAY_TIME); - - setting_password_ug_create_popup_notitle_nobtn(ad, temp, FALSE); - } else { - setting_password_ug_create_popup_notitle_nobtn(ad, - _("IDS_COM_POP_ERROR"), FALSE); - } - -} - -int setting_password_is_password_empty() -{ - SETTING_TRACE_BEGIN; - int ret = 0; - unsigned int attempt = 0; - unsigned int max_attempt = 0; - unsigned int expire_sec = 0; - - ret = security_server_is_pwd_valid(&attempt, &max_attempt, &expire_sec); - SETTING_TRACE_DEBUG("status of password : %d", ret); - - if(ret == SECURITY_SERVER_API_ERROR_NO_PASSWORD) - return SETTING_RETURN_SUCCESS; - else - return SETTING_RETURN_FAIL; -} -int setting_password_check_password(const char *challenge, unsigned int *remain_attempt, unsigned int *valid_sec) -{ - SETTING_TRACE_BEGIN; - retv_if(challenge == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER); - - int inner_ret = 0; - int ret = 0; - unsigned int current_attempt = 0; - unsigned int max_attempt = 0; - unsigned int valid_secs = 0; - - inner_ret = security_server_chk_pwd(challenge, ¤t_attempt, &max_attempt, &valid_secs); - - SETTING_TRACE_DEBUG("chk password : %d", inner_ret); - SETTING_TRACE_DEBUG("current_attempt : %d, max_attempt : %d, valid_secs : %d secs", current_attempt, max_attempt, valid_secs); - - if(inner_ret == SECURITY_SERVER_API_SUCCESS) - { - ret = SETTING_RETURN_SUCCESS; - } - else - { - if(remain_attempt != NULL) - { - if(max_attempt > 0) - *remain_attempt = max_attempt - current_attempt; - else - *remain_attempt = ATTEMPT_INFINITE; // infinite - ret = SETTING_RETURN_FAIL; - } - } - - if(valid_sec != NULL) - *valid_sec = valid_secs; - - return ret; -} -#ifdef SUPPORT_MDM -static Eina_Bool __set_history_cb(void *data) -{ - SETTING_TRACE_BEGIN; - retv_if(data == NULL, EINA_FALSE); - - SettingPasswordUG *ad = (SettingPasswordUG *)data; - - if(ad->mdm_policy) - security_server_set_pwd_history(ad->mdm_policy->history_cnt); - - return EINA_FALSE; -} -#endif - -int setting_password_set_password(const char *cur_pwd, const char *new_pwd, void *data) -{ - SETTING_TRACE_BEGIN; - retv_if(new_pwd == NULL || data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER); - - SettingPasswordUG *ad = (SettingPasswordUG*)data; - int ret = 0; - -#ifdef SUPPORT_MDM - if((ad->view_type == SETTING_PW_TYPE_MDM_NEW_POLICY) - || (ad->view_type == SETTING_PW_TYPE_MDM_TO_SIMPLE)) - { - if(cur_pwd) - { - SETTING_TRACE_DEBUG("cur_pwd : %s, new_pwd : %s", cur_pwd, new_pwd); - ret = security_server_set_pwd(cur_pwd, new_pwd, ad->mdm_policy->max_num_wipe, ad->mdm_policy->expire); - - if(ret == SECURITY_SERVER_API_ERROR_PASSWORD_REUSED) - { - SETTING_TRACE_DEBUG("[ERROR - security_server_set_pwd()] password reused"); - } - else - { - SETTING_TRACE_DEBUG("[security_server_set_pwd()] returns %d", ret); - } - } - else - { - SETTING_TRACE_DEBUG("new_pwd : %s", new_pwd); - ret = mdm_reset_password((char*)new_pwd); - SETTING_TRACE_DEBUG("[mdm_reset_password()] returns %d", ret); - } - - if((ret == MDM_RESULT_SUCCESS) || (ret == SECURITY_SERVER_API_SUCCESS)) - { - ad->set_history_timer = ecore_timer_add(1, (Ecore_Task_Cb)__set_history_cb, ad); - return SETTING_RETURN_SUCCESS; - } - else - { - return ret; - } - } - else -#endif - { - /* max attempt count will be handled in passwordug for a while. */ - if(cur_pwd == NULL || ad->is_empty == TRUE) - { - ret = security_server_set_pwd(NULL, new_pwd, 0, PW_ERR_DELAY_TIME); - SETTING_TRACE_DEBUG("new_pwd : %s", new_pwd); - } - else - { - ret = security_server_set_pwd(cur_pwd, new_pwd, 0, PW_ERR_DELAY_TIME); - SETTING_TRACE_DEBUG("cur_pwd : %s, new_pwd : %s", cur_pwd, new_pwd); - } - SETTING_TRACE_DEBUG("set password : %d", ret); - - if(ret == SECURITY_SERVER_API_SUCCESS) - return SETTING_RETURN_SUCCESS; - else - return SETTING_RETURN_FAIL; - } -} diff --git a/setting-security/include/setting-security.h b/setting-security/include/setting-security.h index a33f7da..f74977d 100755 --- a/setting-security/include/setting-security.h +++ b/setting-security/include/setting-security.h @@ -92,6 +92,7 @@ struct _SettingSecurityUG { Setting_GenGroupItem_Data *data_sim_lk; Setting_GenGroupItem_Data *data_pin_lk; Setting_GenGroupItem_Data *data_change_pin1; + Setting_GenGroupItem_Data *data_change_pin2; /* for simple password */ Elm_Genlist_Item_Class itc_1text; diff --git a/setting-security/src/setting-security-sim-settings.c b/setting-security/src/setting-security-sim-settings.c index 580bd55..43a296c 100755 --- a/setting-security/src/setting-security-sim-settings.c +++ b/setting-security/src/setting-security-sim-settings.c @@ -111,11 +111,13 @@ static int setting_security_sim_settings_create(void *cb) setting_disable_genlist_item(ad->data_change_pin1->item); /* i. change pin2 */ - setting_create_Gendial_field_def(scroller, &(ad->itc_1text), + ad->data_change_pin2 = setting_create_Gendial_field_def(scroller, &(ad->itc_1text), setting_security_sim_settings_mouse_up_Gendial_list_cb,ad, SWALLOW_Type_INVALID, NULL, NULL, 0,"IDS_ST_BODY_CHANGE_PIN2", NULL, NULL); + if(!ad->pin2_status) + setting_disable_genlist_item(ad->data_change_pin2->item); #if SUPPORT_FDN /* j. FDN */ //if TAPI is responsed in time, ad->sim_status will have invalid value, @@ -182,6 +184,13 @@ static int setting_security_sim_settings_update(void *cb) setting_enable_genlist_item(ad->data_change_pin1->item); } + if(ad->data_change_pin2) + { + if(ad->pin2_status == 0) + setting_disable_genlist_item(ad->data_change_pin2->item); + else + setting_enable_genlist_item(ad->data_change_pin2->item); + } return SETTING_RETURN_SUCCESS; } diff --git a/setting-security/src/setting-security.c b/setting-security/src/setting-security.c index f813900..537f243 100755 --- a/setting-security/src/setting-security.c +++ b/setting-security/src/setting-security.c @@ -147,9 +147,9 @@ static struct _security_item security_table[] = { { SETTING_SEC_PW_CHANGE_PIN1, "SETTING_PW_TYPE_CHANGE_PIN1", pwd_handler_sec_pw_change_pin1}, { SETTING_SEC_PW_CHANGE_PIN2, "SETTING_PW_TYPE_CHANGE_PIN2", pwd_handler_sec_pw_change_pin2}, { SETTING_SEC_PW_PIN1_BLOCKED, "SETTING_PW_TYPE_PIN1_BLOCKED", pwd_handler_sec_pw_pin1_blocked}, - { SETTING_SEC_PW_PIN2_BLOCKED, "SETTING_PW_TYPE_PIN2_BLOCKED", pwd_handler_sec_pw_pin2_blocked}, - { SETTING_SEC_PW_PIN1_BLOCKED, "SETTING_PW_TYPE_PIN1_UNBLOCKED", pwd_handler_sec_pw_pin_lock_on}, - { SETTING_SEC_PW_PIN2_BLOCKED, "SETTING_PW_TYPE_PIN2_UNBLOCKED", pwd_handler_do_nothing}, + { SETTING_SEC_PW_PIN2_BLOCKED, "SETTING_PW_TYPE_PIN2_BLOCKED", pwd_handler_do_nothing}, + { SETTING_SEC_PW_PIN1_UNBLOCKED, "SETTING_PW_TYPE_PIN1_UNBLOCKED", pwd_handler_sec_pw_pin_lock_on}, + { SETTING_SEC_PW_PIN2_UNBLOCKED, "SETTING_PW_TYPE_PIN2_UNBLOCKED", pwd_handler_do_nothing}, /*------------------------------------------------------------------------------------------------------------*/ { SETTING_SEC_PW_MAX, NULL, pwd_handler_do_nothing} }; -- 2.7.4