Commit 24c38a7b9e30a25cb7a9dcec8ab838527718b887

Authored by bshuttle
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
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -51,7 +51,7 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -85,7 +85,8 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -158,6 +159,8 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -190,6 +193,7 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -199,6 +203,8 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -220,12 +226,15 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -288,10 +297,13 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -336,15 +348,16 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -375,7 +388,7 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -394,18 +407,18 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -433,15 +446,15 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -462,14 +475,15 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -477,17 +491,18 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -517,7 +532,7 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -531,7 +546,7 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;; @@ -559,15 +574,14 @@ var $sHelpPage = &#39;ktcore/admin/manage users.html&#39;;
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&#39;s information about group &lt;strong&gt;#name#&lt;/strong&gt;{/i18n}&lt;/p&gt; @@ -6,6 +6,7 @@ the system&#39;s information about group &lt;strong&gt;#name#&lt;/strong&gt;{/i18n}&lt;/p&gt;
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}&lt;/p&gt; @@ -56,14 +56,14 @@ action may take some time if you have many groups).{/i18n}&lt;/p&gt;
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}&lt;/p&gt; @@ -79,9 +79,9 @@ very slow if you have many users).{/i18n}&lt;/p&gt;
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" />