Users saving fixes

pull/359/head
parent 0c0b0798f8
commit e5fa51363c

@ -15,7 +15,6 @@ int yon_users_save(main_window *widgets){
GList *users = gtk_container_get_children(GTK_CONTAINER(widgets->UserAddBox));
GList *iter;
if (!users){
{
int size = 0;
config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&size);
@ -28,11 +27,12 @@ int yon_users_save(main_window *widgets){
}
yon_config_remove_by_list(users,size);
}
if (!users){
yon_config_register(DEFAULTUSER_parameter,DEFAULTUSER_parameter_command,"root");
} else {
for (iter=users;iter;iter=iter->next){
yon_user_struct *user = g_object_get_data(G_OBJECT(iter->data),"yon_user_struct");
if (user&&user->changed){
if (user){
if (!yon_user_save(user)){
yon_ubl_status_box_spawn(GTK_CONTAINER(main_config.status_box),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
@ -97,6 +97,9 @@ int yon_user_save(yon_user_struct *user){
}
char *parameter = yon_char_unite(yon_char_return_if_exist(name,""),":",yon_char_return_if_exist(admin_uid,""),"::::",yon_char_return_if_exist(password,""),NULL);
yon_config_register(USERADD_parameter(login),USERADD_parameter_command(login),parameter);
if (!yon_char_is_empty(user->old_login)&&strcmp(user->old_login,login)){
yon_config_remove_by_key(USERADD_parameter(user->old_login));
}
free(parameter);
return 1;
}
@ -234,17 +237,18 @@ void yon_user_init(main_window *widgets){
}
int users_size;
config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&users_size);
char *addadm = config(ADDADM_parameter);
if (yon_char_is_empty(addadm)){
addadm = config(ADDADM_system_parameter);
}
char *default_user = config(DEFAULTUSER_parameter);
if (yon_char_is_empty(default_user)){
default_user = config(DEFAULTUSER_system_parameter);
}
if (!users_size){
char *addadm = config(ADDADM_parameter);
if (yon_char_is_empty(addadm)){
addadm = config(ADDADM_system_parameter);
}
char *def_usr = config(DEFAULTUSER_parameter);
if (yon_char_is_empty(def_usr)||(!yon_char_is_empty(def_usr)&&strcmp(def_usr,"root"))){
char *default_user = config(DEFAULTUSER_parameter);
if (yon_char_is_empty(default_user)){
default_user = config(DEFAULTUSER_system_parameter);
}
yon_user_struct *user = yon_user_struct_new();
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1);
g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),widgets);
@ -256,13 +260,14 @@ void yon_user_init(main_window *widgets){
else {
gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),"superadmin");
}
user->changed=1;
if (!yon_char_is_empty(default_passwd))
gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),default_passwd);
if (!yon_char_is_empty(def_usr)&& !strcmp(def_usr,default_user)){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),!strcmp(addadm,"yes"));
} else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),strcmp(addadm,"yes"));
}
// if (!yon_char_is_empty(def_usr)&& !strcmp(def_usr,default_user)){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1);
// } else {
// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),strcmp(addadm,"yes"));
// }
}
}
for (int i=0;i<users_size;i++){
@ -281,15 +286,11 @@ void yon_user_init(main_window *widgets){
config_str parsed = yon_char_parse(parameter,&parsed_size,":");
gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),login);
user->old_login = yon_char_new(login);
if (parsed_size>0)
gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),parsed[0]);
if (parsed_size>1){
if (!yon_char_is_empty(parsed[1])){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1);
}
}
if (parsed_size>5&&!yon_char_is_empty(parsed[5])){
if (strcmp(parsed[5],default_passwd)&&parsed[5]){
if (strcmp(parsed[5],default_passwd)){
gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),parsed[5]);
gtk_combo_box_set_active(GTK_COMBO_BOX(user->PasswordCombo),1);
} else {
@ -297,6 +298,15 @@ void yon_user_init(main_window *widgets){
gtk_combo_box_set_active(GTK_COMBO_BOX(user->PasswordCombo),0);
}
}
if (parsed_size>1){
if (!yon_char_is_empty(parsed[1])){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1);
}
} else if (!strcmp(login,default_user)){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),!strcmp(addadm,"yes"));
} else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),strcmp(addadm,"yes"));
}
gtk_widget_show(user->MainBox);
}
}

@ -973,6 +973,7 @@ typedef struct
GtkWidget *PasswordButton;
GtkWidget *AdminCheck;
int changed;
char *old_login;
} yon_user_struct;
typedef struct

Loading…
Cancel
Save