diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c
index 9dae803..ba994e6 100644
--- a/source/ubl-settings-usergroups.c
+++ b/source/ubl-settings-usergroups.c
@@ -1854,6 +1854,32 @@ void on_main_delete(GtkWidget *, main_window *widgets){
}
}
+void on_user_info(GtkWidget *,main_window *widgets){
+ int page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook));
+ char *target_user = NULL;
+ GtkTreeIter iter;
+ GtkTreeModel *model = NULL;
+ switch (page){
+ case 1:
+ case 3:{
+ return;
+ } break;
+ case 0:{
+ if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&model,&iter)){
+ return;
+ }
+ } break;
+ case 2:{
+ if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){
+ return;
+ }
+ }
+ }
+ gtk_tree_model_get(model,&iter,2,&target_user,-1);
+ char *command = user_info_command(target_user);
+ yon_terminal_window_launch(GTK_WINDOW(widgets->Window),command,yon_char_get_localised_from_lib(SUCCESS_LABEL),yon_char_get_localised_from_lib(FAIL_LABEL));
+}
+
void on_config_update(GtkWidget *, main_window *widgets){
if (main_config.load_mode==YON_CONFIG_GLOBAL){
on_config_global_load(NULL,widgets);
@@ -2103,6 +2129,7 @@ void on_notebook_page_changed(GtkWidget *, GtkWidget *, int num, main_window *wi
gtk_widget_show(widgets->AddButton);
gtk_widget_show(widgets->EditButton);
gtk_widget_show(widgets->DeleteButton);
+ gtk_widget_show(widgets->UserInfoButton);
gtk_widget_hide(widgets->UserAddToConfigButton);
GtkTreeModel *model = GTK_TREE_MODEL(widgets->UsersList);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&model,&iter)){
@@ -2117,6 +2144,7 @@ void on_notebook_page_changed(GtkWidget *, GtkWidget *, int num, main_window *wi
gtk_widget_show(widgets->EditButton);
gtk_widget_show(widgets->DeleteButton);
gtk_widget_hide(widgets->UserAddToConfigButton);
+ gtk_widget_hide(widgets->UserInfoButton);
GtkTreeModel *model = GTK_TREE_MODEL(widgets->GroupsList);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&model,&iter)){
gtk_widget_set_sensitive(widgets->EditButton,1);
@@ -2128,6 +2156,7 @@ void on_notebook_page_changed(GtkWidget *, GtkWidget *, int num, main_window *wi
} else if (num==2){
gtk_widget_hide(widgets->AddButton);
gtk_widget_hide(widgets->EditButton);
+ gtk_widget_show(widgets->UserInfoButton);
gtk_widget_show(widgets->UserAddToConfigButton);
GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore1);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){
@@ -2142,6 +2171,7 @@ void on_notebook_page_changed(GtkWidget *, GtkWidget *, int num, main_window *wi
gtk_widget_hide(widgets->AddButton);
gtk_widget_hide(widgets->EditButton);
gtk_widget_show(widgets->UserAddToConfigButton);
+ gtk_widget_hide(widgets->UserInfoButton);
GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore2);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemGroupsTree)),&model,&iter)){
gtk_widget_set_sensitive(widgets->UserAddToConfigButton,1);
@@ -2213,6 +2243,7 @@ main_window *yon_main_window_complete(main_window *widgets){
widgets->EditButton=yon_gtk_builder_get_widget(builder,"EditButton");
widgets->DeleteButton=yon_gtk_builder_get_widget(builder,"DeleteButton");
widgets->UpdateButton=yon_gtk_builder_get_widget(builder,"UpdateButton");
+ widgets->UserInfoButton=yon_gtk_builder_get_widget(builder,"UserInfoButton");
widgets->UsersTree=yon_gtk_builder_get_widget(builder,"UsersTree");
widgets->GroupsTree=yon_gtk_builder_get_widget(builder,"GroupsTree");
widgets->MainNotebook=yon_gtk_builder_get_widget(builder,"MainNotebook");
@@ -2247,6 +2278,7 @@ main_window *yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->button2),"clicked",G_CALLBACK(on_ubl_settings_usergroups_additional_settings_open),widgets);
g_signal_connect(G_OBJECT(widgets->UserAddToConfigButton),"clicked",G_CALLBACK(on_user_sync_with_config),widgets);
g_signal_connect(G_OBJECT(widgets->UpdateButton),"clicked",G_CALLBACK(on_config_update),widgets);
+ g_signal_connect(G_OBJECT(widgets->UserInfoButton),"clicked",G_CALLBACK(on_user_info),widgets);
g_signal_connect(G_OBJECT(widgets->SavingSettingsButton),"clicked",G_CALLBACK(on_saving_settings_open),widgets);
g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets);
g_signal_connect(G_OBJECT(widgets->UsersTree),"cursor-changed",G_CALLBACK(on_selection_changed),widgets);
diff --git a/source/ubl-settings-usergroups.h b/source/ubl-settings-usergroups.h
index fedaf42..16ba897 100644
--- a/source/ubl-settings-usergroups.h
+++ b/source/ubl-settings-usergroups.h
@@ -98,6 +98,8 @@
#define password_hash_get_command(passwd) yon_char_append("mkpasswd2 ",passwd)
+#define user_info_command(target) yon_char_append("echo ",target)
+
#define config_get_command(source) yon_char_unite("ubconfig --source ",source," get users DEFAULTPASSWD DEFAULTROOTPASSWD DEFAULTUSER HASHPASSWD USERGROUPS ADDADM USERADD[*] USERADD_SYNC USERADD_SYNC[*] USERSHADOW[*] USERSHADOW_SYNC[*] GROUPADD[*] GROUPADD_SYNC[*] GROUPADD_SYNC",NULL),yon_char_unite("ubconfig --source ",source," get [system] SYSTEMBOOT_STATEMODE",NULL),yon_char_unite("ubconfig --source ",source," get [save] SAVE_ROOTCOPY_CHANGES",NULL)
#define config_get_default_command "ubconfig --source default get users DEFAULTPASSWD DEFAULTROOTPASSWD USERGROUPS DEFAULTUSER HASHPASSWD ADDADM"
@@ -210,6 +212,7 @@ typedef struct {
GtkWidget *EditButton;
GtkWidget *DeleteButton;
GtkWidget *UpdateButton;
+ GtkWidget *UserInfoButton;
GtkWidget *UsersTree;
GtkWidget *GroupsTree;
GtkWidget *MainNotebook;
@@ -595,4 +598,5 @@ gboolean on_encrypt_update(dictionary *dict);
void *yon_passwords_encrypt(dictionary *dict);
gboolean on_filter(GtkTreeModel* model, GtkTreeIter *iter, main_window *widgets);
void on_filter_changed(GtkWidget *self, main_window *widgets);
+void on_user_info(GtkWidget *,main_window *widgets);
#endif
\ No newline at end of file
diff --git a/ubl-settings-usergroups.glade b/ubl-settings-usergroups.glade
index 4e49f63..0d88248 100644
--- a/ubl-settings-usergroups.glade
+++ b/ubl-settings-usergroups.glade
@@ -121,6 +121,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
False
com.ublinux.libublsettingsui-gtk3.move-in-symbolic
+