User's groups now load correctly into groups choose window

pull/95/head
parent 05485890cb
commit 026e54d7b9

@ -468,6 +468,12 @@ void on_groups_multiple_clicked(GtkWidget *self, GtkEntry *output_target){
gtk_window_set_title(GTK_WINDOW(window->GroupsWindow),ADDITIONAL_GROUPS_TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(window->HeaderLabel),ADDITIONAL_GROUPS_TITLE_LABEL);
GtkTreeIter iter, itar;
char *output = (char*)gtk_entry_get_text(output_target);
int size=0;
config_str parsed=NULL;
if (!yon_char_is_empty(output)){
parsed = yon_char_parse(output,&size,",");
}
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.groups_list),&iter);
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.groups_list),&iter)){
char *groupname;
@ -476,6 +482,16 @@ void on_groups_multiple_clicked(GtkWidget *self, GtkEntry *output_target){
gtk_list_store_set(window->list,&itar,1,groupname,-1);
free(groupname);
}
valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&iter);
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&iter)){
char *groupname;
gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,1,&groupname,-1);
if (parsed){
if (yon_char_parsed_check_exist(parsed,size,groupname)>-1){
gtk_list_store_set(window->list,&iter,0,1,-1);
}
}
}
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
yon_dictionary_add_or_create_if_exists_with_data(dict,"output",output_target);
@ -1300,7 +1316,10 @@ void on_user_save(GtkWidget *self, dictionary *dict){
}
additional_groups = (char*)gtk_entry_get_text(GTK_ENTRY(window->userAdditionalGroupsEntry));
char *default_groups = yon_config_get_by_key("USERGROUPS");
if (!yon_char_is_empty(default_groups)&&!strcmp(default_groups,additional_groups)){
additional_groups="";
}
long password_change_interval_minimum_active = gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->userPasswordChangeDelayMinimumSpin));
if (password_change_interval_minimum_active>0){
password_change_interval_minimum = yon_char_from_long(password_change_interval_minimum_active);
@ -1693,8 +1712,12 @@ void on_main_edit(GtkWidget *self, main_window *widgets){
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 (strcmp(parameters[3],"x")){
gtk_entry_set_text(GTK_ENTRY(window->userAdditionalGroupsEntry), parameters[3]);
} else {
char *default_groups = yon_config_get_by_key("USERGROUPS");
gtk_entry_set_text(GTK_ENTRY(window->userAdditionalGroupsEntry), default_groups);
}
}
if (parsed_size>4&&!yon_char_is_empty(parameters[4])){

Loading…
Cancel
Save