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 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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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 = &#39;ktcore/admin/manage users.html&#39;;
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&#39;s information about group &lt;strong&gt;#name#&lt;/strong&gt;{/i18n}&lt;/p&gt;
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}&lt;/p&gt;
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}&lt;/p&gt;
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" />
... ...