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 + + True + False + com.ublinux.libublsettingsui-gtk3.important-symbolic + @@ -194,6 +199,34 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 2 vertical 5 + + + True + True + True + Update users and groups + image13 + + + + False + True + 0 + + + + + True + False + + + False + True + 1 + + True @@ -308,12 +341,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - + True True True - Update users and groups - image13 + Additional settings + image6