|
|
|
|
@ -309,8 +309,60 @@ void on_config_save(GtkWidget *self, main_window *widgets){
|
|
|
|
|
yon_samba_sync_proceed();
|
|
|
|
|
template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_BOTH,"users", "DEFAULTPASSWD DEFAULTROOTPASSWD DEFAULTUSER HASHPASSWD USERGROUPS ADDADM USERADD[*] USERSHADOW[*] GROUPADD[*]",NULL);
|
|
|
|
|
if (window){
|
|
|
|
|
yon_hide_passwords(window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_save_window_close_update),widgets);
|
|
|
|
|
if (main_config.load_mode==0){
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
int 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 *parameter,*old_value, *new_value;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,1,¶meter,2,&old_value,3,&new_value,-1);
|
|
|
|
|
int old_size, new_size;
|
|
|
|
|
config_str old_parsed = yon_char_parse(old_value,&old_size,":");
|
|
|
|
|
config_str new_parsed = yon_char_parse(new_value,&new_size,":");
|
|
|
|
|
if (old_parsed&&new_parsed){
|
|
|
|
|
char *parameter_type = yon_char_divide_search(parameter,"[",-1);
|
|
|
|
|
if (!strcmp(parameter_type,"USERADD")){
|
|
|
|
|
if (old_size>5){
|
|
|
|
|
old_parsed = yon_char_parsed_rip(old_parsed,&old_size,5);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (new_size>5){
|
|
|
|
|
new_parsed = yon_char_parsed_rip(new_parsed,&new_size,5);
|
|
|
|
|
}
|
|
|
|
|
char *old_final = yon_char_parsed_to_string(old_parsed,old_size,":");
|
|
|
|
|
char *new_final = yon_char_parsed_to_string(new_parsed,new_size,":");
|
|
|
|
|
if (!strcmp(old_final,new_final)){
|
|
|
|
|
gtk_list_store_set(window->list,&iter,5,0,-1);
|
|
|
|
|
}
|
|
|
|
|
free(old_final);
|
|
|
|
|
free(new_final);
|
|
|
|
|
yon_char_parsed_free(old_parsed,old_size);
|
|
|
|
|
yon_char_parsed_free(new_parsed,new_size);
|
|
|
|
|
|
|
|
|
|
} else if (!strcmp(parameter_type,"GROUPADD")){
|
|
|
|
|
if (old_size>3){
|
|
|
|
|
old_parsed = yon_char_parsed_rip(old_parsed,&old_size,3);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (new_size>3){
|
|
|
|
|
new_parsed = yon_char_parsed_rip(new_parsed,&new_size,3);
|
|
|
|
|
}
|
|
|
|
|
char *old_final = yon_char_parsed_to_string(old_parsed,old_size,":");
|
|
|
|
|
char *new_final = yon_char_parsed_to_string(new_parsed,new_size,":");
|
|
|
|
|
if (!strcmp(old_final,new_final)){
|
|
|
|
|
gtk_list_store_set(window->list,&iter,5,0,-1);
|
|
|
|
|
}
|
|
|
|
|
free(old_final);
|
|
|
|
|
free(new_final);
|
|
|
|
|
yon_char_parsed_free(old_parsed,old_size);
|
|
|
|
|
yon_char_parsed_free(new_parsed,new_size);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
yon_hide_passwords(window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_save_window_close_update),widgets);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|