Commit 24c38a7b9e30a25cb7a9dcec8ab838527718b887
1 parent
03612274
Make the search used to initiate user or group actions persist until the next page is reached.
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5694 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
10 changed files
with
117 additions
and
74 deletions
plugins/ktcore/admin/groupManagement.php
| @@ -51,7 +51,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -51,7 +51,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 51 | $KTConfig =& KTConfig::getSingleton(); | 51 | $KTConfig =& KTConfig::getSingleton(); |
| 52 | $alwaysAll = $KTConfig->get("alwaysShowAll"); | 52 | $alwaysAll = $KTConfig->get("alwaysShowAll"); |
| 53 | 53 | ||
| 54 | - $name = KTUtil::arrayGet($_REQUEST, 'name'); | 54 | + $name = KTUtil::arrayGet($_REQUEST, 'name', KTUtil::arrayGet($_REQUEST, 'old_search')); |
| 55 | $show_all = KTUtil::arrayGet($_REQUEST, 'show_all', $alwaysAll); | 55 | $show_all = KTUtil::arrayGet($_REQUEST, 'show_all', $alwaysAll); |
| 56 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); | 56 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 57 | 57 | ||
| @@ -79,6 +79,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -79,6 +79,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 79 | "search_fields" => $search_fields, | 79 | "search_fields" => $search_fields, |
| 80 | "search_results" => $search_results, | 80 | "search_results" => $search_results, |
| 81 | 'no_search' => $no_search, | 81 | 'no_search' => $no_search, |
| 82 | + 'old_search' => $name, | ||
| 82 | ); | 83 | ); |
| 83 | return $oTemplate->render($aTemplateData); | 84 | return $oTemplate->render($aTemplateData); |
| 84 | } | 85 | } |
| @@ -86,13 +87,15 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -86,13 +87,15 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 86 | 87 | ||
| 87 | // {{{ do_editGroup | 88 | // {{{ do_editGroup |
| 88 | function do_editGroup() { | 89 | function do_editGroup() { |
| 90 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 91 | + | ||
| 89 | $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('Group Management')); | 92 | $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('Group Management')); |
| 90 | $this->oPage->setBreadcrumbDetails(_kt('edit group')); | 93 | $this->oPage->setBreadcrumbDetails(_kt('edit group')); |
| 91 | 94 | ||
| 92 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); | 95 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 93 | $oGroup = Group::get($group_id); | 96 | $oGroup = Group::get($group_id); |
| 94 | if (PEAR::isError($oGroup) || $oGroup == false) { | 97 | if (PEAR::isError($oGroup) || $oGroup == false) { |
| 95 | - $this->errorRedirectToMain(_kt('Please select a valid group.')); | 98 | + $this->errorRedirectToMain(_kt('Please select a valid group.'), sprintf("old_search=%s&do_search=1", $old_search)); |
| 96 | } | 99 | } |
| 97 | 100 | ||
| 98 | $this->oPage->setTitle(sprintf(_kt("Edit Group (%s)"), $oGroup->getName())); | 101 | $this->oPage->setTitle(sprintf(_kt("Edit Group (%s)"), $oGroup->getName())); |
| @@ -120,6 +123,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -120,6 +123,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 120 | "context" => $this, | 123 | "context" => $this, |
| 121 | "edit_fields" => $edit_fields, | 124 | "edit_fields" => $edit_fields, |
| 122 | "edit_group" => $oGroup, | 125 | "edit_group" => $oGroup, |
| 126 | + "old_search" => $old_search, | ||
| 123 | ); | 127 | ); |
| 124 | return $oTemplate->render($aTemplateData); | 128 | return $oTemplate->render($aTemplateData); |
| 125 | } | 129 | } |
| @@ -127,10 +131,12 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -127,10 +131,12 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 127 | 131 | ||
| 128 | // {{{ do_saveGroup | 132 | // {{{ do_saveGroup |
| 129 | function do_saveGroup() { | 133 | function do_saveGroup() { |
| 134 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 135 | + | ||
| 130 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); | 136 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 131 | $oGroup = Group::get($group_id); | 137 | $oGroup = Group::get($group_id); |
| 132 | if (PEAR::isError($oGroup) || $oGroup == false) { | 138 | if (PEAR::isError($oGroup) || $oGroup == false) { |
| 133 | - $this->errorRedirectToMain(_kt('Please select a valid group.')); | 139 | + $this->errorRedirectToMain(_kt('Please select a valid group.'), sprintf("old_search=%s&do_search=1", $old_search)); |
| 134 | } | 140 | } |
| 135 | $group_name = KTUtil::arrayGet($_REQUEST, 'group_name'); | 141 | $group_name = KTUtil::arrayGet($_REQUEST, 'group_name'); |
| 136 | if (empty($group_name)) { $this->errorRedirectToMain(_kt('Please specify a name for the group.')); } | 142 | if (empty($group_name)) { $this->errorRedirectToMain(_kt('Please specify a name for the group.')); } |
| @@ -153,25 +159,27 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -153,25 +159,27 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 153 | } | 159 | } |
| 154 | 160 | ||
| 155 | $res = $oGroup->update(); | 161 | $res = $oGroup->update(); |
| 156 | - if (($res == false) || (PEAR::isError($res))) { return $this->errorRedirectToMain(_kt('Failed to set group details.')); } | 162 | + if (($res == false) || (PEAR::isError($res))) { return $this->errorRedirectToMain(_kt('Failed to set group details.'), sprintf("old_search=%s&do_search=1", $old_search)); } |
| 157 | 163 | ||
| 158 | if (!Permission::userIsSystemAdministrator($_SESSION['userID'])) { | 164 | if (!Permission::userIsSystemAdministrator($_SESSION['userID'])) { |
| 159 | $this->rollbackTransaction(); | 165 | $this->rollbackTransaction(); |
| 160 | - $this->errorRedirectTo('editGroup', _kt('For security purposes, you cannot remove your own administration priviledges.'), sprintf('group_id=%d', $oGroup->getId())); | 166 | + $this->errorRedirectTo('editGroup', _kt('For security purposes, you cannot remove your own administration priviledges.'), sprintf('group_id=%d', $oGroup->getId()), sprintf("old_search=%s&do_search=1", $old_search)); |
| 161 | exit(0); | 167 | exit(0); |
| 162 | } | 168 | } |
| 163 | 169 | ||
| 164 | 170 | ||
| 165 | $this->commitTransaction(); | 171 | $this->commitTransaction(); |
| 166 | if($unit_id == 0 && $is_unitadmin) { | 172 | if($unit_id == 0 && $is_unitadmin) { |
| 167 | - $this->successRedirectToMain(_kt('Group details updated.') . _kt(' Note: group is set as unit administrator, but is not assigned to a unit.')); | 173 | + $this->successRedirectToMain(_kt('Group details updated.') . _kt(' Note: group is set as unit administrator, but is not assigned to a unit.'), sprintf("old_search=%s&do_search=1", $old_search)); |
| 168 | } else { | 174 | } else { |
| 169 | - $this->successRedirectToMain(_kt('Group details updated.')); | 175 | + $this->successRedirectToMain(_kt('Group details updated.'), sprintf("old_search=%s&do_search=1", $old_search)); |
| 170 | } | 176 | } |
| 171 | } | 177 | } |
| 172 | // }}} | 178 | // }}} |
| 173 | 179 | ||
| 174 | function _do_manageUsers_source() { | 180 | function _do_manageUsers_source() { |
| 181 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 182 | + | ||
| 175 | $oGroup =& $this->oValidator->validateGroup($_REQUEST['group_id']); | 183 | $oGroup =& $this->oValidator->validateGroup($_REQUEST['group_id']); |
| 176 | 184 | ||
| 177 | $aGroupUsers = $oGroup->getMembers(); | 185 | $aGroupUsers = $oGroup->getMembers(); |
| @@ -181,20 +189,25 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -181,20 +189,25 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 181 | "context" => $this, | 189 | "context" => $this, |
| 182 | 'group_users' => $aGroupUsers, | 190 | 'group_users' => $aGroupUsers, |
| 183 | 'group' => $oGroup, | 191 | 'group' => $oGroup, |
| 192 | + "old_search" => $old_search, | ||
| 184 | ); | 193 | ); |
| 185 | return $oTemplate->render($aTemplateData); | 194 | return $oTemplate->render($aTemplateData); |
| 186 | } | 195 | } |
| 187 | 196 | ||
| 188 | function do_synchroniseGroup() { | 197 | function do_synchroniseGroup() { |
| 198 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 199 | + | ||
| 189 | require_once(KT_LIB_DIR . '/authentication/authenticationutil.inc.php'); | 200 | require_once(KT_LIB_DIR . '/authentication/authenticationutil.inc.php'); |
| 190 | $oGroup =& $this->oValidator->validateGroup($_REQUEST['group_id']); | 201 | $oGroup =& $this->oValidator->validateGroup($_REQUEST['group_id']); |
| 191 | $res = KTAuthenticationUtil::synchroniseGroupToSource($oGroup); | 202 | $res = KTAuthenticationUtil::synchroniseGroupToSource($oGroup); |
| 192 | - $this->successRedirectTo('manageusers', 'Group synchronised', sprintf('group_id=%d', $oGroup->getId())); | 203 | + $this->successRedirectTo('manageusers', 'Group synchronised', sprintf('group_id=%d', $oGroup->getId()), sprintf("old_search=%s&do_search=1", $old_search)); |
| 193 | exit(0); | 204 | exit(0); |
| 194 | } | 205 | } |
| 195 | 206 | ||
| 196 | // {{{ do_manageusers | 207 | // {{{ do_manageusers |
| 197 | function do_manageusers() { | 208 | function do_manageusers() { |
| 209 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 210 | + | ||
| 198 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); | 211 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 199 | $oGroup = Group::get($group_id); | 212 | $oGroup = Group::get($group_id); |
| 200 | if ((PEAR::isError($oGroup)) || ($oGroup === false)) { | 213 | if ((PEAR::isError($oGroup)) || ($oGroup === false)) { |
| @@ -245,6 +258,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -245,6 +258,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 245 | "edit_group" => $oGroup, | 258 | "edit_group" => $oGroup, |
| 246 | 'unused_users' => $aFreeUsers, | 259 | 'unused_users' => $aFreeUsers, |
| 247 | 'group_users' => $aGroupUsers, | 260 | 'group_users' => $aGroupUsers, |
| 261 | + "old_search" => $old_search, | ||
| 248 | ); | 262 | ); |
| 249 | return $oTemplate->render($aTemplateData); | 263 | return $oTemplate->render($aTemplateData); |
| 250 | } | 264 | } |
| @@ -252,6 +266,8 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -252,6 +266,8 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 252 | 266 | ||
| 253 | // {{{ do_updateUserMembers | 267 | // {{{ do_updateUserMembers |
| 254 | function do_updateUserMembers() { | 268 | function do_updateUserMembers() { |
| 269 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 270 | + | ||
| 255 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); | 271 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 256 | $oGroup = Group::get($group_id); | 272 | $oGroup = Group::get($group_id); |
| 257 | if ((PEAR::isError($oGroup)) || ($oGroup === false)) { | 273 | if ((PEAR::isError($oGroup)) || ($oGroup === false)) { |
| @@ -282,7 +298,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -282,7 +298,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 282 | } | 298 | } |
| 283 | $res = $oGroup->addMember($oUser); | 299 | $res = $oGroup->addMember($oUser); |
| 284 | if (PEAR::isError($res) || $res == false) { | 300 | if (PEAR::isError($res) || $res == false) { |
| 285 | - $this->errorRedirectToMain(sprintf(_kt('Unable to add user "%s" to group "%s"'), $oUser->getName(), $oGroup->getName())); | 301 | + $this->errorRedirectToMain(sprintf(_kt('Unable to add user "%s" to group "%s"'), $oUser->getName(), $oGroup->getName()), sprintf("old_search=%s&do_search=1", $old_search)); |
| 286 | } else { $usersAdded[] = $oUser->getName(); } | 302 | } else { $usersAdded[] = $oUser->getName(); } |
| 287 | } | 303 | } |
| 288 | } | 304 | } |
| @@ -293,7 +309,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -293,7 +309,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 293 | $oUser = User::get($iUserId); | 309 | $oUser = User::get($iUserId); |
| 294 | $res = $oGroup->removeMember($oUser); | 310 | $res = $oGroup->removeMember($oUser); |
| 295 | if (PEAR::isError($res) || $res == false) { | 311 | if (PEAR::isError($res) || $res == false) { |
| 296 | - $this->errorRedirectToMain(sprintf(_kt('Unable to remove user "%s" from group "%s"'), $oUser->getName(), $oGroup->getName())); | 312 | + $this->errorRedirectToMain(sprintf(_kt('Unable to remove user "%s" from group "%s"'), $oUser->getName(), $oGroup->getName()), sprintf("old_search=%s&do_search=1", $old_search)); |
| 297 | } else { | 313 | } else { |
| 298 | $usersRemoved[] = $oUser->getName(); | 314 | $usersRemoved[] = $oUser->getName(); |
| 299 | $memberReason = GroupUtil::getMembershipReason($oUser, $oGroup); | 315 | $memberReason = GroupUtil::getMembershipReason($oUser, $oGroup); |
| @@ -321,24 +337,26 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -321,24 +337,26 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 321 | if (!empty($usersAdded)) { $msg .= ' ' . _kt('Added') . ': ' . join(', ', $usersAdded) . '. <br />'; } | 337 | if (!empty($usersAdded)) { $msg .= ' ' . _kt('Added') . ': ' . join(', ', $usersAdded) . '. <br />'; } |
| 322 | if (!empty($usersRemoved)) { $msg .= ' ' . _kt('Removed') . ': ' . join(', ',$usersRemoved) . '.'; } | 338 | if (!empty($usersRemoved)) { $msg .= ' ' . _kt('Removed') . ': ' . join(', ',$usersRemoved) . '.'; } |
| 323 | 339 | ||
| 324 | - if (!Permission::userIsSystemAdministrator($_SESSION['userID'])) { | ||
| 325 | - $this->rollbackTransaction(); | ||
| 326 | - $this->errorRedirectTo('manageUsers', _kt('For security purposes, you cannot remove your own administration priviledges.'), sprintf('group_id=%d', $oGroup->getId())); | ||
| 327 | - exit(0); | ||
| 328 | - } | 340 | + if (!Permission::userIsSystemAdministrator($_SESSION['userID'])) { |
| 341 | + $this->rollbackTransaction(); | ||
| 342 | + $this->errorRedirectTo('manageUsers', _kt('For security purposes, you cannot remove your own administration priviledges.'), sprintf('group_id=%d', $oGroup->getId()), sprintf("old_search=%s&do_search=1", $old_search)); | ||
| 343 | + exit(0); | ||
| 344 | + } | ||
| 329 | 345 | ||
| 330 | $this->commitTransaction(); | 346 | $this->commitTransaction(); |
| 331 | - $this->successRedirectToMain($msg); | 347 | + $this->successRedirectToMain($msg, sprintf("old_search=%s&do_search=1", $old_search)); |
| 332 | } | 348 | } |
| 333 | // }}} | 349 | // }}} |
| 334 | 350 | ||
| 335 | // FIXME copy-paste ... | 351 | // FIXME copy-paste ... |
| 336 | // {{{ do_managesubgroups | 352 | // {{{ do_managesubgroups |
| 337 | function do_managesubgroups() { | 353 | function do_managesubgroups() { |
| 354 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 355 | + | ||
| 338 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); | 356 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 339 | $oGroup = Group::get($group_id); | 357 | $oGroup = Group::get($group_id); |
| 340 | if ((PEAR::isError($oGroup)) || ($oGroup === false)) { | 358 | if ((PEAR::isError($oGroup)) || ($oGroup === false)) { |
| 341 | - $this->errorRedirectToMain(_kt('No such group.')); | 359 | + $this->errorRedirectToMain(_kt('No such group.'), sprintf("old_search=%s&do_search=1", $old_search)); |
| 342 | } | 360 | } |
| 343 | 361 | ||
| 344 | $this->aBreadcrumbs[] = array('name' => $oGroup->getName()); | 362 | $this->aBreadcrumbs[] = array('name' => $oGroup->getName()); |
| @@ -381,6 +399,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -381,6 +399,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 381 | "edit_group" => $oGroup, | 399 | "edit_group" => $oGroup, |
| 382 | 'unused_groups' => $aAllowedGroups, | 400 | 'unused_groups' => $aAllowedGroups, |
| 383 | 'group_members' => $aMemberGroups, | 401 | 'group_members' => $aMemberGroups, |
| 402 | + "old_search" => $old_search, | ||
| 384 | ); | 403 | ); |
| 385 | return $oTemplate->render($aTemplateData); | 404 | return $oTemplate->render($aTemplateData); |
| 386 | } | 405 | } |
| @@ -404,10 +423,12 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -404,10 +423,12 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 404 | // FIXME copy-paste ... | 423 | // FIXME copy-paste ... |
| 405 | // {{{ do_updateGroupMembers | 424 | // {{{ do_updateGroupMembers |
| 406 | function do_updateGroupMembers() { | 425 | function do_updateGroupMembers() { |
| 426 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 427 | + | ||
| 407 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); | 428 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 408 | $oGroup = Group::get($group_id); | 429 | $oGroup = Group::get($group_id); |
| 409 | if ((PEAR::isError($oGroup)) || ($oGroup === false)) { | 430 | if ((PEAR::isError($oGroup)) || ($oGroup === false)) { |
| 410 | - $this->errorRedirectToMain('No such group.'); | 431 | + $this->errorRedirectToMain('No such group.', sprintf("old_search=%s&do_search=1", $old_search)); |
| 411 | } | 432 | } |
| 412 | 433 | ||
| 413 | $groupAdded = KTUtil::arrayGet($_REQUEST, 'groupAdded',''); | 434 | $groupAdded = KTUtil::arrayGet($_REQUEST, 'groupAdded',''); |
| @@ -427,7 +448,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -427,7 +448,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 427 | $oMemberGroup = Group::get($iMemberGroupID); | 448 | $oMemberGroup = Group::get($iMemberGroupID); |
| 428 | $res = $oGroup->addMemberGroup($oMemberGroup); | 449 | $res = $oGroup->addMemberGroup($oMemberGroup); |
| 429 | if (PEAR::isError($res)) { | 450 | if (PEAR::isError($res)) { |
| 430 | - $this->errorRedirectToMain(sprintf(_kt("Failed to add %s to %s"), $oMemberGroup->getName(), $oGroup->getName())); | 451 | + $this->errorRedirectToMain(sprintf(_kt("Failed to add %s to %s"), $oMemberGroup->getName(), $oGroup->getName()), sprintf("old_search=%s&do_search=1", $old_search)); |
| 431 | exit(0); | 452 | exit(0); |
| 432 | } else { $groupsAdded[] = $oMemberGroup->getName(); } | 453 | } else { $groupsAdded[] = $oMemberGroup->getName(); } |
| 433 | } | 454 | } |
| @@ -438,7 +459,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -438,7 +459,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 438 | $oMemberGroup = Group::get($iMemberGroupID); | 459 | $oMemberGroup = Group::get($iMemberGroupID); |
| 439 | $res = $oGroup->removeMemberGroup($oMemberGroup); | 460 | $res = $oGroup->removeMemberGroup($oMemberGroup); |
| 440 | if (PEAR::isError($res)) { | 461 | if (PEAR::isError($res)) { |
| 441 | - $this->errorRedirectToMain(sprintf(_kt("Failed to remove %s from %s"), $oMemberGroup->getName(), $oGroup->getName())); | 462 | + $this->errorRedirectToMain(sprintf(_kt("Failed to remove %s from %s"), $oMemberGroup->getName(), $oGroup->getName()), sprintf("old_search=%s&do_search=1", $old_search)); |
| 442 | exit(0); | 463 | exit(0); |
| 443 | } else { $groupsRemoved[] = $oMemberGroup->getName(); } | 464 | } else { $groupsRemoved[] = $oMemberGroup->getName(); } |
| 444 | } | 465 | } |
| @@ -450,7 +471,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -450,7 +471,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 450 | 471 | ||
| 451 | $this->commitTransaction(); | 472 | $this->commitTransaction(); |
| 452 | 473 | ||
| 453 | - $this->successRedirectToMain($msg); | 474 | + $this->successRedirectToMain($msg, sprintf("old_search=%s&do_search=1", $old_search)); |
| 454 | } | 475 | } |
| 455 | // }}} | 476 | // }}} |
| 456 | 477 | ||
| @@ -492,7 +513,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -492,7 +513,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 492 | $aTemplateData = array( | 513 | $aTemplateData = array( |
| 493 | "context" => $this, | 514 | "context" => $this, |
| 494 | "add_fields" => $add_fields, | 515 | "add_fields" => $add_fields, |
| 495 | - "authentication_sources" => $aAuthenticationSources, | 516 | + "authentication_sources" => $aAuthenticationSources, |
| 496 | ); | 517 | ); |
| 497 | return $oTemplate->render($aTemplateData); | 518 | return $oTemplate->render($aTemplateData); |
| 498 | } | 519 | } |
| @@ -532,28 +553,30 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | @@ -532,28 +553,30 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { | ||
| 532 | 553 | ||
| 533 | // {{{ do_deleteGroup | 554 | // {{{ do_deleteGroup |
| 534 | function do_deleteGroup() { | 555 | function do_deleteGroup() { |
| 556 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 557 | + | ||
| 535 | $aErrorOptions = array( | 558 | $aErrorOptions = array( |
| 536 | - 'redirect_to' => array('main'), | 559 | + 'redirect_to' => array('main', sprintf("old_search=%s&do_search=1", $old_search)), |
| 537 | ); | 560 | ); |
| 538 | $oGroup = $this->oValidator->validateGroup($_REQUEST['group_id'], $aErrorOptions); | 561 | $oGroup = $this->oValidator->validateGroup($_REQUEST['group_id'], $aErrorOptions); |
| 539 | $sGroupName = $oGroup->getName(); | 562 | $sGroupName = $oGroup->getName(); |
| 540 | 563 | ||
| 541 | - $this->startTransaction(); | ||
| 542 | - | ||
| 543 | - foreach($oGroup->getParentGroups() as $oParentGroup) { | ||
| 544 | - $res = $oParentGroup->removeMemberGroup($oGroup); | ||
| 545 | - } | ||
| 546 | - | 564 | + $this->startTransaction(); |
| 565 | + | ||
| 566 | + foreach($oGroup->getParentGroups() as $oParentGroup) { | ||
| 567 | + $res = $oParentGroup->removeMemberGroup($oGroup); | ||
| 568 | + } | ||
| 569 | + | ||
| 547 | $res = $oGroup->delete(); | 570 | $res = $oGroup->delete(); |
| 548 | $this->oValidator->notError($res, $aErrorOptions); | 571 | $this->oValidator->notError($res, $aErrorOptions); |
| 549 | - | ||
| 550 | - if (!Permission::userIsSystemAdministrator($_SESSION['userID'])) { | ||
| 551 | - $this->rollbackTransaction(); | ||
| 552 | - $this->errorRedirectTo('main', _kt('For security purposes, you cannot remove your own administration priviledges.')); | ||
| 553 | - exit(0); | ||
| 554 | - } | ||
| 555 | - $this->commitTransaction(); | ||
| 556 | - $this->successRedirectToMain(sprintf(_kt('Group "%s" deleted.'), $sGroupName)); | 572 | + |
| 573 | + if (!Permission::userIsSystemAdministrator($_SESSION['userID'])) { | ||
| 574 | + $this->rollbackTransaction(); | ||
| 575 | + $this->errorRedirectTo('main', _kt('For security purposes, you cannot remove your own administration priviledges.'), sprintf("old_search=%s&do_search=1", $old_search)); | ||
| 576 | + exit(0); | ||
| 577 | + } | ||
| 578 | + $this->commitTransaction(); | ||
| 579 | + $this->successRedirectToMain(sprintf(_kt('Group "%s" deleted.'), $sGroupName), sprintf("old_search=%s&do_search=1", $old_search)); | ||
| 557 | } | 580 | } |
| 558 | // }}} | 581 | // }}} |
| 559 | 582 |
plugins/ktcore/admin/userManagement.php
| @@ -51,7 +51,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -51,7 +51,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 51 | $KTConfig =& KTConfig::getSingleton(); | 51 | $KTConfig =& KTConfig::getSingleton(); |
| 52 | $alwaysAll = $KTConfig->get("alwaysShowAll"); | 52 | $alwaysAll = $KTConfig->get("alwaysShowAll"); |
| 53 | 53 | ||
| 54 | - $name = KTUtil::arrayGet($_REQUEST, 'name'); | 54 | + $name = KTUtil::arrayGet($_REQUEST, 'name', KTUtil::arrayGet($_REQUEST, 'old_search')); |
| 55 | $show_all = KTUtil::arrayGet($_REQUEST, 'show_all', $alwaysAll); | 55 | $show_all = KTUtil::arrayGet($_REQUEST, 'show_all', $alwaysAll); |
| 56 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); | 56 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 57 | 57 | ||
| @@ -85,7 +85,8 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -85,7 +85,8 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 85 | "search_fields" => $search_fields, | 85 | "search_fields" => $search_fields, |
| 86 | "search_results" => $search_results, | 86 | "search_results" => $search_results, |
| 87 | "no_search" => $no_search, | 87 | "no_search" => $no_search, |
| 88 | - "authentication_sources" => $aAuthenticationSources, | 88 | + "authentication_sources" => $aAuthenticationSources, |
| 89 | + "old_search" => $name, | ||
| 89 | ); | 90 | ); |
| 90 | return $oTemplate->render($aTemplateData); | 91 | return $oTemplate->render($aTemplateData); |
| 91 | } | 92 | } |
| @@ -158,6 +159,8 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -158,6 +159,8 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 158 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); | 159 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 159 | $oUser =& User::get($user_id); | 160 | $oUser =& User::get($user_id); |
| 160 | 161 | ||
| 162 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 163 | + | ||
| 161 | if (PEAR::isError($oUser) || $oUser == false) { | 164 | if (PEAR::isError($oUser) || $oUser == false) { |
| 162 | $this->errorRedirectToMain(_kt('Please select a user first.')); | 165 | $this->errorRedirectToMain(_kt('Please select a user first.')); |
| 163 | exit(0); | 166 | exit(0); |
| @@ -190,6 +193,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -190,6 +193,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 190 | "edit_user" => $oUser, | 193 | "edit_user" => $oUser, |
| 191 | "provider" => $oProvider, | 194 | "provider" => $oProvider, |
| 192 | "source" => $oAuthenticationSource, | 195 | "source" => $oAuthenticationSource, |
| 196 | + 'old_search' => $old_search, | ||
| 193 | ); | 197 | ); |
| 194 | return $oTemplate->render($aTemplateData); | 198 | return $oTemplate->render($aTemplateData); |
| 195 | } | 199 | } |
| @@ -199,6 +203,8 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -199,6 +203,8 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 199 | $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('User Management')); | 203 | $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('User Management')); |
| 200 | $this->oPage->setBreadcrumbDetails(_kt('change user password')); | 204 | $this->oPage->setBreadcrumbDetails(_kt('change user password')); |
| 201 | $this->oPage->setTitle(_kt("Change User Password")); | 205 | $this->oPage->setTitle(_kt("Change User Password")); |
| 206 | + | ||
| 207 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 202 | 208 | ||
| 203 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); | 209 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 204 | $oUser =& User::get($user_id); | 210 | $oUser =& User::get($user_id); |
| @@ -220,12 +226,15 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -220,12 +226,15 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 220 | "context" => $this, | 226 | "context" => $this, |
| 221 | "edit_fields" => $edit_fields, | 227 | "edit_fields" => $edit_fields, |
| 222 | "edit_user" => $oUser, | 228 | "edit_user" => $oUser, |
| 229 | + 'old_search' => $old_search, | ||
| 223 | ); | 230 | ); |
| 224 | return $oTemplate->render($aTemplateData); | 231 | return $oTemplate->render($aTemplateData); |
| 225 | } | 232 | } |
| 226 | 233 | ||
| 227 | function do_updatePassword() { | 234 | function do_updatePassword() { |
| 228 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); | 235 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 236 | + | ||
| 237 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 229 | 238 | ||
| 230 | $password = KTUtil::arrayGet($_REQUEST, 'password'); | 239 | $password = KTUtil::arrayGet($_REQUEST, 'password'); |
| 231 | $confirm_password = KTUtil::arrayGet($_REQUEST, 'confirm_password'); | 240 | $confirm_password = KTUtil::arrayGet($_REQUEST, 'confirm_password'); |
| @@ -288,10 +297,13 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -288,10 +297,13 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 288 | function do_editgroups() { | 297 | function do_editgroups() { |
| 289 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); | 298 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 290 | $oUser = User::get($user_id); | 299 | $oUser = User::get($user_id); |
| 300 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 291 | if ((PEAR::isError($oUser)) || ($oUser === false)) { | 301 | if ((PEAR::isError($oUser)) || ($oUser === false)) { |
| 292 | - $this->errorRedirectToMain(_kt('No such user.')); | 302 | + $this->errorRedirectToMain(_kt('No such user.'), sprintf("old_search=%s&do_search=1", $old_search)); |
| 293 | } | 303 | } |
| 294 | 304 | ||
| 305 | + | ||
| 306 | + | ||
| 295 | $this->aBreadcrumbs[] = array('name' => $oUser->getName()); | 307 | $this->aBreadcrumbs[] = array('name' => $oUser->getName()); |
| 296 | $this->oPage->setBreadcrumbDetails(_kt('edit groups')); | 308 | $this->oPage->setBreadcrumbDetails(_kt('edit groups')); |
| 297 | $this->oPage->setTitle(sprintf(_kt("Edit %s's groups"), $oUser->getName())); | 309 | $this->oPage->setTitle(sprintf(_kt("Edit %s's groups"), $oUser->getName())); |
| @@ -336,15 +348,16 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -336,15 +348,16 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 336 | "unused_groups" => $aFreeGroups, | 348 | "unused_groups" => $aFreeGroups, |
| 337 | "user_groups" => $aUserGroups, | 349 | "user_groups" => $aUserGroups, |
| 338 | "edit_user" => $oUser, | 350 | "edit_user" => $oUser, |
| 351 | + 'old_search' => $old_search, | ||
| 339 | ); | 352 | ); |
| 340 | return $oTemplate->render($aTemplateData); | 353 | return $oTemplate->render($aTemplateData); |
| 341 | } | 354 | } |
| 342 | 355 | ||
| 343 | function do_saveUser() { | 356 | function do_saveUser() { |
| 344 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); | 357 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 345 | - | 358 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); |
| 346 | $aErrorOptions = array( | 359 | $aErrorOptions = array( |
| 347 | - 'redirect_to' => array('editUser', sprintf('user_id=%d', $user_id)) | 360 | + 'redirect_to' => array('editUser', sprintf('user_id=%d&old_search=%s&do_search=1', $user_id, $old_search)) |
| 348 | ); | 361 | ); |
| 349 | 362 | ||
| 350 | $name = $this->oValidator->validateString( | 363 | $name = $this->oValidator->validateString( |
| @@ -375,7 +388,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -375,7 +388,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 375 | 388 | ||
| 376 | $oUser =& User::get($user_id); | 389 | $oUser =& User::get($user_id); |
| 377 | if (PEAR::isError($oUser) || $oUser == false) { | 390 | if (PEAR::isError($oUser) || $oUser == false) { |
| 378 | - $this->errorRedirectToMain(_kt("Please select a user to modify first.")); | 391 | + $this->errorRedirectToMain(_kt("Please select a user to modify first."), sprintf("old_search=%s&do_search=1", $old_search)); |
| 379 | } | 392 | } |
| 380 | 393 | ||
| 381 | $oUser->setName($name); | 394 | $oUser->setName($name); |
| @@ -394,18 +407,18 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -394,18 +407,18 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 394 | 407 | ||
| 395 | 408 | ||
| 396 | if (PEAR::isError($res) || ($res == false)) { | 409 | if (PEAR::isError($res) || ($res == false)) { |
| 397 | - $this->errorRedirectoToMain(_kt('Failed to update user.')); | 410 | + $this->errorRedirectoToMain(_kt('Failed to update user.'), sprintf("old_search=%s&do_search=1", $old_search)); |
| 398 | } | 411 | } |
| 399 | 412 | ||
| 400 | $this->commitTransaction(); | 413 | $this->commitTransaction(); |
| 401 | - $this->successRedirectToMain(_kt('User information updated.')); | 414 | + $this->successRedirectToMain(_kt('User information updated.'), sprintf("old_search=%s&do_search=1", $old_search)); |
| 402 | } | 415 | } |
| 403 | 416 | ||
| 404 | function do_createUser() { | 417 | function do_createUser() { |
| 405 | // FIXME generate and pass the error stack to adduser. | 418 | // FIXME generate and pass the error stack to adduser. |
| 406 | - | 419 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); |
| 407 | $aErrorOptions = array( | 420 | $aErrorOptions = array( |
| 408 | - 'redirect_to' => array('addUser') | 421 | + 'redirect_to' => array('addUser', sprintf('old_search=%s&do_search=1', $old_search)) |
| 409 | ); | 422 | ); |
| 410 | 423 | ||
| 411 | $username = $this->oValidator->validateString( | 424 | $username = $this->oValidator->validateString( |
| @@ -433,15 +446,15 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -433,15 +446,15 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 433 | $confirm_password = KTUtil::arrayGet($_REQUEST, 'confirm_password'); | 446 | $confirm_password = KTUtil::arrayGet($_REQUEST, 'confirm_password'); |
| 434 | 447 | ||
| 435 | $KTConfig =& KTConfig::getSingleton(); | 448 | $KTConfig =& KTConfig::getSingleton(); |
| 436 | - $minLength = ((int) $KTConfig->get('user_prefs/passwordLength', 6)); | ||
| 437 | - $restrictAdmin = ((bool) $KTConfig->get('user_prefs/restrictAdminPasswords', false)); | 449 | + $minLength = ((int) $KTConfig->get('user_prefs/passwordLength', 6)); |
| 450 | + $restrictAdmin = ((bool) $KTConfig->get('user_prefs/restrictAdminPasswords', false)); | ||
| 438 | 451 | ||
| 439 | if ($restrictAdmin && (strlen($password) < $minLength)) { | 452 | if ($restrictAdmin && (strlen($password) < $minLength)) { |
| 440 | - $this->errorRedirectTo('addUser', sprintf(_kt("The password must be at least %d characters long."), $minLength)); | ||
| 441 | - } else if (empty($password)) { | ||
| 442 | - $this->errorRedirectTo('addUser', _kt("You must specify a password for the user.")); | 453 | + $this->errorRedirectTo('addUser', sprintf(_kt("The password must be at least %d characters long."), $minLength), sprintf("old_search=%s&do_search=1", $old_search)); |
| 454 | + } else if (empty($password)) { | ||
| 455 | + $this->errorRedirectTo('addUser', _kt("You must specify a password for the user."), sprintf("old_search=%s&do_search=1", $old_search)); | ||
| 443 | } else if ($password !== $confirm_password) { | 456 | } else if ($password !== $confirm_password) { |
| 444 | - $this->errorRedirectTo('addUser', _kt("The passwords you specified do not match.")); | 457 | + $this->errorRedirectTo('addUser', _kt("The passwords you specified do not match."), sprintf("old_search=%s&do_search=1", $old_search)); |
| 445 | } | 458 | } |
| 446 | 459 | ||
| 447 | $dupUser =& User::getByUserName($username); | 460 | $dupUser =& User::getByUserName($username); |
| @@ -462,14 +475,15 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -462,14 +475,15 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 462 | )); | 475 | )); |
| 463 | 476 | ||
| 464 | if (PEAR::isError($oUser) || ($oUser == false)) { | 477 | if (PEAR::isError($oUser) || ($oUser == false)) { |
| 465 | - $this->errorRedirectToMain(_kt("failed to create user.")); | 478 | + $this->errorRedirectToMain(_kt("failed to create user."), sprintf("old_search=%s&do_search=1", $old_search)); |
| 466 | exit(0); | 479 | exit(0); |
| 467 | } | 480 | } |
| 468 | 481 | ||
| 469 | - $this->successRedirectToMain(_kt('Created new user') . ': "' . $oUser->getUsername() . '"', 'name=' . $oUser->getUsername()); | 482 | + $this->successRedirectToMain(_kt('Created new user') . ': "' . $oUser->getUsername() . '"', 'name=' . $oUser->getUsername(), sprintf("old_search=%s&do_search=1", $old_search)); |
| 470 | } | 483 | } |
| 471 | 484 | ||
| 472 | function do_deleteUser() { | 485 | function do_deleteUser() { |
| 486 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 473 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); | 487 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 474 | $oUser = User::get($user_id); | 488 | $oUser = User::get($user_id); |
| 475 | if ((PEAR::isError($oUser)) || ($oUser === false)) { | 489 | if ((PEAR::isError($oUser)) || ($oUser === false)) { |
| @@ -477,17 +491,18 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -477,17 +491,18 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 477 | } | 491 | } |
| 478 | $res = $oUser->delete(); | 492 | $res = $oUser->delete(); |
| 479 | if (PEAR::isError($res)) { | 493 | if (PEAR::isError($res)) { |
| 480 | - $this->errorRedirectToMain(sprintf(_kt('Unable to delete user - the user may still be referred by documents.'), $res->getMessage())); | 494 | + $this->errorRedirectToMain(sprintf(_kt('Unable to delete user - the user may still be referred by documents.'), $res->getMessage()), sprintf("old_search=%s&do_search=1", $old_search)); |
| 481 | } | 495 | } |
| 482 | 496 | ||
| 483 | - $this->successRedirectToMain(_kt('User deleted') . ': ' . $oUser->getName()); | 497 | + $this->successRedirectToMain(_kt('User deleted') . ': ' . $oUser->getName(), sprintf("old_search=%s&do_search=1", $old_search)); |
| 484 | } | 498 | } |
| 485 | 499 | ||
| 486 | function do_updateGroups() { | 500 | function do_updateGroups() { |
| 501 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | ||
| 487 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); | 502 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 488 | $oUser = User::get($user_id); | 503 | $oUser = User::get($user_id); |
| 489 | if ((PEAR::isError($oUser)) || ($oUser === false)) { | 504 | if ((PEAR::isError($oUser)) || ($oUser === false)) { |
| 490 | - $this->errorRedirectToMain(_kt('Please select a user first.')); | 505 | + $this->errorRedirectToMain(_kt('Please select a user first.'), sprintf("old_search=%s&do_search=1", $old_search)); |
| 491 | } | 506 | } |
| 492 | $groupAdded = KTUtil::arrayGet($_REQUEST, 'groupAdded',''); | 507 | $groupAdded = KTUtil::arrayGet($_REQUEST, 'groupAdded',''); |
| 493 | $groupRemoved = KTUtil::arrayGet($_REQUEST, 'groupRemoved',''); | 508 | $groupRemoved = KTUtil::arrayGet($_REQUEST, 'groupRemoved',''); |
| @@ -517,7 +532,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -517,7 +532,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 517 | } | 532 | } |
| 518 | $res = $oGroup->addMember($oUser); | 533 | $res = $oGroup->addMember($oUser); |
| 519 | if (PEAR::isError($res) || $res == false) { | 534 | if (PEAR::isError($res) || $res == false) { |
| 520 | - $this->errorRedirectToMain(sprintf(_kt('Unable to add user to group "%s"'), $oGroup->getName())); | 535 | + $this->errorRedirectToMain(sprintf(_kt('Unable to add user to group "%s"'), $oGroup->getName()), sprintf("old_search=%s&do_search=1", $old_search)); |
| 521 | } else { | 536 | } else { |
| 522 | $groupsAdded[] = $oGroup->getName(); | 537 | $groupsAdded[] = $oGroup->getName(); |
| 523 | 538 | ||
| @@ -531,7 +546,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -531,7 +546,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 531 | $oGroup = Group::get($iGroupID); | 546 | $oGroup = Group::get($iGroupID); |
| 532 | $res = $oGroup->removeMember($oUser); | 547 | $res = $oGroup->removeMember($oUser); |
| 533 | if (PEAR::isError($res) || $res == false) { | 548 | if (PEAR::isError($res) || $res == false) { |
| 534 | - $this->errorRedirectToMain(sprintf(_kt('Unable to remove user from group "%s"'), $oGroup->getName())); | 549 | + $this->errorRedirectToMain(sprintf(_kt('Unable to remove user from group "%s"'), $oGroup->getName()), sprintf("old_search=%s&do_search=1", $old_search)); |
| 535 | } else { | 550 | } else { |
| 536 | $groupsRemoved[] = $oGroup->getName(); | 551 | $groupsRemoved[] = $oGroup->getName(); |
| 537 | $memberReason = GroupUtil::getMembershipReason($oUser, $oGroup); | 552 | $memberReason = GroupUtil::getMembershipReason($oUser, $oGroup); |
| @@ -559,15 +574,14 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | @@ -559,15 +574,14 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; | ||
| 559 | if (!empty($groupsAdded)) { $msg .= ' ' . _kt('Added to groups') . ': ' . implode(', ', $groupsAdded) . '. <br />'; } | 574 | if (!empty($groupsAdded)) { $msg .= ' ' . _kt('Added to groups') . ': ' . implode(', ', $groupsAdded) . '. <br />'; } |
| 560 | if (!empty($groupsRemoved)) { $msg .= ' ' . _kt('Removed from groups') . ': ' . implode(', ',$groupsRemoved) . '.'; } | 575 | if (!empty($groupsRemoved)) { $msg .= ' ' . _kt('Removed from groups') . ': ' . implode(', ',$groupsRemoved) . '.'; } |
| 561 | 576 | ||
| 562 | - if (!Permission::userIsSystemAdministrator($_SESSION['userID'])) { | ||
| 563 | - $this->rollbackTransaction(); | ||
| 564 | - $this->errorRedirectTo('editgroups', _kt('For security purposes, you cannot remove your own administration priviledges.'), sprintf('user_id=%d', $oUser->getId())); | ||
| 565 | - exit(0); | ||
| 566 | - } | ||
| 567 | - | 577 | + if (!Permission::userIsSystemAdministrator($_SESSION['userID'])) { |
| 578 | + $this->rollbackTransaction(); | ||
| 579 | + $this->errorRedirectTo('editgroups', _kt('For security purposes, you cannot remove your own administration priviledges.'), sprintf('user_id=%d&do_search=1&old_search=%s', $oUser->getId(), $old_search)); | ||
| 580 | + exit(0); | ||
| 581 | + } | ||
| 568 | 582 | ||
| 569 | $this->commitTransaction(); | 583 | $this->commitTransaction(); |
| 570 | - $this->successRedirectToMain($msg); | 584 | + $this->successRedirectToMain($msg, sprintf("old_search=%s&do_search=1", $old_search)); |
| 571 | } | 585 | } |
| 572 | 586 | ||
| 573 | function getGroupStringForUser($oUser) { | 587 | function getGroupStringForUser($oUser) { |
templates/ktcore/principals/editgroup.smarty
| @@ -6,6 +6,7 @@ the system's information about group <strong>#name#</strong>{/i18n}</p> | @@ -6,6 +6,7 @@ the system's information about group <strong>#name#</strong>{/i18n}</p> | ||
| 6 | <form action="{$smarty.server.PHP_SELF}" method="POST"> | 6 | <form action="{$smarty.server.PHP_SELF}" method="POST"> |
| 7 | <input type="hidden" name="action" value="saveGroup" /> | 7 | <input type="hidden" name="action" value="saveGroup" /> |
| 8 | <input type="hidden" name="group_id" value="{$edit_group->getId()}" /> | 8 | <input type="hidden" name="group_id" value="{$edit_group->getId()}" /> |
| 9 | + <input type="hidden" name="old_search" value="{$old_search}" /> | ||
| 9 | <fieldset> | 10 | <fieldset> |
| 10 | <legend>{i18n}Change Group Details{/i18n}</legend> | 11 | <legend>{i18n}Change Group Details{/i18n}</legend> |
| 11 | <p class="descriptiveText">{i18n}Users may be classed together as Groups and these groups may be used to set security privileges throughout the document management system.{/i18n}</p> | 12 | <p class="descriptiveText">{i18n}Users may be classed together as Groups and these groups may be used to set security privileges throughout the document management system.{/i18n}</p> |
templates/ktcore/principals/edituser.smarty
| @@ -3,6 +3,7 @@ | @@ -3,6 +3,7 @@ | ||
| 3 | <form action="{$smarty.server.PHP_SELF}" method="POST"> | 3 | <form action="{$smarty.server.PHP_SELF}" method="POST"> |
| 4 | <input type="hidden" name="action" value="saveUser" /> | 4 | <input type="hidden" name="action" value="saveUser" /> |
| 5 | <input type="hidden" name="user_id" value="{$edit_user->getId()}" /> | 5 | <input type="hidden" name="user_id" value="{$edit_user->getId()}" /> |
| 6 | + <input type="hidden" name="old_search" value="{$old_search}" /> | ||
| 6 | <fieldset> | 7 | <fieldset> |
| 7 | <legend>{i18n}Change User Details{/i18n}</legend> | 8 | <legend>{i18n}Change User Details{/i18n}</legend> |
| 8 | <p class="descriptiveText">{i18n}Please complete the form below to edit the user. Fields marked with a red square are required. By default, users are created using KnowledgeTree's builtin authentication provider. Should you wish to use an external authentication provider such as LDAP, please ensure that the provider's plugin is registered and enabled.{/i18n}</p> | 9 | <p class="descriptiveText">{i18n}Please complete the form below to edit the user. Fields marked with a red square are required. By default, users are created using KnowledgeTree's builtin authentication provider. Should you wish to use an external authentication provider such as LDAP, please ensure that the provider's plugin is registered and enabled.{/i18n}</p> |
templates/ktcore/principals/groupadmin.smarty
| @@ -56,14 +56,14 @@ action may take some time if you have many groups).{/i18n}</p> | @@ -56,14 +56,14 @@ action may take some time if you have many groups).{/i18n}</p> | ||
| 56 | {$context->_getUnitName($oGroup)} | 56 | {$context->_getUnitName($oGroup)} |
| 57 | {/if} | 57 | {/if} |
| 58 | </td> | 58 | </td> |
| 59 | - <td><a href="{addQS}action=editGroup&group_id={$oGroup->getId()}{/addQS}" | 59 | + <td><a href="{addQS}action=editGroup&group_id={$oGroup->getId()}&old_search={$old_search}{/addQS}" |
| 60 | class="ktAction ktEdit">{i18n}Edit{/i18n}</a></td> | 60 | class="ktAction ktEdit">{i18n}Edit{/i18n}</a></td> |
| 61 | - <td><a href="{addQS}action=deleteGroup&group_id={$oGroup->getId()}{/addQS}" | 61 | + <td><a href="{addQS}action=deleteGroup&group_id={$oGroup->getId()}&old_search={$old_search}{/addQS}" |
| 62 | class="ktAction ktDelete">{i18n}Delete{/i18n}</a></td> | 62 | class="ktAction ktDelete">{i18n}Delete{/i18n}</a></td> |
| 63 | <td><a | 63 | <td><a |
| 64 | -href="{addQS}action=manageUsers&group_id={$oGroup->getId()}{/addQS}">{i18n}Manage Users{/i18n}</a></td> | 64 | +href="{addQS}action=manageUsers&group_id={$oGroup->getId()}&old_search={$old_search}{/addQS}">{i18n}Manage Users{/i18n}</a></td> |
| 65 | <td><a | 65 | <td><a |
| 66 | -href="{addQS}action=manageSubgroups&group_id={$oGroup->getId()}{/addQS}">{i18n}Manage sub-groups{/i18n}</a></td> | 66 | +href="{addQS}action=manageSubgroups&group_id={$oGroup->getId()}&old_search={$old_search}{/addQS}">{i18n}Manage sub-groups{/i18n}</a></td> |
| 67 | <td class="title"><span class="descriptiveText">{$context->getGroupStringForGroup($oGroup)}</span></td> | 67 | <td class="title"><span class="descriptiveText">{$context->getGroupStringForGroup($oGroup)}</span></td> |
| 68 | </tr> | 68 | </tr> |
| 69 | {/foreach} | 69 | {/foreach} |
templates/ktcore/principals/groups_managesubgroups.smarty
| @@ -10,6 +10,7 @@ | @@ -10,6 +10,7 @@ | ||
| 10 | <form action="{$smarty.server.PHP_SELF}" method="POST" id="usergroupform"> | 10 | <form action="{$smarty.server.PHP_SELF}" method="POST" id="usergroupform"> |
| 11 | <input type="hidden" name="action" value="updateGroupMembers" /> | 11 | <input type="hidden" name="action" value="updateGroupMembers" /> |
| 12 | <input type="hidden" name="group_id" value="{$edit_group->getId()}" /> | 12 | <input type="hidden" name="group_id" value="{$edit_group->getId()}" /> |
| 13 | + <input type="hidden" name="old_search" value="{$old_search}" /> | ||
| 13 | <!-- erk. FIXME clean up and remove OptionTransfer.js. --> | 14 | <!-- erk. FIXME clean up and remove OptionTransfer.js. --> |
| 14 | 15 | ||
| 15 | <input type="hidden" name="groupAdded" /> | 16 | <input type="hidden" name="groupAdded" /> |
templates/ktcore/principals/groups_manageusers.smarty
| @@ -10,6 +10,7 @@ | @@ -10,6 +10,7 @@ | ||
| 10 | <form action="{$smarty.server.PHP_SELF}" method="POST" id="usergroupform"> | 10 | <form action="{$smarty.server.PHP_SELF}" method="POST" id="usergroupform"> |
| 11 | <input type="hidden" name="action" value="updateUserMembers" /> | 11 | <input type="hidden" name="action" value="updateUserMembers" /> |
| 12 | <input type="hidden" name="group_id" value="{$edit_group->getId()}" /> | 12 | <input type="hidden" name="group_id" value="{$edit_group->getId()}" /> |
| 13 | + <input type="hidden" name="old_search" value="{$old_search}" /> | ||
| 13 | <!-- erk. FIXME clean up and remove OptionTransfer.js. --> | 14 | <!-- erk. FIXME clean up and remove OptionTransfer.js. --> |
| 14 | 15 | ||
| 15 | <input type="hidden" name="userAdded" /> | 16 | <input type="hidden" name="userAdded" /> |
templates/ktcore/principals/groups_sourceusers.smarty
| @@ -10,6 +10,7 @@ | @@ -10,6 +10,7 @@ | ||
| 10 | <form action="{$smarty.server.PHP_SELF}" method="POST"> | 10 | <form action="{$smarty.server.PHP_SELF}" method="POST"> |
| 11 | <input type="hidden" name="action" value="synchroniseGroup" /> | 11 | <input type="hidden" name="action" value="synchroniseGroup" /> |
| 12 | <input type="hidden" name="group_id" value="{$group->getId()}" /> | 12 | <input type="hidden" name="group_id" value="{$group->getId()}" /> |
| 13 | + <input type="hidden" name="old_search" value="{$old_search}" /> | ||
| 13 | 14 | ||
| 14 | <fieldset> | 15 | <fieldset> |
| 15 | <legend>{i18n arg_name=$group->getName()}Synchronise Users in #name#{/i18n}</legend> | 16 | <legend>{i18n arg_name=$group->getName()}Synchronise Users in #name#{/i18n}</legend> |
templates/ktcore/principals/useradmin.smarty
| @@ -79,9 +79,9 @@ very slow if you have many users).{/i18n}</p> | @@ -79,9 +79,9 @@ very slow if you have many users).{/i18n}</p> | ||
| 79 | <tr class="{cycle values=odd,even}"> | 79 | <tr class="{cycle values=odd,even}"> |
| 80 | <td>{$oUser->getName()}</td> | 80 | <td>{$oUser->getName()}</td> |
| 81 | <td>{$oUser->getUsername()}</td> | 81 | <td>{$oUser->getUsername()}</td> |
| 82 | - <td><a href="{addQS}action=editUser&user_id={$oUser->getId()}{/addQS}" class="ktAction ktEdit">{i18n}Edit{/i18n}</a></td> | ||
| 83 | - <td><a href="{addQS}action=deleteuser&user_id={$oUser->getId()}{/addQS}" class="ktAction ktDelete">{i18n}Delete{/i18n}</a></td> | ||
| 84 | - <td><a href="{addQS}action=editgroups&user_id={$oUser->getId()}{/addQS}">{i18n}Manage Groups{/i18n}</a></td> | 82 | + <td><a href="{addQS}action=editUser&user_id={$oUser->getId()}&old_search={$old_search}{/addQS}" class="ktAction ktEdit">{i18n}Edit{/i18n}</a></td> |
| 83 | + <td><a href="{addQS}action=deleteuser&user_id={$oUser->getId()}&old_search={$old_search}{/addQS}" class="ktAction ktDelete">{i18n}Delete{/i18n}</a></td> | ||
| 84 | + <td><a href="{addQS}action=editgroups&user_id={$oUser->getId()}&old_search={$old_search}{/addQS}">{i18n}Manage Groups{/i18n}</a></td> | ||
| 85 | <td class="title"><span class="descriptiveText">{$context->getGroupStringForUser($oUser)}</span></td> | 85 | <td class="title"><span class="descriptiveText">{$context->getGroupStringForUser($oUser)}</span></td> |
| 86 | </tr> | 86 | </tr> |
| 87 | {/foreach} | 87 | {/foreach} |
templates/ktcore/principals/usergroups.smarty
| @@ -10,6 +10,7 @@ | @@ -10,6 +10,7 @@ | ||
| 10 | <form action="{$smarty.server.PHP_SELF}" method="POST" id="usergroupform"> | 10 | <form action="{$smarty.server.PHP_SELF}" method="POST" id="usergroupform"> |
| 11 | <input type="hidden" name="action" value="updateGroups" /> | 11 | <input type="hidden" name="action" value="updateGroups" /> |
| 12 | <input type="hidden" name="user_id" value="{$edit_user->getId()}" /> | 12 | <input type="hidden" name="user_id" value="{$edit_user->getId()}" /> |
| 13 | + <input type="hidden" name="old_search" value="{$old_search}" /> | ||
| 13 | <!-- erk. FIXME clean up and remove OptionTransfer.js. --> | 14 | <!-- erk. FIXME clean up and remove OptionTransfer.js. --> |
| 14 | 15 | ||
| 15 | <input type="hidden" name="groupAdded" /> | 16 | <input type="hidden" name="groupAdded" /> |