diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 8e580d4..7713a24 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -1245,103 +1245,105 @@ void on_main_edit(GtkWidget *self, main_window *widgets){ gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,-1); char *parameter_string = yon_config_get_by_key(USERADD(name)); int parsed_size=0; - if (parameter_string[0]=='\"') yon_char_divide(parameter_string,0); - if (parameter_string[strlen(parameter_string)-1]=='\"') parameter_string[strlen(parameter_string)-1]='\0'; - config_str parameters = yon_char_parse(parameter_string,&parsed_size,":"); - gtk_entry_set_text(GTK_ENTRY(window->userLoginEntry), name); - gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), name); - gtk_entry_set_text(GTK_ENTRY(window->userUserNameEntry), parsed_size>0?parameters[0]:""); - if (parsed_size>1){ - if (strcmp(parameters[1],"x")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck),0); - gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry), parsed_size>1?parameters[1]:""); + if (parameter_string){ + if (parameter_string[0]=='\"') yon_char_divide(parameter_string,0); + if (parameter_string[strlen(parameter_string)-1]=='\"') parameter_string[strlen(parameter_string)-1]='\0'; + config_str parameters = yon_char_parse(parameter_string,&parsed_size,":"); + gtk_entry_set_text(GTK_ENTRY(window->userLoginEntry), name); + gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), name); + gtk_entry_set_text(GTK_ENTRY(window->userUserNameEntry), parsed_size>0?parameters[0]:""); + if (parsed_size>1){ + if (strcmp(parameters[1],"x")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck),0); + gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry), parsed_size>1?parameters[1]:""); + } } - } - if (parsed_size>2){ - if (!strcmp(parameters[2],"x")) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),1); - else - gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), parsed_size>2?parameters[2]:""); - } - if (parsed_size>3){ - if (strcmp(parameters[3],"x")) - gtk_entry_set_text(GTK_ENTRY(window->userAdditionalGroupsEntry), parsed_size>3?parameters[3]:""); - - } - if (parsed_size>4&&!yon_char_is_empty(parameters[4])){ - int params_size; - config_str parameters_substring = yon_char_parse(parameters[4],¶ms_size," "); - for (int i=0;iuserHomeEntry),parameters_substring[i+1]); - gtk_combo_box_set_active(GTK_COMBO_BOX(window->userHomeCombo),2); - i++; - } else if (!strcmp(parameters_substring[i],"--shell")||!strcmp(parameters_substring[i],"-s")){ - int active = yon_gtk_combo_box_text_find(window->userShellCombo,parameters_substring[i+1]); - if (!active){ - gtk_entry_set_text(GTK_ENTRY(window->userShellEntry),parameters_substring[i+1]); - gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->userShellCombo),"Set"); + if (parsed_size>2){ + if (!strcmp(parameters[2],"x")) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),1); + else + gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), parsed_size>2?parameters[2]:""); + } + if (parsed_size>3){ + if (strcmp(parameters[3],"x")) + gtk_entry_set_text(GTK_ENTRY(window->userAdditionalGroupsEntry), parsed_size>3?parameters[3]:""); + + } + if (parsed_size>4&&!yon_char_is_empty(parameters[4])){ + int params_size; + config_str parameters_substring = yon_char_parse(parameters[4],¶ms_size," "); + for (int i=0;iuserHomeEntry),parameters_substring[i+1]); + gtk_combo_box_set_active(GTK_COMBO_BOX(window->userHomeCombo),2); + i++; + } else if (!strcmp(parameters_substring[i],"--shell")||!strcmp(parameters_substring[i],"-s")){ + int active = yon_gtk_combo_box_text_find(window->userShellCombo,parameters_substring[i+1]); + if (!active){ + gtk_entry_set_text(GTK_ENTRY(window->userShellEntry),parameters_substring[i+1]); + gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->userShellCombo),"Set"); + } + i++; + + }else if (!strcmp(parameters_substring[i],"--system")||!strcmp(parameters_substring[i],"-r")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck),1); + }else if (!strcmp(parameters_substring[i],"--no-create-home")||!strcmp(parameters_substring[i],"-M")){ + gtk_combo_box_set_active(GTK_COMBO_BOX(window->userHomeCombo),2); + }else if (!strcmp(parameters_substring[i],"--no-user-group")||!strcmp(parameters_substring[i],"-N")){ + // gtk + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),0); + gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry),""); + }else if (!strcmp(parameters_substring[i],"--non-unique")||!strcmp(parameters_substring[i],"-o")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userCreateUnuniqueCheck),1); + }else if (!strcmp(parameters_substring[i],"--badnames")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userDontCheckCheck),1); } - i++; - - }else if (!strcmp(parameters_substring[i],"--system")||!strcmp(parameters_substring[i],"-r")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck),1); - }else if (!strcmp(parameters_substring[i],"--no-create-home")||!strcmp(parameters_substring[i],"-M")){ - gtk_combo_box_set_active(GTK_COMBO_BOX(window->userHomeCombo),2); - }else if (!strcmp(parameters_substring[i],"--no-user-group")||!strcmp(parameters_substring[i],"-N")){ - // gtk - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),0); - gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry),""); - }else if (!strcmp(parameters_substring[i],"--non-unique")||!strcmp(parameters_substring[i],"-o")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userCreateUnuniqueCheck),1); - }else if (!strcmp(parameters_substring[i],"--badnames")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userDontCheckCheck),1); } + // gtk_entry_set_text(GTK_ENTRY(window->), parsed_size>4?parameters[4]:""); } - // gtk_entry_set_text(GTK_ENTRY(window->), parsed_size>4?parameters[4]:""); - } - window->old_password=parameters[5]; - if(parsed_size>5){ - if (strcmp(parameters[5],"x")){ - gtk_entry_set_text(GTK_ENTRY(window->userPasswordEntry), parsed_size>5?parameters[5]:""); - gtk_combo_box_set_active(GTK_COMBO_BOX(window->userPasswordCombo),3); - } - - } - free(parameters); - parameters=yon_char_parse(yon_config_get_by_key(USERSHADOW(name)),&parsed_size,":"); - gtk_entry_set_text(GTK_ENTRY(window->userPasswordChangedEntry),parsed_size>0?parameters[0]:""); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userPasswordChangeDelayMinimumSpin),atol(parsed_size>1?parameters[1]:"0")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userPasswordChangeDelayMaximumSpin),atol(parsed_size>2?parameters[2]:"0")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userWarningSpin),atol(parsed_size>3?parameters[3]:"0")); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userActivitySpin),atol(parsed_size>4?parameters[4]:"0")); - if (parsed_size>5&&!yon_char_is_empty(parameters[5])){ - GDateTime *date = g_date_time_new_from_unix_local(atol(parameters[5])); - gtk_entry_set_text(GTK_ENTRY(window->userPasswordExpirationEntry),g_date_time_format(date,"%c")); - } - gtk_window_set_transient_for(GTK_WINDOW(window->CreateUserWindow),GTK_WINDOW(widgets->Window)); - gtk_widget_show(window->CreateUserWindow); - - char *useradd_sync = NULL; - useradd_sync = yon_config_get_by_key(USERADD_SYNC(name)); - if (useradd_sync){ - if (strstr(useradd_sync,"boot")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UseraddBootCheck),1); + window->old_password=parameters[5]; + if(parsed_size>5){ + if (strcmp(parameters[5],"x")){ + gtk_entry_set_text(GTK_ENTRY(window->userPasswordEntry), parsed_size>5?parameters[5]:""); + gtk_combo_box_set_active(GTK_COMBO_BOX(window->userPasswordCombo),3); + } + } - if (strstr(useradd_sync,"shutdown")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UseraddShutdownCheck),1); + free(parameters); + parameters=yon_char_parse(yon_config_get_by_key(USERSHADOW(name)),&parsed_size,":"); + gtk_entry_set_text(GTK_ENTRY(window->userPasswordChangedEntry),parsed_size>0?parameters[0]:""); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userPasswordChangeDelayMinimumSpin),atol(parsed_size>1?parameters[1]:"0")); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userPasswordChangeDelayMaximumSpin),atol(parsed_size>2?parameters[2]:"0")); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userWarningSpin),atol(parsed_size>3?parameters[3]:"0")); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userActivitySpin),atol(parsed_size>4?parameters[4]:"0")); + if (parsed_size>5&&!yon_char_is_empty(parameters[5])){ + GDateTime *date = g_date_time_new_from_unix_local(atol(parameters[5])); + gtk_entry_set_text(GTK_ENTRY(window->userPasswordExpirationEntry),g_date_time_format(date,"%c")); } - free(useradd_sync); - } - char *usershadow_sync =yon_config_get_by_key(USERSHADOW_SYNC(name)); - if (usershadow_sync){ - if (strstr(usershadow_sync,"boot")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsershadowBootCheck),1); + gtk_window_set_transient_for(GTK_WINDOW(window->CreateUserWindow),GTK_WINDOW(widgets->Window)); + gtk_widget_show(window->CreateUserWindow); + + char *useradd_sync = NULL; + useradd_sync = yon_config_get_by_key(USERADD_SYNC(name)); + if (useradd_sync){ + if (strstr(useradd_sync,"boot")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UseraddBootCheck),1); + } + if (strstr(useradd_sync,"shutdown")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UseraddShutdownCheck),1); + } + free(useradd_sync); } - if (strstr(usershadow_sync,"shutdown")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsershadowShutdownCheck),1); + char *usershadow_sync =yon_config_get_by_key(USERSHADOW_SYNC(name)); + if (usershadow_sync){ + if (strstr(usershadow_sync,"boot")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsershadowBootCheck),1); + } + if (strstr(usershadow_sync,"shutdown")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsershadowShutdownCheck),1); + } + free(usershadow_sync); } - free(usershadow_sync); } }