Password encrypt button changes

pull/247/head
parent f726a0531e
commit 1dae1c72ee

@ -23,9 +23,28 @@ void on_additional_settings_clicked(GtkWidget *, GtkEntry *){
} }
void on_passwords_encrypt(){ gboolean on_encrypt_update(dictionary *dict){
int pid = fork(); main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
if (!pid){ ubl_settings_usergroups_additional_settings_window *window = yon_dictionary_get_data(dict->first->next,ubl_settings_usergroups_additional_settings_window*);
exit(system(encrypt_passwords_command)); gtk_widget_destroy(window->Window);
yon_load_proceed((YON_CONFIG_TYPE)main_config.load_mode);
yon_interface_update(widgets);
return G_SOURCE_REMOVE;
} }
void *yon_passwords_encrypt(dictionary *dict){
int exitstatus = system(encrypt_passwords_command);
if (!exitstatus){
yon_ubl_status_box_render_thread(yon_char_get_localised_from_lib(SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
g_idle_add((GSourceFunc)on_encrypt_update,dict);
} else {
yon_ubl_status_box_render_thread(yon_char_get_localised_from_lib(FAIL_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
}
g_thread_exit(NULL);
}
void on_passwords_encrypt(GtkWidget*,dictionary *dict){
g_thread_new("encrypt_all_passwords_thread",(GThreadFunc)yon_passwords_encrypt,dict);
} }

@ -105,6 +105,19 @@ void on_password_accept(GtkWidget *self, dictionary *dict){
on_subwindow_close(self); on_subwindow_close(self);
} }
void on_password_hash_sensitiveness(GtkWidget *,ubl_settings_usergroups_password_window *window){
if (!yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry)))||!yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(window->RepeatPasswordEntry)))){
gtk_widget_set_sensitive(window->HashBox,0);
gtk_widget_set_sensitive(window->PasswordBox,1);
} else if (!yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry)))) {
gtk_widget_set_sensitive(window->HashBox,1);
gtk_widget_set_sensitive(window->PasswordBox,0);
} else {
gtk_widget_set_sensitive(window->HashBox,1);
gtk_widget_set_sensitive(window->PasswordBox,1);
}
}
ubl_settings_usergroups_password_window *yon_ubl_settings_usergroups_password_new(){ ubl_settings_usergroups_password_window *yon_ubl_settings_usergroups_password_new(){
ubl_settings_usergroups_password_window *window = malloc(sizeof(ubl_settings_usergroups_password_window)); ubl_settings_usergroups_password_window *window = malloc(sizeof(ubl_settings_usergroups_password_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_password); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_password);
@ -123,6 +136,9 @@ ubl_settings_usergroups_password_window *yon_ubl_settings_usergroups_password_ne
yon_window_config_custom_window_setup(GTK_WINDOW(window->CreateGroupWindow),"PasswordWindow"); yon_window_config_custom_window_setup(GTK_WINDOW(window->CreateGroupWindow),"PasswordWindow");
g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->PasswordEntry),"icon-press",G_CALLBACK(on_password_show_hide),NULL); g_signal_connect(G_OBJECT(window->PasswordEntry),"icon-press",G_CALLBACK(on_password_show_hide),NULL);
g_signal_connect(G_OBJECT(window->PasswordEntry),"changed",G_CALLBACK(on_password_hash_sensitiveness),window);
g_signal_connect(G_OBJECT(window->RepeatPasswordEntry),"changed",G_CALLBACK(on_password_hash_sensitiveness),window);
g_signal_connect(G_OBJECT(window->PasswordHashEntry),"changed",G_CALLBACK(on_password_hash_sensitiveness),window);
g_signal_connect(G_OBJECT(window->RepeatPasswordEntry),"icon-press",G_CALLBACK(on_password_show_hide),NULL); g_signal_connect(G_OBJECT(window->RepeatPasswordEntry),"icon-press",G_CALLBACK(on_password_show_hide),NULL);
g_signal_connect(G_OBJECT(window->PasswordHashEntry),"icon-press",G_CALLBACK(on_password_show_hide),NULL); g_signal_connect(G_OBJECT(window->PasswordHashEntry),"icon-press",G_CALLBACK(on_password_show_hide),NULL);
gtk_window_set_title(GTK_WINDOW(window->CreateGroupWindow),PASSWORD_TITLE_LABEL); gtk_window_set_title(GTK_WINDOW(window->CreateGroupWindow),PASSWORD_TITLE_LABEL);
@ -130,7 +146,6 @@ ubl_settings_usergroups_password_window *yon_ubl_settings_usergroups_password_ne
return window; return window;
} }
int yon_check_password_blocked(char *password){ int yon_check_password_blocked(char *password){
if (!yon_char_is_empty(password)){ if (!yon_char_is_empty(password)){
if (!strcmp(password,"!*")){ if (!strcmp(password,"!*")){

@ -717,12 +717,7 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
yon_dictionary_add_or_create_if_exists_with_data(root_dict,"entry",window->RootPasswordEntry); yon_dictionary_add_or_create_if_exists_with_data(root_dict,"entry",window->RootPasswordEntry);
g_signal_connect(G_OBJECT(window->DefaultPasswordButton),"clicked",G_CALLBACK(on_password_change),default_dict); g_signal_connect(G_OBJECT(window->DefaultPasswordButton),"clicked",G_CALLBACK(on_password_change),default_dict);
g_signal_connect(G_OBJECT(window->RootPasswordButton),"clicked",G_CALLBACK(on_password_change),root_dict); g_signal_connect(G_OBJECT(window->RootPasswordButton),"clicked",G_CALLBACK(on_password_change),root_dict);
dialog_confirmation_data *data=malloc(sizeof(dialog_confirmation_data));
data->function=on_passwords_encrypt;
data->action_text = ENCRYPT_SURE_LABEL;
data->data=NULL;
g_signal_connect(G_OBJECT(window->EncryptAllPasswordsButton),"clicked",G_CALLBACK(yon_confirmation_dialog_call),data);
g_signal_connect(G_OBJECT(window->PasswordHashCombo),"changed",G_CALLBACK(on_hash_changed),window); g_signal_connect(G_OBJECT(window->PasswordHashCombo),"changed",G_CALLBACK(on_hash_changed),window);
g_signal_connect(G_OBJECT(window->DefaultUserNameEntry),"changed",G_CALLBACK(on_additional_settings_changed),window); g_signal_connect(G_OBJECT(window->DefaultUserNameEntry),"changed",G_CALLBACK(on_additional_settings_changed),window);
@ -742,6 +737,16 @@ return window;
void on_ubl_settings_usergroups_additional_settings_open(GtkWidget *, main_window *widgets){ void on_ubl_settings_usergroups_additional_settings_open(GtkWidget *, main_window *widgets){
ubl_settings_usergroups_additional_settings_window *window = yon_ubl_settings_usergroups_additional_settings_new(); ubl_settings_usergroups_additional_settings_window *window = yon_ubl_settings_usergroups_additional_settings_new();
dictionary *encrypt_data = NULL;
yon_dictionary_add_or_create_if_exists_with_data(encrypt_data,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(encrypt_data,"window",window);
dialog_confirmation_data *data=yon_confirmation_dialog_data_new();
data->function=on_passwords_encrypt;
data->action_text = ENCRYPT_SURE_LABEL;
data->data=encrypt_data;
g_signal_connect(G_OBJECT(window->EncryptAllPasswordsButton),"clicked",G_CALLBACK(yon_confirmation_dialog_call),data);
gtk_window_set_transient_for(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window)); gtk_window_set_transient_for(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window));
gtk_widget_show(window->Window); gtk_widget_show(window->Window);

@ -226,7 +226,7 @@ void on_config_local_load(GtkWidget *, main_window *widgets){
textdomain(template_ui_LocaleName); textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName); textdomain(LocaleName);
main_config.load_mode=1; main_config.load_mode=YON_CONFIG_LOCAL;
yon_interface_update(widgets); yon_interface_update(widgets);
} }
@ -235,7 +235,7 @@ void on_config_global_load(GtkWidget *, main_window *widgets){
textdomain(template_ui_LocaleName); textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName); textdomain(LocaleName);
main_config.load_mode=0; main_config.load_mode=YON_CONFIG_GLOBAL;
yon_interface_update(widgets); yon_interface_update(widgets);
} }
@ -244,7 +244,7 @@ void on_config_custom_load(GtkWidget *,main_window *widgets){
textdomain(template_ui_LocaleName); textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName); textdomain(LocaleName);
main_config.load_mode=3; main_config.load_mode=YON_CONFIG_CUSTOM;
yon_interface_update(widgets); yon_interface_update(widgets);
} }
@ -395,7 +395,7 @@ void yon_hide_passwords(template_saving_window *window){
free(yon_char_divide(new_value,1)); free(yon_char_divide(new_value,1));
newv=new_value; newv=new_value;
} else if (!yon_char_is_empty(new_value)&&new_value[0]=='$') { } else if (!yon_char_is_empty(new_value)&&new_value[0]=='$') {
if (main_config.load_mode==1){ if (main_config.load_mode==YON_CONFIG_LOCAL){
newv=new_value; newv=new_value;
} else { } else {
newv="*******"; newv="*******";
@ -404,7 +404,7 @@ void yon_hide_passwords(template_saving_window *window){
newv="*******"; newv="*******";
} }
if (!yon_char_is_empty(old_value)){ if (!yon_char_is_empty(old_value)){
if (main_config.load_mode==1){ if (main_config.load_mode==YON_CONFIG_LOCAL){
old = yon_char_new("<s>*******</s>"); old = yon_char_new("<s>*******</s>");
} else { } else {
@ -421,7 +421,7 @@ void yon_hide_passwords(template_saving_window *window){
free(yon_char_divide(new_value,1)); free(yon_char_divide(new_value,1));
newv=new_value; newv=new_value;
} else if (!yon_char_is_empty(new_value)&&new_value[0]=='$') { } else if (!yon_char_is_empty(new_value)&&new_value[0]=='$') {
if (main_config.load_mode==1){ if (main_config.load_mode==YON_CONFIG_LOCAL){
newv=new_value; newv=new_value;
} else { } else {
newv="*******"; newv="*******";
@ -430,7 +430,7 @@ void yon_hide_passwords(template_saving_window *window){
newv="*******"; newv="*******";
} }
if (!yon_char_is_empty(old_value)){ if (!yon_char_is_empty(old_value)){
if (main_config.load_mode==1){ if (main_config.load_mode==YON_CONFIG_LOCAL){
old = yon_char_new("<s>*******</s>"); old = yon_char_new("<s>*******</s>");
} else { } else {
old = yon_char_unite("<s>",old_value,"</s>",NULL); old = yon_char_unite("<s>",old_value,"</s>",NULL);
@ -451,7 +451,7 @@ void on_save_done(main_window *widgets, config_str output, int size){
} }
yon_char_parsed_free(output,size); yon_char_parsed_free(output,size);
on_config_update(NULL,widgets); on_config_update(NULL,widgets);
if (main_config.load_mode==1){ if (main_config.load_mode==YON_CONFIG_LOCAL){
yon_accept_changes(); yon_accept_changes();
yon_samba_sync_proceed(); yon_samba_sync_proceed();
} }
@ -593,62 +593,159 @@ void on_delete_confirmation_delete_check(GtkCellRenderer *, char *path, yon_conf
} }
char *yon_user_get_group_string(char *user){
char *cur_user = config(USERADD(user));
int size;
config_str parsed = yon_char_parse(cur_user,&size,":");
if (size>2&&!yon_char_is_empty(parsed[2])){
char *current_group = parsed[2];
size_t digits=0;
for (guint k=0;k<strlen(current_group);k++){
if (g_ascii_isdigit(current_group[k])){
digits++;
}
}
char *final_group_name=NULL;
if (digits&&digits==strlen(current_group)){
for (int i=0;i<main_config.groups_size;i++){
int group_size=0;
config_str groups_parsed = yon_char_parse(main_config.groups[i],&group_size,":");
if (group_size>2&&!strcmp(groups_parsed[2],current_group)){
final_group_name=yon_char_new(groups_parsed[0]);
if (group_size) yon_char_parsed_free(groups_parsed,group_size);
break;
}
if (group_size) yon_char_parsed_free(groups_parsed,group_size);
}
} else {
final_group_name=yon_char_new(current_group);
}
return final_group_name;
} else {
return user;
}
return NULL;
}
char *yon_user_check_groups(GtkListStore *list, char *target){
char *final="";
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(list);
for_iter(model,&iter){
char *name;
char *group;
gtk_tree_model_get(model,&iter,1,&name,6,&group,-1);
if (!strcmp(group,target)&&strcmp(name,target)){
char *temp = yon_char_unite(final,!yon_char_is_empty(final)?",":"",name,NULL);
if (!yon_char_is_empty(final)) free(final);
final = temp;
}
}
return !yon_char_is_empty(final)?final:NULL;
}
void yon_delete_confirmation_save(GtkWidget *self, dictionary *dict){ void yon_delete_confirmation_save(GtkWidget *self, dictionary *dict){
GtkTreeIter iter,itar; // GtkTreeIter iter,itar;
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
yon_confirmation_window *window = yon_dictionary_get_data(dict->first->next,yon_confirmation_window*); yon_confirmation_window *window = yon_dictionary_get_data(dict->first->next,yon_confirmation_window*);
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->UsersList),&iter); // int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->UsersList),&iter);
for (;valid;valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->UsersList),&iter)){ // for (;valid;valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->UsersList),&iter)){
char *name; // char *name;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,-1); // gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,-1);
int valid2 = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&itar); // int valid2 = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&itar);
for (;valid2;valid2 = gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&itar)){ // for (;valid2;valid2 = gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&itar)){
char *name_check; // char *name_check;
int status,delete; // int status,delete;
gtk_tree_model_get(GTK_TREE_MODEL(window->list),&itar,0,&delete,1,&name_check,3,&status,-1); // gtk_tree_model_get(GTK_TREE_MODEL(window->list),&itar,0,&delete,1,&name_check,3,&status,-1);
if (!strcmp(name,name_check)&&delete){ // if (!strcmp(name,name_check)&&delete){
// char *user = config(USERADD(name)); // gtk_list_store_remove(widgets->UsersList,&iter);
// int size; // yon_config_remove_by_key(USERADD(name));
// config_str parsed = yon_char_parse(user,&size,":"); // yon_config_remove_by_key(USERSHADOW(name));
// if (size>3&&(strcmp(parsed[3],name)&&strcmp(parsed[2],parsed[3]))){ // yon_config_register(USERADD_SYNC(name),USERADD_SYNC_command(name),"");
// yon_ubl_status_box_spawn_infinite(window->) // yon_config_remove_by_key(USERADD_SYNC(name));
// yon_config_remove_by_key(USERSHADOW_SYNC(name));
// gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->UsersList),&iter);
// if (status){
// if (yon_char_parsed_check_exist(main_config.remove_homes,main_config.homes_size,name)==-1){
// yon_char_parsed_add_or_create_if_exists(main_config.remove_homes,&main_config.homes_size,name);
// } // }
gtk_list_store_remove(widgets->UsersList,&iter); // }
yon_config_remove_by_key(USERADD(name)); // }
yon_config_remove_by_key(USERSHADOW(name)); // }
yon_config_register(USERADD_SYNC(name),USERADD_SYNC_command(name),""); // }
yon_config_remove_by_key(USERADD_SYNC(name));
yon_config_remove_by_key(USERSHADOW_SYNC(name)); GtkTreeIter iter;
gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->UsersList),&iter); GtkTreeModel *model = GTK_TREE_MODEL(window->list);
if (status){ char *single_target = NULL;
if (yon_char_parsed_check_exist(main_config.remove_homes,main_config.homes_size,name)==-1){ int founds = 0;
yon_char_parsed_add_or_create_if_exists(main_config.remove_homes,&main_config.homes_size,name); char *depends = NULL;
} for_iter(model,&iter){
int selected;
char *target;
char *group;
gtk_tree_model_get(model,&iter,0,&selected,1,&target,6,&group,-1);
if (selected){
if ((!strcmp(target,group))){
depends = yon_user_check_groups(window->list,target);
if (!yon_char_is_empty(depends)) {
single_target = target;
founds++;
} }
} }
} }
} }
char *name; if (founds==1){
if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->UsersList),&iter)){ dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,-1); data->action_text = CONFIRMATION_GROUP_DEPENDS_SINGLE_LABEL(single_target,depends);
int valid2 = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&itar); if(yon_confirmation_dialog_call(window->Window,data)!=GTK_RESPONSE_ACCEPT){
for (;valid2;valid2 = gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&itar)){ return;
char *name_check;
int status,delete;
gtk_tree_model_get(GTK_TREE_MODEL(window->list),&itar,0,&delete,1,&name_check,3,&status,-1);
if (!strcmp(name,name_check)&&delete){
gtk_list_store_remove(widgets->UsersList,&iter);
yon_config_remove_by_key(USERADD(name));
yon_config_remove_by_key(USERSHADOW(name));
gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->UsersList),&iter);
if (status){
if (yon_char_parsed_check_exist(main_config.remove_homes,main_config.homes_size,name)==-1){
yon_char_parsed_add_or_create_if_exists(main_config.remove_homes,&main_config.homes_size,name);
} }
} else if (founds >1){
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
data->action_text = CONFIRMATION_GROUP_DEPENDS_MULTIPLE_LABEL;
if (yon_confirmation_dialog_call(window->Window,data)!=GTK_RESPONSE_ACCEPT){
return;
} }
} }
for_iter(model,&iter){
int selected;
char *target;
gtk_tree_model_get(model,&iter,0,&selected,1,&target,-1);
if (selected){
yon_config_remove_by_key(USERADD(target));
yon_config_remove_by_key(USERSHADOW(target));
yon_config_remove_by_key(USERADD_SYNC(target));
yon_config_remove_by_key(USERSHADOW_SYNC(target));
} }
} }
yon_interface_update(widgets);
// char *name;
// if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->UsersList),&iter)){
// gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,-1);
// int valid2 = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&itar);
// for (;valid2;valid2 = gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&itar)){
// char *name_check;
// int status,delete;
// gtk_tree_model_get(GTK_TREE_MODEL(window->list),&itar,0,&delete,1,&name_check,3,&status,-1);
// if (!strcmp(name,name_check)&&delete){
// gtk_list_store_remove(widgets->UsersList,&iter);
// yon_config_remove_by_key(USERADD(name));
// yon_config_remove_by_key(USERSHADOW(name));
// gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->UsersList),&iter);
// if (status){
// if (yon_char_parsed_check_exist(main_config.remove_homes,main_config.homes_size,name)==-1){
// yon_char_parsed_add_or_create_if_exists(main_config.remove_homes,&main_config.homes_size,name);
// }
// }
// }
// }
// }
on_subwindow_close(self); on_subwindow_close(self);
} }
@ -737,8 +834,8 @@ void yon_delete_confirmation_open(main_window *widgets){
} }
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->UsersList),&iter); int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->UsersList),&iter);
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->UsersList),&iter)){ for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->UsersList),&iter)){
char *name,*username,*parameters,*homedir=NULL; char *name,*username,*parameters,*homedir=NULL, *group=NULL;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,3,&username,6,&parameters,-1); gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,3,&username,4,&group,6,&parameters,-1);
int size; int size;
config_str home = yon_config_load(get_home_command(name),&size); config_str home = yon_config_load(get_home_command(name),&size);
if (size>0&&!yon_char_is_empty(home[0])){ if (size>0&&!yon_char_is_empty(home[0])){
@ -751,7 +848,9 @@ void yon_delete_confirmation_open(main_window *widgets){
int status=0; int status=0;
if (homedir) status=1; if (homedir) status=1;
gtk_list_store_append(window->list,&itar); gtk_list_store_append(window->list,&itar);
gtk_list_store_set(window->list,&itar,0,yon_char_parsed_check_exist(chosen,chosen_size,name)>-1?1:0,1,name,2,homedir,3,0,4,yon_char_parsed_check_exist(chosen,chosen_size,name)>-1&&status?1:0,5,username,-1); group = yon_user_get_group_string(name);
gtk_list_store_set(window->list,&itar,0,yon_char_parsed_check_exist(chosen,chosen_size,name)>-1?1:0,1,name,2,homedir,3,0,4,yon_char_parsed_check_exist(chosen,chosen_size,name)>-1&&status?1:0,5,username,6,group,-1);
free(name); free(name);
free(username); free(username);
free(parameters); free(parameters);
@ -1736,7 +1835,7 @@ void on_main_delete(GtkWidget *, main_window *widgets){
} }
void on_config_update(GtkWidget *, main_window *widgets){ void on_config_update(GtkWidget *, main_window *widgets){
if (main_config.load_mode==0){ if (main_config.load_mode==YON_CONFIG_GLOBAL){
on_config_global_load(NULL,widgets); on_config_global_load(NULL,widgets);
} else { } else {
on_config_local_load(NULL,widgets); on_config_local_load(NULL,widgets);
@ -1767,7 +1866,7 @@ void config_init(){
main_config.lock_save_local=0; main_config.lock_save_local=0;
main_config.groups_size=0; main_config.groups_size=0;
main_config.users_size=0; main_config.users_size=0;
main_config.load_mode=1; main_config.load_mode=YON_CONFIG_LOCAL;
main_config.hash_default_id=-1; main_config.hash_default_id=-1;
main_config.save_config=0; main_config.save_config=0;
main_config.groups = yon_file_open(groups_path,&main_config.groups_size); main_config.groups = yon_file_open(groups_path,&main_config.groups_size);

@ -566,4 +566,9 @@ void on_useradd_sync_changed(ubl_settings_usergroups_additional_settings_window
void yon_gtk_login_block_symbols(GtkEntry *target); void yon_gtk_login_block_symbols(GtkEntry *target);
void on_login_insert_custom_restricted_check(GtkEditable *editable, const gchar *text, gint length, gint *position); void on_login_insert_custom_restricted_check(GtkEditable *editable, const gchar *text, gint length, gint *position);
void on_group_delete_toggled(GtkWidget *,gchar* path,yon_confirmation_window *window); void on_group_delete_toggled(GtkWidget *,gchar* path,yon_confirmation_window *window);
char *yon_user_check_groups(GtkListStore *list, char *target);
char *yon_user_get_group_string(char *user);
void on_password_hash_sensitiveness(GtkWidget *,ubl_settings_usergroups_password_window *window);
gboolean on_encrypt_update(dictionary *dict);
void *yon_passwords_encrypt(dictionary *dict);
#endif #endif

@ -270,3 +270,6 @@
#define SHUTDOWN_MAXIMUM_UID_LABEL _("Maximum UID") #define SHUTDOWN_MAXIMUM_UID_LABEL _("Maximum UID")
#define SHUTDOWN_MINIMUM_GID_LABEL _("Minimum GID") #define SHUTDOWN_MINIMUM_GID_LABEL _("Minimum GID")
#define SHUTDOWN_MAXIMUM_GID_LABEL _("Maximum GID") #define SHUTDOWN_MAXIMUM_GID_LABEL _("Maximum GID")
#define CONFIRMATION_GROUP_DEPENDS_SINGLE_LABEL(target,depends) yon_char_unite(_("User")," \"",target,"\" ",_("is included into main group of users")," \"",depends,"\", ",_("which will be deleted"),".\n",_("After reboot users")," ",depends," ",_("main group will be set to default group"),".",NULL)
#define CONFIRMATION_GROUP_DEPENDS_MULTIPLE_LABEL _("Some of users, chosen for deletion, are included as main group for other users. This users will get default main group after reboot")

@ -15,17 +15,19 @@
</object> </object>
<object class="GtkListStore" id="liststore1"> <object class="GtkListStore" id="liststore1">
<columns> <columns>
<!-- column-name gboolean1 --> <!-- column-name Chosen -->
<column type="gboolean"/> <column type="gboolean"/>
<!-- column-name gchararray1 --> <!-- column-name User -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name gchararray2 --> <!-- column-name HomeDir -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name gboolean2 --> <!-- column-name DeleteHome -->
<column type="gboolean"/> <column type="gboolean"/>
<!-- column-name gboolean3 --> <!-- column-name DeleteHomeSensitivity -->
<column type="gboolean"/> <column type="gboolean"/>
<!-- column-name gchararray3 --> <!-- column-name UserName -->
<column type="gchararray"/>
<!-- column-name MainGroup -->
<column type="gchararray"/> <column type="gchararray"/>
</columns> </columns>
</object> </object>

@ -94,7 +94,7 @@
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -136,22 +136,23 @@
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkCheckButton" id="NoEncriptionCheck">
<property name="label" translatable="yes">Do not encrypt password</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkBox" id="HashBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkSeparator"> <object class="GtkSeparator">
<property name="visible">True</property> <property name="visible">True</property>
@ -160,16 +161,9 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">3</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkCheckButton" id="NoEncriptionCheck">
<property name="label" translatable="yes">Do not encrypt password</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -177,6 +171,12 @@
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkBox" id="HashBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>

Loading…
Cancel
Save