|
|
|
@ -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);
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,-1);
|
|
|
|
char *parameter_string = yon_config_get_by_key(USERADD(name));
|
|
|
|
char *parameter_string = yon_config_get_by_key(USERADD(name));
|
|
|
|
int parsed_size=0;
|
|
|
|
int parsed_size=0;
|
|
|
|
if (parameter_string[0]=='\"') yon_char_divide(parameter_string,0);
|
|
|
|
if (parameter_string){
|
|
|
|
if (parameter_string[strlen(parameter_string)-1]=='\"') parameter_string[strlen(parameter_string)-1]='\0';
|
|
|
|
if (parameter_string[0]=='\"') yon_char_divide(parameter_string,0);
|
|
|
|
config_str parameters = yon_char_parse(parameter_string,&parsed_size,":");
|
|
|
|
if (parameter_string[strlen(parameter_string)-1]=='\"') parameter_string[strlen(parameter_string)-1]='\0';
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userLoginEntry), name);
|
|
|
|
config_str parameters = yon_char_parse(parameter_string,&parsed_size,":");
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), name);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userLoginEntry), name);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUserNameEntry), parsed_size>0?parameters[0]:"");
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), name);
|
|
|
|
if (parsed_size>1){
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUserNameEntry), parsed_size>0?parameters[0]:"");
|
|
|
|
if (strcmp(parameters[1],"x")){
|
|
|
|
if (parsed_size>1){
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck),0);
|
|
|
|
if (strcmp(parameters[1],"x")){
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry), parsed_size>1?parameters[1]:"");
|
|
|
|
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 (parsed_size>2){
|
|
|
|
if (!strcmp(parameters[2],"x"))
|
|
|
|
if (!strcmp(parameters[2],"x"))
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),1);
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),1);
|
|
|
|
else
|
|
|
|
else
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), parsed_size>2?parameters[2]:"");
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), parsed_size>2?parameters[2]:"");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (parsed_size>3){
|
|
|
|
if (parsed_size>3){
|
|
|
|
if (strcmp(parameters[3],"x"))
|
|
|
|
if (strcmp(parameters[3],"x"))
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userAdditionalGroupsEntry), parsed_size>3?parameters[3]:"");
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userAdditionalGroupsEntry), parsed_size>3?parameters[3]:"");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (parsed_size>4&&!yon_char_is_empty(parameters[4])){
|
|
|
|
if (parsed_size>4&&!yon_char_is_empty(parameters[4])){
|
|
|
|
int params_size;
|
|
|
|
int params_size;
|
|
|
|
config_str parameters_substring = yon_char_parse(parameters[4],¶ms_size," ");
|
|
|
|
config_str parameters_substring = yon_char_parse(parameters[4],¶ms_size," ");
|
|
|
|
for (int i=0;i<params_size;i++){
|
|
|
|
for (int i=0;i<params_size;i++){
|
|
|
|
if (!strcmp(parameters_substring[i],"--home-dir")){
|
|
|
|
if (!strcmp(parameters_substring[i],"--home-dir")){
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userHomeEntry),parameters_substring[i+1]);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userHomeEntry),parameters_substring[i+1]);
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(window->userHomeCombo),2);
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(window->userHomeCombo),2);
|
|
|
|
i++;
|
|
|
|
i++;
|
|
|
|
} else if (!strcmp(parameters_substring[i],"--shell")||!strcmp(parameters_substring[i],"-s")){
|
|
|
|
} 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]);
|
|
|
|
int active = yon_gtk_combo_box_text_find(window->userShellCombo,parameters_substring[i+1]);
|
|
|
|
if (!active){
|
|
|
|
if (!active){
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userShellEntry),parameters_substring[i+1]);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userShellEntry),parameters_substring[i+1]);
|
|
|
|
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->userShellCombo),"Set");
|
|
|
|
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){
|
|
|
|
window->old_password=parameters[5];
|
|
|
|
if (strcmp(parameters[5],"x")){
|
|
|
|
if(parsed_size>5){
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userPasswordEntry), parsed_size>5?parameters[5]:"");
|
|
|
|
if (strcmp(parameters[5],"x")){
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(window->userPasswordCombo),3);
|
|
|
|
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);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (strstr(useradd_sync,"shutdown")){
|
|
|
|
free(parameters);
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UseraddShutdownCheck),1);
|
|
|
|
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);
|
|
|
|
gtk_window_set_transient_for(GTK_WINDOW(window->CreateUserWindow),GTK_WINDOW(widgets->Window));
|
|
|
|
}
|
|
|
|
gtk_widget_show(window->CreateUserWindow);
|
|
|
|
char *usershadow_sync =yon_config_get_by_key(USERSHADOW_SYNC(name));
|
|
|
|
|
|
|
|
if (usershadow_sync){
|
|
|
|
char *useradd_sync = NULL;
|
|
|
|
if (strstr(usershadow_sync,"boot")){
|
|
|
|
useradd_sync = yon_config_get_by_key(USERADD_SYNC(name));
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsershadowBootCheck),1);
|
|
|
|
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")){
|
|
|
|
char *usershadow_sync =yon_config_get_by_key(USERSHADOW_SYNC(name));
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsershadowShutdownCheck),1);
|
|
|
|
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);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|