diff options
-rw-r--r-- | NEWS | 2 | ||||
-rwxr-xr-x | userdrake | 48 |
2 files changed, 33 insertions, 17 deletions
@@ -1,3 +1,5 @@ +- refactorization for readability (please test) + Version 1.12 - 21 October 2009, Christophe Fergeau - refresh user list when adding/removing xguest @@ -997,6 +997,36 @@ sub UserEdit_widget { ($userEnt, $primgid, @primgroup); } +sub GroupEdit_widget { + my ($nbG, $tree, $model, $groupname) = @_; + $nbG->set_size_request(300, 200); + gtkappend_page($nbG, + gtkpack_(Gtk2::VBox->new(0, 2), + 1, BuildGui()), + gtkshow(Gtk2::Label->new(N("Group Data")))); + gtkappend_page($nbG, + gtkpack_(Gtk2::VBox->new(0, 1), + 0, Gtk2::Label->new(N("Select the users to join this group:")), + 1, create_scrolled_window($tree)), + gtkshow(Gtk2::Label->new(N("Group Users")))); + $groupname = GetNameEntFromIter($grouptree, $gtree_model, 0); + $us->{o}{groupname}->set_text($groupname); + # Don't allow change on group name since there is a bug in lu_user_modify group + $us->{o}{groupname}->set_editable(0); + my $groupEnt = $ctx->LookupGroupByName($groupname); + my $users = $ctx->UsersEnumerate; + my @susers = sort(@$users); + my $members = $ctx->EnumerateUsersByGroup($groupname); + foreach my $user (@susers) { + if (member($user, @$members)) { + $model->append_set([ 0 => gtkcreate_pixbuf($pix[0]), 1 => $user, 2 => 1 ]); + } else { + $model->append_set([ 0 => gtkcreate_pixbuf($pix[1]), 1 => $user, 2 => 0 ]); + } + } + $groupEnt; +} + sub Edit() { my $w = NewWindow(N("Edit Groups / Users")); my $model = Gtk2::ListStore->new("Gtk2::Gdk::Pixbuf", "Glib::String", "Glib::Int"); @@ -1013,23 +1043,7 @@ sub Edit() { if ($p <= 0) { ($userEnt, $primgid, @primgroup) = UserEdit_widget($nbU, $tree, $model, $Gent); } elsif ($p == 1) { - $nbG->set_size_request(300, 200); - gtkappend_page($nbG, gtkpack_(Gtk2::VBox->new(0, 2), 1, BuildGui()), gtkshow(Gtk2::Label->new(N("Group Data")))); - gtkappend_page($nbG, - gtkpack_(Gtk2::VBox->new(0, 1), - 0, Gtk2::Label->new(N("Select the users to join this group:")), - 1, create_scrolled_window($tree)), gtkshow(Gtk2::Label->new(N("Group Users")))); - $groupname = GetNameEntFromIter($grouptree, $gtree_model, 0); $us->{o}{groupname}->set_text($groupname); - # Don't allow change on group name since there is a bug in lu_user_modify group - $us->{o}{groupname}->set_editable(0); - $groupEnt = $ctx->LookupGroupByName($groupname); - my $users = $ctx->UsersEnumerate; my @susers = sort(@$users); - my $members = $ctx->EnumerateUsersByGroup($groupname); - foreach my $user (@susers) { - if (member($user, @$members)) { - $model->append_set([ 0 => gtkcreate_pixbuf($pix[0]), 1 => $user, 2 => 1 ]); - } else { $model->append_set([ 0 => gtkcreate_pixbuf($pix[1]), 1 => $user, 2 => 0 ]) } - } + $groupEnt = GroupEdit_widget($nbG, $tree, $model, $groupname); } gtkpack_($w->vbox, 1, !$p ? $nbU : $nbG); |