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 | 51 | $KTConfig =& KTConfig::getSingleton(); |
| 52 | 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 | 55 | $show_all = KTUtil::arrayGet($_REQUEST, 'show_all', $alwaysAll); |
| 56 | 56 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 57 | 57 | |
| ... | ... | @@ -79,6 +79,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 79 | 79 | "search_fields" => $search_fields, |
| 80 | 80 | "search_results" => $search_results, |
| 81 | 81 | 'no_search' => $no_search, |
| 82 | + 'old_search' => $name, | |
| 82 | 83 | ); |
| 83 | 84 | return $oTemplate->render($aTemplateData); |
| 84 | 85 | } |
| ... | ... | @@ -86,13 +87,15 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 86 | 87 | |
| 87 | 88 | // {{{ do_editGroup |
| 88 | 89 | function do_editGroup() { |
| 90 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 91 | + | |
| 89 | 92 | $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('Group Management')); |
| 90 | 93 | $this->oPage->setBreadcrumbDetails(_kt('edit group')); |
| 91 | 94 | |
| 92 | 95 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 93 | 96 | $oGroup = Group::get($group_id); |
| 94 | 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 | 101 | $this->oPage->setTitle(sprintf(_kt("Edit Group (%s)"), $oGroup->getName())); |
| ... | ... | @@ -120,6 +123,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 120 | 123 | "context" => $this, |
| 121 | 124 | "edit_fields" => $edit_fields, |
| 122 | 125 | "edit_group" => $oGroup, |
| 126 | + "old_search" => $old_search, | |
| 123 | 127 | ); |
| 124 | 128 | return $oTemplate->render($aTemplateData); |
| 125 | 129 | } |
| ... | ... | @@ -127,10 +131,12 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 127 | 131 | |
| 128 | 132 | // {{{ do_saveGroup |
| 129 | 133 | function do_saveGroup() { |
| 134 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 135 | + | |
| 130 | 136 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 131 | 137 | $oGroup = Group::get($group_id); |
| 132 | 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 | 141 | $group_name = KTUtil::arrayGet($_REQUEST, 'group_name'); |
| 136 | 142 | if (empty($group_name)) { $this->errorRedirectToMain(_kt('Please specify a name for the group.')); } |
| ... | ... | @@ -153,25 +159,27 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 153 | 159 | } |
| 154 | 160 | |
| 155 | 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 | 164 | if (!Permission::userIsSystemAdministrator($_SESSION['userID'])) { |
| 159 | 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 | 167 | exit(0); |
| 162 | 168 | } |
| 163 | 169 | |
| 164 | 170 | |
| 165 | 171 | $this->commitTransaction(); |
| 166 | 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 | 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 | 180 | function _do_manageUsers_source() { |
| 181 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 182 | + | |
| 175 | 183 | $oGroup =& $this->oValidator->validateGroup($_REQUEST['group_id']); |
| 176 | 184 | |
| 177 | 185 | $aGroupUsers = $oGroup->getMembers(); |
| ... | ... | @@ -181,20 +189,25 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 181 | 189 | "context" => $this, |
| 182 | 190 | 'group_users' => $aGroupUsers, |
| 183 | 191 | 'group' => $oGroup, |
| 192 | + "old_search" => $old_search, | |
| 184 | 193 | ); |
| 185 | 194 | return $oTemplate->render($aTemplateData); |
| 186 | 195 | } |
| 187 | 196 | |
| 188 | 197 | function do_synchroniseGroup() { |
| 198 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 199 | + | |
| 189 | 200 | require_once(KT_LIB_DIR . '/authentication/authenticationutil.inc.php'); |
| 190 | 201 | $oGroup =& $this->oValidator->validateGroup($_REQUEST['group_id']); |
| 191 | 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 | 204 | exit(0); |
| 194 | 205 | } |
| 195 | 206 | |
| 196 | 207 | // {{{ do_manageusers |
| 197 | 208 | function do_manageusers() { |
| 209 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 210 | + | |
| 198 | 211 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 199 | 212 | $oGroup = Group::get($group_id); |
| 200 | 213 | if ((PEAR::isError($oGroup)) || ($oGroup === false)) { |
| ... | ... | @@ -245,6 +258,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 245 | 258 | "edit_group" => $oGroup, |
| 246 | 259 | 'unused_users' => $aFreeUsers, |
| 247 | 260 | 'group_users' => $aGroupUsers, |
| 261 | + "old_search" => $old_search, | |
| 248 | 262 | ); |
| 249 | 263 | return $oTemplate->render($aTemplateData); |
| 250 | 264 | } |
| ... | ... | @@ -252,6 +266,8 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 252 | 266 | |
| 253 | 267 | // {{{ do_updateUserMembers |
| 254 | 268 | function do_updateUserMembers() { |
| 269 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 270 | + | |
| 255 | 271 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 256 | 272 | $oGroup = Group::get($group_id); |
| 257 | 273 | if ((PEAR::isError($oGroup)) || ($oGroup === false)) { |
| ... | ... | @@ -282,7 +298,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 282 | 298 | } |
| 283 | 299 | $res = $oGroup->addMember($oUser); |
| 284 | 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 | 302 | } else { $usersAdded[] = $oUser->getName(); } |
| 287 | 303 | } |
| 288 | 304 | } |
| ... | ... | @@ -293,7 +309,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 293 | 309 | $oUser = User::get($iUserId); |
| 294 | 310 | $res = $oGroup->removeMember($oUser); |
| 295 | 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 | 313 | } else { |
| 298 | 314 | $usersRemoved[] = $oUser->getName(); |
| 299 | 315 | $memberReason = GroupUtil::getMembershipReason($oUser, $oGroup); |
| ... | ... | @@ -321,24 +337,26 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 321 | 337 | if (!empty($usersAdded)) { $msg .= ' ' . _kt('Added') . ': ' . join(', ', $usersAdded) . '. <br />'; } |
| 322 | 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 | 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 | 351 | // FIXME copy-paste ... |
| 336 | 352 | // {{{ do_managesubgroups |
| 337 | 353 | function do_managesubgroups() { |
| 354 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 355 | + | |
| 338 | 356 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 339 | 357 | $oGroup = Group::get($group_id); |
| 340 | 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 | 362 | $this->aBreadcrumbs[] = array('name' => $oGroup->getName()); |
| ... | ... | @@ -381,6 +399,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 381 | 399 | "edit_group" => $oGroup, |
| 382 | 400 | 'unused_groups' => $aAllowedGroups, |
| 383 | 401 | 'group_members' => $aMemberGroups, |
| 402 | + "old_search" => $old_search, | |
| 384 | 403 | ); |
| 385 | 404 | return $oTemplate->render($aTemplateData); |
| 386 | 405 | } |
| ... | ... | @@ -404,10 +423,12 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 404 | 423 | // FIXME copy-paste ... |
| 405 | 424 | // {{{ do_updateGroupMembers |
| 406 | 425 | function do_updateGroupMembers() { |
| 426 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 427 | + | |
| 407 | 428 | $group_id = KTUtil::arrayGet($_REQUEST, 'group_id'); |
| 408 | 429 | $oGroup = Group::get($group_id); |
| 409 | 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 | 434 | $groupAdded = KTUtil::arrayGet($_REQUEST, 'groupAdded',''); |
| ... | ... | @@ -427,7 +448,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 427 | 448 | $oMemberGroup = Group::get($iMemberGroupID); |
| 428 | 449 | $res = $oGroup->addMemberGroup($oMemberGroup); |
| 429 | 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 | 452 | exit(0); |
| 432 | 453 | } else { $groupsAdded[] = $oMemberGroup->getName(); } |
| 433 | 454 | } |
| ... | ... | @@ -438,7 +459,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 438 | 459 | $oMemberGroup = Group::get($iMemberGroupID); |
| 439 | 460 | $res = $oGroup->removeMemberGroup($oMemberGroup); |
| 440 | 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 | 463 | exit(0); |
| 443 | 464 | } else { $groupsRemoved[] = $oMemberGroup->getName(); } |
| 444 | 465 | } |
| ... | ... | @@ -450,7 +471,7 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 450 | 471 | |
| 451 | 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 | 513 | $aTemplateData = array( |
| 493 | 514 | "context" => $this, |
| 494 | 515 | "add_fields" => $add_fields, |
| 495 | - "authentication_sources" => $aAuthenticationSources, | |
| 516 | + "authentication_sources" => $aAuthenticationSources, | |
| 496 | 517 | ); |
| 497 | 518 | return $oTemplate->render($aTemplateData); |
| 498 | 519 | } |
| ... | ... | @@ -532,28 +553,30 @@ class KTGroupAdminDispatcher extends KTAdminDispatcher { |
| 532 | 553 | |
| 533 | 554 | // {{{ do_deleteGroup |
| 534 | 555 | function do_deleteGroup() { |
| 556 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 557 | + | |
| 535 | 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 | 561 | $oGroup = $this->oValidator->validateGroup($_REQUEST['group_id'], $aErrorOptions); |
| 539 | 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 | 570 | $res = $oGroup->delete(); |
| 548 | 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 | 51 | $KTConfig =& KTConfig::getSingleton(); |
| 52 | 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 | 55 | $show_all = KTUtil::arrayGet($_REQUEST, 'show_all', $alwaysAll); |
| 56 | 56 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 57 | 57 | |
| ... | ... | @@ -85,7 +85,8 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 85 | 85 | "search_fields" => $search_fields, |
| 86 | 86 | "search_results" => $search_results, |
| 87 | 87 | "no_search" => $no_search, |
| 88 | - "authentication_sources" => $aAuthenticationSources, | |
| 88 | + "authentication_sources" => $aAuthenticationSources, | |
| 89 | + "old_search" => $name, | |
| 89 | 90 | ); |
| 90 | 91 | return $oTemplate->render($aTemplateData); |
| 91 | 92 | } |
| ... | ... | @@ -158,6 +159,8 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 158 | 159 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 159 | 160 | $oUser =& User::get($user_id); |
| 160 | 161 | |
| 162 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 163 | + | |
| 161 | 164 | if (PEAR::isError($oUser) || $oUser == false) { |
| 162 | 165 | $this->errorRedirectToMain(_kt('Please select a user first.')); |
| 163 | 166 | exit(0); |
| ... | ... | @@ -190,6 +193,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 190 | 193 | "edit_user" => $oUser, |
| 191 | 194 | "provider" => $oProvider, |
| 192 | 195 | "source" => $oAuthenticationSource, |
| 196 | + 'old_search' => $old_search, | |
| 193 | 197 | ); |
| 194 | 198 | return $oTemplate->render($aTemplateData); |
| 195 | 199 | } |
| ... | ... | @@ -199,6 +203,8 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 199 | 203 | $this->aBreadcrumbs[] = array('url' => $_SERVER['PHP_SELF'], 'name' => _kt('User Management')); |
| 200 | 204 | $this->oPage->setBreadcrumbDetails(_kt('change user password')); |
| 201 | 205 | $this->oPage->setTitle(_kt("Change User Password")); |
| 206 | + | |
| 207 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 202 | 208 | |
| 203 | 209 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 204 | 210 | $oUser =& User::get($user_id); |
| ... | ... | @@ -220,12 +226,15 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 220 | 226 | "context" => $this, |
| 221 | 227 | "edit_fields" => $edit_fields, |
| 222 | 228 | "edit_user" => $oUser, |
| 229 | + 'old_search' => $old_search, | |
| 223 | 230 | ); |
| 224 | 231 | return $oTemplate->render($aTemplateData); |
| 225 | 232 | } |
| 226 | 233 | |
| 227 | 234 | function do_updatePassword() { |
| 228 | 235 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 236 | + | |
| 237 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 229 | 238 | |
| 230 | 239 | $password = KTUtil::arrayGet($_REQUEST, 'password'); |
| 231 | 240 | $confirm_password = KTUtil::arrayGet($_REQUEST, 'confirm_password'); |
| ... | ... | @@ -288,10 +297,13 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 288 | 297 | function do_editgroups() { |
| 289 | 298 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 290 | 299 | $oUser = User::get($user_id); |
| 300 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 291 | 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 | 307 | $this->aBreadcrumbs[] = array('name' => $oUser->getName()); |
| 296 | 308 | $this->oPage->setBreadcrumbDetails(_kt('edit groups')); |
| 297 | 309 | $this->oPage->setTitle(sprintf(_kt("Edit %s's groups"), $oUser->getName())); |
| ... | ... | @@ -336,15 +348,16 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 336 | 348 | "unused_groups" => $aFreeGroups, |
| 337 | 349 | "user_groups" => $aUserGroups, |
| 338 | 350 | "edit_user" => $oUser, |
| 351 | + 'old_search' => $old_search, | |
| 339 | 352 | ); |
| 340 | 353 | return $oTemplate->render($aTemplateData); |
| 341 | 354 | } |
| 342 | 355 | |
| 343 | 356 | function do_saveUser() { |
| 344 | 357 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 345 | - | |
| 358 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 346 | 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 | 363 | $name = $this->oValidator->validateString( |
| ... | ... | @@ -375,7 +388,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 375 | 388 | |
| 376 | 389 | $oUser =& User::get($user_id); |
| 377 | 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 | 394 | $oUser->setName($name); |
| ... | ... | @@ -394,18 +407,18 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 394 | 407 | |
| 395 | 408 | |
| 396 | 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 | 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 | 417 | function do_createUser() { |
| 405 | 418 | // FIXME generate and pass the error stack to adduser. |
| 406 | - | |
| 419 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 407 | 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 | 424 | $username = $this->oValidator->validateString( |
| ... | ... | @@ -433,15 +446,15 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 433 | 446 | $confirm_password = KTUtil::arrayGet($_REQUEST, 'confirm_password'); |
| 434 | 447 | |
| 435 | 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 | 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 | 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 | 460 | $dupUser =& User::getByUserName($username); |
| ... | ... | @@ -462,14 +475,15 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 462 | 475 | )); |
| 463 | 476 | |
| 464 | 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 | 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 | 485 | function do_deleteUser() { |
| 486 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 473 | 487 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 474 | 488 | $oUser = User::get($user_id); |
| 475 | 489 | if ((PEAR::isError($oUser)) || ($oUser === false)) { |
| ... | ... | @@ -477,17 +491,18 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 477 | 491 | } |
| 478 | 492 | $res = $oUser->delete(); |
| 479 | 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 | 500 | function do_updateGroups() { |
| 501 | + $old_search = KTUtil::arrayGet($_REQUEST, 'old_search'); | |
| 487 | 502 | $user_id = KTUtil::arrayGet($_REQUEST, 'user_id'); |
| 488 | 503 | $oUser = User::get($user_id); |
| 489 | 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 | 507 | $groupAdded = KTUtil::arrayGet($_REQUEST, 'groupAdded',''); |
| 493 | 508 | $groupRemoved = KTUtil::arrayGet($_REQUEST, 'groupRemoved',''); |
| ... | ... | @@ -517,7 +532,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 517 | 532 | } |
| 518 | 533 | $res = $oGroup->addMember($oUser); |
| 519 | 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 | 536 | } else { |
| 522 | 537 | $groupsAdded[] = $oGroup->getName(); |
| 523 | 538 | |
| ... | ... | @@ -531,7 +546,7 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 531 | 546 | $oGroup = Group::get($iGroupID); |
| 532 | 547 | $res = $oGroup->removeMember($oUser); |
| 533 | 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 | 550 | } else { |
| 536 | 551 | $groupsRemoved[] = $oGroup->getName(); |
| 537 | 552 | $memberReason = GroupUtil::getMembershipReason($oUser, $oGroup); |
| ... | ... | @@ -559,15 +574,14 @@ var $sHelpPage = 'ktcore/admin/manage users.html'; |
| 559 | 574 | if (!empty($groupsAdded)) { $msg .= ' ' . _kt('Added to groups') . ': ' . implode(', ', $groupsAdded) . '. <br />'; } |
| 560 | 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 | 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 | 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 | <form action="{$smarty.server.PHP_SELF}" method="POST"> |
| 7 | 7 | <input type="hidden" name="action" value="saveGroup" /> |
| 8 | 8 | <input type="hidden" name="group_id" value="{$edit_group->getId()}" /> |
| 9 | + <input type="hidden" name="old_search" value="{$old_search}" /> | |
| 9 | 10 | <fieldset> |
| 10 | 11 | <legend>{i18n}Change Group Details{/i18n}</legend> |
| 11 | 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 | 3 | <form action="{$smarty.server.PHP_SELF}" method="POST"> |
| 4 | 4 | <input type="hidden" name="action" value="saveUser" /> |
| 5 | 5 | <input type="hidden" name="user_id" value="{$edit_user->getId()}" /> |
| 6 | + <input type="hidden" name="old_search" value="{$old_search}" /> | |
| 6 | 7 | <fieldset> |
| 7 | 8 | <legend>{i18n}Change User Details{/i18n}</legend> |
| 8 | 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 | 56 | {$context->_getUnitName($oGroup)} |
| 57 | 57 | {/if} |
| 58 | 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 | 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 | 62 | class="ktAction ktDelete">{i18n}Delete{/i18n}</a></td> |
| 63 | 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 | 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 | 67 | <td class="title"><span class="descriptiveText">{$context->getGroupStringForGroup($oGroup)}</span></td> |
| 68 | 68 | </tr> |
| 69 | 69 | {/foreach} | ... | ... |
templates/ktcore/principals/groups_managesubgroups.smarty
| ... | ... | @@ -10,6 +10,7 @@ |
| 10 | 10 | <form action="{$smarty.server.PHP_SELF}" method="POST" id="usergroupform"> |
| 11 | 11 | <input type="hidden" name="action" value="updateGroupMembers" /> |
| 12 | 12 | <input type="hidden" name="group_id" value="{$edit_group->getId()}" /> |
| 13 | + <input type="hidden" name="old_search" value="{$old_search}" /> | |
| 13 | 14 | <!-- erk. FIXME clean up and remove OptionTransfer.js. --> |
| 14 | 15 | |
| 15 | 16 | <input type="hidden" name="groupAdded" /> | ... | ... |
templates/ktcore/principals/groups_manageusers.smarty
| ... | ... | @@ -10,6 +10,7 @@ |
| 10 | 10 | <form action="{$smarty.server.PHP_SELF}" method="POST" id="usergroupform"> |
| 11 | 11 | <input type="hidden" name="action" value="updateUserMembers" /> |
| 12 | 12 | <input type="hidden" name="group_id" value="{$edit_group->getId()}" /> |
| 13 | + <input type="hidden" name="old_search" value="{$old_search}" /> | |
| 13 | 14 | <!-- erk. FIXME clean up and remove OptionTransfer.js. --> |
| 14 | 15 | |
| 15 | 16 | <input type="hidden" name="userAdded" /> | ... | ... |
templates/ktcore/principals/groups_sourceusers.smarty
| ... | ... | @@ -10,6 +10,7 @@ |
| 10 | 10 | <form action="{$smarty.server.PHP_SELF}" method="POST"> |
| 11 | 11 | <input type="hidden" name="action" value="synchroniseGroup" /> |
| 12 | 12 | <input type="hidden" name="group_id" value="{$group->getId()}" /> |
| 13 | + <input type="hidden" name="old_search" value="{$old_search}" /> | |
| 13 | 14 | |
| 14 | 15 | <fieldset> |
| 15 | 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 | 79 | <tr class="{cycle values=odd,even}"> |
| 80 | 80 | <td>{$oUser->getName()}</td> |
| 81 | 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 | 85 | <td class="title"><span class="descriptiveText">{$context->getGroupStringForUser($oUser)}</span></td> |
| 86 | 86 | </tr> |
| 87 | 87 | {/foreach} | ... | ... |
templates/ktcore/principals/usergroups.smarty
| ... | ... | @@ -10,6 +10,7 @@ |
| 10 | 10 | <form action="{$smarty.server.PHP_SELF}" method="POST" id="usergroupform"> |
| 11 | 11 | <input type="hidden" name="action" value="updateGroups" /> |
| 12 | 12 | <input type="hidden" name="user_id" value="{$edit_user->getId()}" /> |
| 13 | + <input type="hidden" name="old_search" value="{$old_search}" /> | |
| 13 | 14 | <!-- erk. FIXME clean up and remove OptionTransfer.js. --> |
| 14 | 15 | |
| 15 | 16 | <input type="hidden" name="groupAdded" /> | ... | ... |