Merge pull request 'master' (#359) from YanTheKaller/ubinstall-gtk:master into master

Reviewed-on: #359
pull/362/head^2
Dmitry Razumov 4 weeks ago
commit 38f1e0bd6b

@ -15,7 +15,6 @@ int yon_users_save(main_window *widgets){
GList *users = gtk_container_get_children(GTK_CONTAINER(widgets->UserAddBox)); GList *users = gtk_container_get_children(GTK_CONTAINER(widgets->UserAddBox));
GList *iter; GList *iter;
if (!users){
{ {
int size = 0; int size = 0;
config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&size); 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); yon_config_remove_by_list(users,size);
} }
if (!users){
yon_config_register(DEFAULTUSER_parameter,DEFAULTUSER_parameter_command,"root"); yon_config_register(DEFAULTUSER_parameter,DEFAULTUSER_parameter_command,"root");
} else { } else {
for (iter=users;iter;iter=iter->next){ for (iter=users;iter;iter=iter->next){
yon_user_struct *user = g_object_get_data(G_OBJECT(iter->data),"yon_user_struct"); 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)){ if (!yon_user_save(user)){
yon_ubl_status_box_spawn(GTK_CONTAINER(main_config.status_box),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); 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); 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); 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); free(parameter);
return 1; return 1;
} }
@ -234,17 +237,18 @@ void yon_user_init(main_window *widgets){
} }
int users_size; int users_size;
config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&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){ 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); char *def_usr = config(DEFAULTUSER_parameter);
if (yon_char_is_empty(def_usr)||(!yon_char_is_empty(def_usr)&&strcmp(def_usr,"root"))){ 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(); yon_user_struct *user = yon_user_struct_new();
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1); 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); 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 { else {
gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),"superadmin"); gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),"superadmin");
} }
user->changed=1;
if (!yon_char_is_empty(default_passwd)) if (!yon_char_is_empty(default_passwd))
gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),default_passwd); gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),default_passwd);
if (!yon_char_is_empty(def_usr)&& !strcmp(def_usr,default_user)){ // 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")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1);
} else { // } else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),strcmp(addadm,"yes")); // gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),strcmp(addadm,"yes"));
} // }
} }
} }
for (int i=0;i<users_size;i++){ 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,":"); config_str parsed = yon_char_parse(parameter,&parsed_size,":");
gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),login); gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),login);
user->old_login = yon_char_new(login);
if (parsed_size>0) if (parsed_size>0)
gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),parsed[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 (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_entry_set_text(GTK_ENTRY(user->PasswordEntry),parsed[5]);
gtk_combo_box_set_active(GTK_COMBO_BOX(user->PasswordCombo),1); gtk_combo_box_set_active(GTK_COMBO_BOX(user->PasswordCombo),1);
} else { } else {
@ -297,6 +298,15 @@ void yon_user_init(main_window *widgets){
gtk_combo_box_set_active(GTK_COMBO_BOX(user->PasswordCombo),0); 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); gtk_widget_show(user->MainBox);
} }
} }

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

Loading…
Cancel
Save