Fixed boot load saving & loading

pull/270/head
parent a8db6f303d
commit c30b87db1a

@ -7,9 +7,9 @@ int yon_bootloader_save(main_window *widgets){
} else {
yon_config_remove_by_key(GRUB_TIMEOUT_parameter);
}
if (gtk_switch_get_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch))){
if (!gtk_switch_get_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch))){
yon_config_register(AUTOLOGINUSER_parameter,AUTOLOGINUSER_parameter_command,"no");
GtkTreeIter iter;
yon_config_register(AUTOLOGINUSER_parameter,AUTOLOGINUSER_parameter_command,"yes");
GtkTreeModel *model = GTK_TREE_MODEL(widgets->BootloadUsersList);
int admin_size=0;
config_str admin_list = NULL;
@ -22,8 +22,12 @@ int yon_bootloader_save(main_window *widgets){
}
char *admin_string = yon_char_parsed_to_string(admin_list,admin_size,",");
yon_config_register(GRUB_PASSWORD_parameter(username),GRUB_PASSWORD_parameter_command(username),password);
if (!yon_char_is_empty(admin_string)){
yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,admin_string);
free(admin_string);
} else {
yon_config_remove_by_key(GRUB_SUPERUSERS_parameter);
}
}
} else {
int size;
@ -31,7 +35,7 @@ int yon_bootloader_save(main_window *widgets){
for (int i=0;i<size;i++){
yon_config_remove_by_key(GRUB_PASSWORD_parameter(users[i]));
}
yon_config_register(AUTOLOGINUSER_parameter,AUTOLOGINUSER_parameter_command,"no");
yon_config_register(AUTOLOGINUSER_parameter,AUTOLOGINUSER_parameter_command,"yes");
yon_config_remove_by_key(GRUB_PASSWORD_parameter_all);
yon_config_remove_by_key(GRUB_SUPERUSERS_parameter);
}
@ -86,49 +90,49 @@ void on_bootloader_user_accept(GtkWidget *, bootloader_user_window *window){
free(yon_char_divide(password,pos));
}
}
if (!yon_char_is_empty(window->prev_name)&&strcmp(username,window->prev_name)){
yon_config_remove_by_key(GRUB_PASSWORD(window->prev_name));
int size;
char *superusers = config(GRUB_SUPERUSERS_parameter);
config_str parsed = yon_char_parse(superusers,&size,",");
int pos = yon_char_parsed_check_exist(parsed,size,(char*)username);
if (pos>-1){
parsed = yon_char_parsed_rip(parsed,&size,pos);
char *superusers = yon_char_parsed_to_string(parsed,size,",");
if (!yon_char_is_empty(superusers)){
yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,superusers);
} else {
yon_config_remove_by_key(GRUB_SUPERUSERS_parameter);
}
}
}
yon_config_register(GRUB_PASSWORD(username),GRUB_SUPERUSERS_parameter_command,(char*)password);
free(password);
// if (!yon_char_is_empty(window->prev_name)&&strcmp(username,window->prev_name)){
// yon_config_remove_by_key(GRUB_PASSWORD(window->prev_name));
// int size;
// char *superusers = config(GRUB_SUPERUSERS_parameter);
// config_str parsed = yon_char_parse(superusers,&size,",");
// int pos = yon_char_parsed_check_exist(parsed,size,(char*)username);
// if (pos>-1){
// parsed = yon_char_parsed_rip(parsed,&size,pos);
// char *superusers = yon_char_parsed_to_string(parsed,size,",");
// if (!yon_char_is_empty(superusers)){
// yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,superusers);
// } else {
// yon_config_remove_by_key(GRUB_SUPERUSERS_parameter);
// }
// }
// }
// yon_config_register(GRUB_PASSWORD(username),GRUB_SUPERUSERS_parameter_command,(char*)password);
GtkTreeIter iter;
gtk_list_store_append(widgets->BootloadUsersList,&iter);
gtk_list_store_set(widgets->BootloadUsersList,&iter,0,gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->AdminCheck)),1,username,2,"******",-1);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->AdminCheck))){
int size;
char *superusers = config(GRUB_SUPERUSERS_parameter);
config_str parsed = yon_char_parse(superusers,&size,",");
if (yon_char_parsed_check_exist(parsed,size,(char*)username)==-1){
yon_char_parsed_add_or_create_if_exists(parsed,&size,(char*)username);
char *superusers = yon_char_parsed_to_string(parsed,size,",");
yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,superusers);
}
} else {
int size;
char *superusers = config(GRUB_SUPERUSERS_parameter);
config_str parsed = yon_char_parse(superusers,&size,",");
int pos = yon_char_parsed_check_exist(parsed,size,(char*)username);
if (pos!=-1){
parsed = yon_char_parsed_rip(parsed,&size,pos);
char *superusers = yon_char_parsed_to_string(parsed,size,",");
yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,superusers);
}
}
gtk_list_store_set(widgets->BootloadUsersList,&iter,0,gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->AdminCheck)),1,username,2,password,3,"******",-1);
// free(password);
// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->AdminCheck))){
// int size;
// char *superusers = config(GRUB_SUPERUSERS_parameter);
// config_str parsed = yon_char_parse(superusers,&size,",");
// if (yon_char_parsed_check_exist(parsed,size,(char*)username)==-1){
// yon_char_parsed_add_or_create_if_exists(parsed,&size,(char*)username);
// char *superusers = yon_char_parsed_to_string(parsed,size,",");
// // yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,superusers);
// }
// } else {
// int size;
// char *superusers = config(GRUB_SUPERUSERS_parameter);
// config_str parsed = yon_char_parse(superusers,&size,",");
// int pos = yon_char_parsed_check_exist(parsed,size,(char*)username);
// if (pos!=-1){
// parsed = yon_char_parsed_rip(parsed,&size,pos);
// char *superusers = yon_char_parsed_to_string(parsed,size,",");
// // yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,superusers);
// }
// }
on_subwindow_close(window->Window);
}
@ -466,9 +470,9 @@ void yon_bootloader_init(main_window *widgets){
} else {
gtk_entry_set_text(GTK_ENTRY(widgets->BootloadDefaultOSEntry),DEFAULT_BOOTLOAD_MENU_ITEM_LABEL);
}
if (!yon_char_is_empty(autologin)&&(!strcmp(autologin,"yes")||!strcmp(autologin,"enable"))){
if (!yon_char_is_empty(autologin)&&(!strcmp(autologin,"no")||!strcmp(autologin,"disable"))){
gtk_list_store_clear(widgets->BootloadUsersList);
gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),1);
gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),0);
int admins_size;
config_str admins_parsed = yon_char_parse(admins,&admins_size,",");
GtkTreeIter iter;
@ -476,13 +480,17 @@ void yon_bootloader_init(main_window *widgets){
char *parameter = yon_char_new(users[i]);
char *parameter_name = yon_char_divide_search(parameter,"=",-1);
char *key = yon_config_parameter_get_key(parameter_name);
char *key_sub = key+yon_char_find_last(key,'[');
char *subkey = yon_config_parameter_get_key(key_sub);
gtk_list_store_append(widgets->BootloadUsersList,&iter);
gtk_list_store_set(widgets->BootloadUsersList,&iter,0,yon_char_parsed_check_exist(admins_parsed,admins_size,key),1,key,2,parameter,3,"******",-1);
gtk_list_store_set(widgets->BootloadUsersList,&iter,0,yon_char_parsed_check_exist(admins_parsed,admins_size,subkey)>-1,1,subkey,2,parameter,3,"******",-1);
free(parameter);
free(parameter_name);
free(key);
free(subkey);
}
yon_char_parsed_free(admins_parsed,admins_size);
} else {
gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),1);
}
}
Loading…
Cancel
Save