diff --git a/source/ubl-settings-usergroups-additional-config.c b/source/ubl-settings-usergroups-additional-config.c
index e99741d..b600f19 100644
--- a/source/ubl-settings-usergroups-additional-config.c
+++ b/source/ubl-settings-usergroups-additional-config.c
@@ -23,9 +23,28 @@ void on_additional_settings_clicked(GtkWidget *, GtkEntry *){
}
-void on_passwords_encrypt(){
- int pid = fork();
- if (!pid){
- exit(system(encrypt_passwords_command));
+gboolean on_encrypt_update(dictionary *dict){
+ main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
+ ubl_settings_usergroups_additional_settings_window *window = yon_dictionary_get_data(dict->first->next,ubl_settings_usergroups_additional_settings_window*);
+ 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);
}
\ No newline at end of file
diff --git a/source/ubl-settings-usergroups-password.c b/source/ubl-settings-usergroups-password.c
index 8eef247..e56c390 100644
--- a/source/ubl-settings-usergroups-password.c
+++ b/source/ubl-settings-usergroups-password.c
@@ -105,6 +105,19 @@ void on_password_accept(GtkWidget *self, dictionary *dict){
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 *window = malloc(sizeof(ubl_settings_usergroups_password_window));
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");
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),"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->PasswordHashEntry),"icon-press",G_CALLBACK(on_password_show_hide),NULL);
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;
}
-
int yon_check_password_blocked(char *password){
if (!yon_char_is_empty(password)){
if (!strcmp(password,"!*")){
diff --git a/source/ubl-settings-usergroups-settings.c b/source/ubl-settings-usergroups-settings.c
index af0fe5d..f922cd8 100644
--- a/source/ubl-settings-usergroups-settings.c
+++ b/source/ubl-settings-usergroups-settings.c
@@ -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);
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);
- 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->DefaultUserNameEntry),"changed",G_CALLBACK(on_additional_settings_changed),window);
@@ -741,6 +736,16 @@ return window;
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();
+
+ 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_widget_show(window->Window);
diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c
index 0c4a3d4..7d900d1 100644
--- a/source/ubl-settings-usergroups.c
+++ b/source/ubl-settings-usergroups.c
@@ -226,7 +226,7 @@ void on_config_local_load(GtkWidget *, main_window *widgets){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
- main_config.load_mode=1;
+ main_config.load_mode=YON_CONFIG_LOCAL;
yon_interface_update(widgets);
}
@@ -235,7 +235,7 @@ void on_config_global_load(GtkWidget *, main_window *widgets){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
- main_config.load_mode=0;
+ main_config.load_mode=YON_CONFIG_GLOBAL;
yon_interface_update(widgets);
}
@@ -244,7 +244,7 @@ void on_config_custom_load(GtkWidget *,main_window *widgets){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
- main_config.load_mode=3;
+ main_config.load_mode=YON_CONFIG_CUSTOM;
yon_interface_update(widgets);
}
@@ -395,7 +395,7 @@ void yon_hide_passwords(template_saving_window *window){
free(yon_char_divide(new_value,1));
newv=new_value;
} 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;
} else {
newv="*******";
@@ -404,7 +404,7 @@ void yon_hide_passwords(template_saving_window *window){
newv="*******";
}
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("*******");
} else {
@@ -421,7 +421,7 @@ void yon_hide_passwords(template_saving_window *window){
free(yon_char_divide(new_value,1));
newv=new_value;
} 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;
} else {
newv="*******";
@@ -430,7 +430,7 @@ void yon_hide_passwords(template_saving_window *window){
newv="*******";
}
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("*******");
} else {
old = yon_char_unite("",old_value,"",NULL);
@@ -451,7 +451,7 @@ void on_save_done(main_window *widgets, config_str output, int size){
}
yon_char_parsed_free(output,size);
on_config_update(NULL,widgets);
- if (main_config.load_mode==1){
+ if (main_config.load_mode==YON_CONFIG_LOCAL){
yon_accept_changes();
yon_samba_sync_proceed();
}
@@ -593,62 +593,159 @@ void on_delete_confirmation_delete_check(GtkCellRenderer *, char *path, yon_conf
}
-void yon_delete_confirmation_save(GtkWidget *self, dictionary *dict){
- GtkTreeIter iter,itar;
- 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*);
- 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)){
- char *name;
- 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){
- // char *user = config(USERADD(name));
- // int size;
- // config_str parsed = yon_char_parse(user,&size,":");
- // if (size>3&&(strcmp(parsed[3],name)&&strcmp(parsed[2],parsed[3]))){
- // yon_ubl_status_box_spawn_infinite(window->)
- // }
- 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));
- 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);
- }
+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;k2&&!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;
- 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);
- }
- }
+ 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){
+ // GtkTreeIter iter,itar;
+ 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*);
+ // 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)){
+ // char *name;
+ // 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));
+ // 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));
+ // 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);
+ // }
+ // }
+ // }
+ // }
+ // }
+
+ GtkTreeIter iter;
+ GtkTreeModel *model = GTK_TREE_MODEL(window->list);
+ char *single_target = NULL;
+ int founds = 0;
+ 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++;
}
}
}
+ }
+ if (founds==1){
+ dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
+ data->action_text = CONFIRMATION_GROUP_DEPENDS_SINGLE_LABEL(single_target,depends);
+ if(yon_confirmation_dialog_call(window->Window,data)!=GTK_RESPONSE_ACCEPT){
+ return;
+ }
+ } 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);
}
@@ -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);
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->UsersList),&iter)){
- char *name,*username,*parameters,*homedir=NULL;
- gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,3,&username,6,¶meters,-1);
+ char *name,*username,*parameters,*homedir=NULL, *group=NULL;
+ gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&iter,2,&name,3,&username,4,&group,6,¶meters,-1);
int size;
config_str home = yon_config_load(get_home_command(name),&size);
if (size>0&&!yon_char_is_empty(home[0])){
@@ -751,7 +848,9 @@ void yon_delete_confirmation_open(main_window *widgets){
int status=0;
if (homedir) status=1;
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(username);
free(parameters);
@@ -1736,7 +1835,7 @@ void on_main_delete(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);
} else {
on_config_local_load(NULL,widgets);
@@ -1767,7 +1866,7 @@ void config_init(){
main_config.lock_save_local=0;
main_config.groups_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.save_config=0;
main_config.groups = yon_file_open(groups_path,&main_config.groups_size);
diff --git a/source/ubl-settings-usergroups.h b/source/ubl-settings-usergroups.h
index f58c439..1deb992 100644
--- a/source/ubl-settings-usergroups.h
+++ b/source/ubl-settings-usergroups.h
@@ -566,4 +566,9 @@ void on_useradd_sync_changed(ubl_settings_usergroups_additional_settings_window
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_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
\ No newline at end of file
diff --git a/source/ubl-strings.h b/source/ubl-strings.h
index c6bed22..3c77764 100644
--- a/source/ubl-strings.h
+++ b/source/ubl-strings.h
@@ -270,3 +270,6 @@
#define SHUTDOWN_MAXIMUM_UID_LABEL _("Maximum UID")
#define SHUTDOWN_MINIMUM_GID_LABEL _("Minimum 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")
diff --git a/ubl-settings-usergroups-confirmation.glade b/ubl-settings-usergroups-confirmation.glade
index 30a228a..2c654b0 100644
--- a/ubl-settings-usergroups-confirmation.glade
+++ b/ubl-settings-usergroups-confirmation.glade
@@ -15,17 +15,19 @@
diff --git a/ubl-settings-usergroups-password.glade b/ubl-settings-usergroups-password.glade
index e5dbfc0..60ac200 100644
--- a/ubl-settings-usergroups-password.glade
+++ b/ubl-settings-usergroups-password.glade
@@ -94,7 +94,7 @@
True
True
- 1
+ 0
@@ -136,47 +136,47 @@
True
True
- 2
+ 1
-
-
- False
- True
- 1
-
-
-
-
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ vertical
+ 5
True