diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 7912e6d00..023d7bca9 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -29,6 +29,7 @@ - fix: Style templates do not render metadata - fix: Survey duplication not working - fix: "Open link in new window" with WebGUI asset tree link in TinyMCE + - fix: Admin Users submenu doesn't fill in uid 7.1.4 - Template variables in the main Survey Template were out of date in the diff --git a/lib/WebGUI/Operation/User.pm b/lib/WebGUI/Operation/User.pm index 39feda1a6..bea70b4e5 100644 --- a/lib/WebGUI/Operation/User.pm +++ b/lib/WebGUI/Operation/User.pm @@ -47,48 +47,48 @@ Internal utility routine for setting up the Admin Console for User functions. A reference to the current session. -=head3 workarea +=head3 properties -The form and information to display to the administrator using the function. +A hash reference containing all the properties to set in this submenu -=head3 title +workarea: content to render in admin console -Internationalized title for the Admin Console, looked up in the WebGUI namespace if it exists. +userId: userId of user to be modified by submenu controls such as edit and delete -=head3 help +title: internationalization key from users for text to display as the admin consoles title -Help topic. If set, then a Help icon will be displayed as a link to that topic. +help: interanationalization key from users help to link current screen help icon to =cut sub _submenu { my $session = shift; - my $workarea = shift; - my $title = shift; + my $properties = shift; my $i18n = WebGUI::International->new($session); - $title = $i18n->get($title) if ($title); - my $help = shift; - my $ac = WebGUI::AdminConsole->new($session,"users"); - if ($help) { - $ac->setHelp($help); - } + my $ac = WebGUI::AdminConsole->new($session,"users"); + my $userId = $properties->{userId} || $session->form->get("uid"); + my $workarea = $properties->{workarea}; + my $title; + $title = $i18n->get($properties->{title}) if ($properties->{title}); + $ac->setHelp($properties->{help}) if ($properties->{help}); + if ($session->user->isInGroup(11)) { $ac->addSubmenuItem($session->url->page("op=editUser;uid=new"), $i18n->get(169)); } + if ($session->user->isInGroup(3)) { unless ($session->form->process("op") eq "listUsers" || $session->form->process("op") eq "deleteUserConfirm" - || $session->stow->get("editUser_UID") eq "new") { - $ac->addSubmenuItem($session->url->page("op=editUser;uid=".$session->stow->get("editUser_UID")), $i18n->get(457)); - $ac->addSubmenuItem($session->url->page('op=becomeUser;uid='.$session->stow->get("editUser_UID")), $i18n->get(751)); - $ac->addConfirmedSubmenuItem($session->url->page('op=deleteUser;uid='.$session->stow->get("editUser_UID")), $i18n->get(750), $i18n->get(167)); + || $userId eq "new") { + $ac->addSubmenuItem($session->url->page("op=editUser;uid=$userId"), $i18n->get(457)); + $ac->addSubmenuItem($session->url->page("op=becomeUser;uid=$userId"), $i18n->get(751)); + $ac->addConfirmedSubmenuItem($session->url->page("op=deleteUser;uid=$userId"), $i18n->get(750), $i18n->get(167)); if ($session->setting->get("useKarma")) { - $ac->addSubmenuItem($session->url->page("op=editUserKarma;uid=".$session->stow->get("editUser_UID")), $i18n->get(555)); + $ac->addSubmenuItem($session->url->page("op=editUserKarma;uid=$userId"), $i18n->get(555)); } } $ac->addSubmenuItem($session->url->page("op=listUsers"), $i18n->get(456)); } - $session->stow->delete("editUser_UID"); return $ac->render($workarea, $title); } @@ -298,7 +298,6 @@ sub www_editUser { $tabform->formHeader({extras=>'autocomplete="off"'}); my $u = WebGUI::User->new($session,($uid eq 'new') ? '' : $uid); #Setting uid to '' when uid is 'new' so visitor defaults prefill field for new user my $username = ($u->userId eq '1' && $uid ne "1") ? '' : $u->username; - $session->stow->set("editUser_UID", $uid); $tabform->hidden({name=>"op",value=>"editUserSave"}); $tabform->hidden({name=>"uid",value=>$uid}); $tabform->getTab("account")->raw('