|
|
|
|
@ -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);
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
if (!users_size){
|
|
|
|
|
char *def_usr = config(DEFAULTUSER_parameter);
|
|
|
|
|
if (yon_char_is_empty(def_usr)||(!yon_char_is_empty(def_usr)&&strcmp(def_usr,"root"))){
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|