Test fix for self-searching in system users/groups

pull/193/head
Ivan Dmitrievich Yartsev 10 months ago
parent 4e1ae06060
commit deba2ba8f9

@ -1380,28 +1380,30 @@ void on_group_save(GtkWidget *self, dictionary *dict){
} }
int config_size=0; if (strcmp(gid,window->last_gid)){
int final_size=0; int config_size=0;
config_str config_users = yon_config_get_all_by_key(GROUPADD_SEARCH_macro,&config_size); int final_size=0;
config_str final = yon_char_parsed_merge(main_config.groups,main_config.groups_size,config_users,config_size,&final_size); config_str config_users = yon_config_get_all_by_key(GROUPADD_SEARCH_macro,&config_size);
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UnuniqueGIDCheck))){ config_str final = yon_char_parsed_merge(main_config.groups,main_config.groups_size,config_users,config_size,&final_size);
int found=0; if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UnuniqueGIDCheck))){
char *uid_string = (char*)gtk_entry_get_text(GTK_ENTRY(window->userUIDEntry)); int found=0;
for (int i=0;i<final_size;i++){ char *uid_string = (char*)gtk_entry_get_text(GTK_ENTRY(window->userUIDEntry));
int parsed_size; for (int i=0;i<final_size;i++){
config_str parsed = yon_char_parse(final[i],&parsed_size,":"); int parsed_size;
if (parsed_size>2&&!strcmp(parsed[2],uid_string)){ config_str parsed = yon_char_parse(final[i],&parsed_size,":");
if (yon_char_is_empty(window->last_gid)||(!yon_char_is_empty(window->last_gid)&&strcmp(parsed[2],window->last_gid))){ if (parsed_size>2&&!strcmp(parsed[2],uid_string)){
found = yon_char_parsed_check_exist(config_users,config_size,final[i])>-1?1:2; if (yon_char_is_empty(window->last_gid)||(!yon_char_is_empty(window->last_gid)&&strcmp(parsed[2],window->last_gid))){
break; found = yon_char_parsed_check_exist(config_users,config_size,final[i])>-1?1:2;
break;
}
} }
if (parsed_size) yon_char_parsed_free(parsed,parsed_size);
}
if (found){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),found==1?GID_ALREADY_EXIST_CONFIG_LABEL:GID_ALREADY_EXIST_SYSTEM_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->userUIDEntry);
return;
} }
if (parsed_size) yon_char_parsed_free(parsed,parsed_size);
}
if (found){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),found==1?GID_ALREADY_EXIST_CONFIG_LABEL:GID_ALREADY_EXIST_SYSTEM_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->userUIDEntry);
return;
} }
} }
} }
@ -2010,24 +2012,26 @@ void on_user_save(GtkWidget *self, dictionary *dict){
config_str final = yon_char_parsed_merge(main_config.users,main_config.users_size,config_users,config_size,&final_size); config_str final = yon_char_parsed_merge(main_config.users,main_config.users_size,config_users,config_size,&final_size);
uid_string = (char*)gtk_entry_get_text(GTK_ENTRY(window->userUIDEntry)); uid_string = (char*)gtk_entry_get_text(GTK_ENTRY(window->userUIDEntry));
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateUnuniqueCheck))){ if (strcmp(uid_string,window->last_uid)){
int found=0; if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateUnuniqueCheck))){
for (int i=0;i<final_size;i++){ int found=0;
int parsed_size; for (int i=0;i<final_size;i++){
config_str parsed = yon_char_parse(final[i],&parsed_size,":"); int parsed_size;
if (parsed_size>2&&!strcmp(parsed[2],uid_string)){ config_str parsed = yon_char_parse(final[i],&parsed_size,":");
if (yon_char_is_empty(window->last_uid)||(!yon_char_is_empty(window->last_uid)&&strcmp(parsed[2],window->last_uid))){ if (parsed_size>2&&!strcmp(parsed[2],uid_string)){
found = yon_char_parsed_check_exist(config_users,config_size,final[i])>-1?1:2; if (yon_char_is_empty(window->last_uid)||(!yon_char_is_empty(window->last_uid)&&strcmp(parsed[2],window->last_uid))){
break; found = yon_char_parsed_check_exist(config_users,config_size,final[i])>-1?1:2;
break;
}
} }
}
if (parsed_size) yon_char_parsed_free(parsed,parsed_size); if (parsed_size) yon_char_parsed_free(parsed,parsed_size);
} }
if (found){ if (found){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),found==1?UID_ALREADY_EXIST_CONFIG_LABEL:UID_ALREADY_EXIST_SYSTEM_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),found==1?UID_ALREADY_EXIST_CONFIG_LABEL:UID_ALREADY_EXIST_SYSTEM_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->userUIDEntry); yon_ubl_status_highlight_incorrect(window->userUIDEntry);
return; return;
}
} }
} }

Loading…
Cancel
Save