diff --git a/source/ubinstall-gtk-bootloader.c b/source/ubinstall-gtk-bootloader.c index 55a0348..875f4a7 100644 --- a/source/ubinstall-gtk-bootloader.c +++ b/source/ubinstall-gtk-bootloader.c @@ -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); - yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,admin_string); - free(admin_string); + 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;iprev_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,23 +470,27 @@ 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; for (int i=0;iBootloadUsersList,&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); } } \ No newline at end of file