|
|
|
@ -938,7 +938,9 @@ void on_user_save(GtkWidget *self, dictionary *dict){
|
|
|
|
yon_config_register(USERADD(login),"users",final_user);
|
|
|
|
yon_config_register(USERADD(login),"users",final_user);
|
|
|
|
yon_config_register(USERSHADOW(login),"users",shadow_string);
|
|
|
|
yon_config_register(USERSHADOW(login),"users",shadow_string);
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
gtk_list_store_append(widgets->UsersList,&iter);
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(widgets->UsersList);
|
|
|
|
|
|
|
|
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&model,&iter))
|
|
|
|
|
|
|
|
gtk_list_store_append(widgets->UsersList,&iter);
|
|
|
|
gtk_list_store_set(widgets->UsersList,&iter,1,yon_char_return_if_exist(uid_string,""),2,yon_char_return_if_exist(login,""),3,yon_char_return_if_exist(username,""),4,yon_char_return_if_exist(main_group,""),5,yon_char_return_if_exist(additional_groups,""),6,yon_char_unite(yon_char_return_if_exist(user_home,""),yon_char_return_if_exist(user_shell,""),yon_char_return_if_exist(create_system_user,""),yon_char_return_if_exist(create_ununique,""),yon_char_return_if_exist(do_not_check,""),NULL),7,yon_char_return_if_exist(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->userPasswordCombo)),""),-1);
|
|
|
|
gtk_list_store_set(widgets->UsersList,&iter,1,yon_char_return_if_exist(uid_string,""),2,yon_char_return_if_exist(login,""),3,yon_char_return_if_exist(username,""),4,yon_char_return_if_exist(main_group,""),5,yon_char_return_if_exist(additional_groups,""),6,yon_char_unite(yon_char_return_if_exist(user_home,""),yon_char_return_if_exist(user_shell,""),yon_char_return_if_exist(create_system_user,""),yon_char_return_if_exist(create_ununique,""),yon_char_return_if_exist(do_not_check,""),NULL),7,yon_char_return_if_exist(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->userPasswordCombo)),""),-1);
|
|
|
|
on_subwindow_close(self);
|
|
|
|
on_subwindow_close(self);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1070,11 +1072,13 @@ void on_main_edit(GtkWidget *self, main_window *widgets){
|
|
|
|
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);
|
|
|
|
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");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
i++;
|
|
|
|
i++;
|
|
|
|
|
|
|
|
|
|
|
|
@ -1084,6 +1088,8 @@ void on_main_edit(GtkWidget *self, main_window *widgets){
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(window->userHomeCombo),2);
|
|
|
|
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")){
|
|
|
|
}else if (!strcmp(parameters_substring[i],"--no-user-group")||!strcmp(parameters_substring[i],"-N")){
|
|
|
|
// gtk
|
|
|
|
// 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")){
|
|
|
|
}else if (!strcmp(parameters_substring[i],"--non-unique")||!strcmp(parameters_substring[i],"-o")){
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userCreateUnuniqueCheck),1);
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userCreateUnuniqueCheck),1);
|
|
|
|
}else if (!strcmp(parameters_substring[i],"--badnames")){
|
|
|
|
}else if (!strcmp(parameters_substring[i],"--badnames")){
|
|
|
|
@ -1187,8 +1193,35 @@ void on_main_delete(GtkWidget *self, main_window *widgets){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_config_update(){
|
|
|
|
void on_config_update(GtkWidget *self, main_window *widgets){
|
|
|
|
|
|
|
|
yon_config_load_register(main_config.load_mode==1?YON_CONFIG_LOCAL:YON_CONFIG_GLOBAL,"users","DEFAULTPASSWD DEFAULTROOTPASSWD DEFAULTUSER HASHPASSWD USERGROUPS ADDADM USERADD[*] USERSHADOW[*] GROUPADD[*]",NULL);
|
|
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
|
|
|
int size;
|
|
|
|
|
|
|
|
config_str users = yon_config_get_all_by_key("USERADD",&size);
|
|
|
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
|
|
|
char *value = yon_char_new(users[i]);
|
|
|
|
|
|
|
|
char *login = yon_char_divide_search(value,"\"",-1);
|
|
|
|
|
|
|
|
free(yon_char_divide_search(login,"[",-1));
|
|
|
|
|
|
|
|
login = yon_char_divide_search(login,"]",-1);
|
|
|
|
|
|
|
|
if (value[strlen(value)-1]=='\"') value[strlen(value)-1]='\0';
|
|
|
|
|
|
|
|
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->UsersList),&iter);
|
|
|
|
|
|
|
|
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->UsersList),&iter)){
|
|
|
|
|
|
|
|
char *name;
|
|
|
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,-1);
|
|
|
|
|
|
|
|
if (!strcmp(name,login)){
|
|
|
|
|
|
|
|
int parsed_size;
|
|
|
|
|
|
|
|
config_str parsed = yon_char_parse(value,&parsed_size,":");
|
|
|
|
|
|
|
|
gtk_list_store_set(widgets->UsersList,&iter,
|
|
|
|
|
|
|
|
1,parsed_size>1?parsed[1]:"",
|
|
|
|
|
|
|
|
3,parsed_size>0?parsed[0]:"",
|
|
|
|
|
|
|
|
4,parsed_size>2?parsed[2]:"",
|
|
|
|
|
|
|
|
5,parsed_size>3?parsed[3]:"",
|
|
|
|
|
|
|
|
6,parsed_size>4?parsed[4]:"",
|
|
|
|
|
|
|
|
7,parsed_size>5?!strcmp(parsed[5],"x")||!strcmp(parsed[5],"")?DEFAULT_USER_LABEL:SET_PASSWORD_LABEL:NO_PASSWORD_LABEL,
|
|
|
|
|
|
|
|
-1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1304,6 +1337,7 @@ void yon_main_window_complete(main_window *widgets){
|
|
|
|
g_signal_connect(G_OBJECT(widgets->button3),"clicked",G_CALLBACK(on_standard_groups_open),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->button3),"clicked",G_CALLBACK(on_standard_groups_open),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->button2),"clicked",G_CALLBACK(on_ubl_settings_usergroups_additional_settings_open),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->button2),"clicked",G_CALLBACK(on_ubl_settings_usergroups_additional_settings_open),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->button1),"clicked",G_CALLBACK(on_settings_usergroups_system_open),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->button1),"clicked",G_CALLBACK(on_settings_usergroups_system_open),widgets);
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->UpdateButton),"clicked",G_CALLBACK(on_config_update),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_global_save),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_global_save),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(on_config_local_save),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(on_config_local_save),widgets);
|
|
|
|
|