|
|
|
|
@ -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);
|
|
|
|
|
}
|
|
|
|
|
}
|