Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=fwife.git;a=commitdiff;h=217fc210656b49610a0b48d87f3f2b108a375e1e
commit 217fc210656b49610a0b48d87f3f2b108a375e1e Author: Elentir <elen...@frugalware.org> Date: Wed Apr 13 12:40:12 2011 +0200 userconf: checkbox to add the user to /etc/sudoers if sudo available diff --git a/src/plugins/usersconf.c b/src/plugins/usersconf.c index bb4fc94..30070bc 100644 --- a/src/plugins/usersconf.c +++ b/src/plugins/usersconf.c @@ -76,6 +76,11 @@ void remove_user(GtkWidget *widget, gpointer data) if (gtk_tree_selection_get_selected (selection, NULL, &iter)) { gtk_tree_model_get (model, &iter, COLUMN_USR_NAME, &old_name, -1); + + ptr = g_strdup_printf("sed -i '/%s ALL=(ALL) ALL/d' %s/etc/sudoers", old_name, TARGETDIR); + fw_system(ptr); + free(ptr); + ptr = g_strdup_printf("chroot %s /usr/sbin/userdel -r %s", TARGETDIR, old_name); if(fw_system(ptr) != 0) { fwife_error(_("User can't be deleted!")); @@ -100,6 +105,7 @@ void add_user(GtkWidget *widget, gpointer data) GtkWidget *pFrame; GtkWidget *pVBoxFrame; GtkWidget *pLabel; + GtkWidget *hassudo; GtkTreeIter iter; GtkTreeView *treeview = (GtkTreeView *)data; @@ -116,8 +122,8 @@ void add_user(GtkWidget *widget, gpointer data) gtk_window_set_transient_for(GTK_WINDOW(pBoite), GTK_WINDOW(assistant)); gtk_window_set_position(GTK_WINDOW(pBoite), GTK_WIN_POS_CENTER_ON_PARENT); - pVBox = gtk_vbox_new(TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(pBoite)->vbox), pVBox, TRUE, FALSE, 5); + pVBox = gtk_vbox_new(FALSE, 5); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(pBoite)->vbox), pVBox, TRUE, FALSE, 0); pFrame = gtk_frame_new(_("General Configuration")); gtk_box_pack_start(GTK_BOX(pVBox), pFrame, TRUE, FALSE, 0); @@ -169,6 +175,14 @@ void add_user(GtkWidget *widget, gpointer data) pEntryHome = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(pVBoxFrame), pEntryHome, TRUE, FALSE, 0); + hassudo = gtk_check_button_new_with_label(_("Give user root privileges (sudo)")); + gtk_box_pack_start(GTK_BOX(pVBox), hassudo, FALSE, FALSE, 0); + + struct stat buf; + ptr = g_strdup_printf("%s/etc/sudoers", TARGETDIR); + if(stat(ptr, &buf)) + gtk_widget_set_sensitive(hassudo, FALSE); + gtk_widget_show_all(pBoite); switch (gtk_dialog_run(GTK_DIALOG(pBoite))) @@ -217,6 +231,13 @@ void add_user(GtkWidget *widget, gpointer data) free(ptr); } + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hassudo))) + { + ptr = g_strdup_printf("echo '%s ALL=(ALL) ALL' >> %s/etc/sudoers", sName, TARGETDIR); + fw_system(ptr); + free(ptr); + } + /* Adding new user to the list */ gtk_list_store_append (GTK_LIST_STORE (model), &iter); userimg = gtk_image_get_pixbuf (GTK_IMAGE(userorigimg)); _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git