%PDF-1.7 GIF89;
| Server IP : 104.20.45.2 / Your IP : 172.16.20.3 Web Server : Apache/2.4.25 (Debian) System : Linux f64a392e70de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : application ( 1000) PHP Version : 5.6.40 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /app/pages/admin/ |
Upload File : |
<?php
/**
* @file pages/admin/AdminPeopleHandler.inc.php
*
* Copyright (c) 2013-2019 Simon Fraser University
* Copyright (c) 2003-2019 John Willinsky
* Distributed under the GNU GPL v2. For full terms see the file docs/COPYING.
*
* @class AdminPeopleHandler
* @ingroup pages_admin
*
* @brief Handle requests for people management functions.
*/
import('pages.admin.AdminHandler');
class AdminPeopleHandler extends AdminHandler {
/**
* Constructor
**/
function AdminPeopleHandler() {
parent::AdminHandler();
}
/**
* Allow the Site Administrator to merge user accounts, including attributed articles etc.
*/
function mergeUsers($args) {
$this->validate();
$this->setupTemplate(true);
$roleDao =& DAORegistry::getDAO('RoleDAO');
$userDao =& DAORegistry::getDAO('UserDAO');
$templateMgr =& TemplateManager::getManager();
$oldUserIds = (array) Request::getUserVar('oldUserIds');
$newUserId = Request::getUserVar('newUserId');
if (!empty($oldUserIds) && !empty($newUserId)) {
// Both user IDs have been selected. Merge the accounts.
import('classes.user.UserAction');
foreach ($oldUserIds as $oldUserId) {
UserAction::mergeUsers($oldUserId, $newUserId);
}
Request::redirect(null, 'admin', 'mergeUsers');
}
// The administrator must select one or both IDs.
if (Request::getUserVar('roleSymbolic')!=null) $roleSymbolic = Request::getUserVar('roleSymbolic');
else $roleSymbolic = isset($args[0])?$args[0]:'all';
if ($roleSymbolic != 'all' && PKPString::regexp_match_get('/^(\w+)s$/', $roleSymbolic, $matches)) {
$roleId = $roleDao->getRoleIdFromPath($matches[1]);
if ($roleId == null) {
Request::redirect(null, null, null, 'all');
}
$roleName = $roleDao->getRoleName($roleId, true);
} else {
$roleId = 0;
$roleName = 'admin.mergeUsers.allUsers';
}
$searchType = null;
$searchMatch = null;
$search = Request::getUserVar('search');
$searchInitial = Request::getUserVar('searchInitial');
if (!empty($search)) {
$searchType = Request::getUserVar('searchField');
$searchMatch = Request::getUserVar('searchMatch');
} else if (!empty($searchInitial)) {
$searchInitial = PKPString::strtoupper($searchInitial);
$searchType = USER_FIELD_INITIAL;
$search = $searchInitial;
}
$rangeInfo = $this->getRangeInfo('users');
if ($roleId) {
$users =& $roleDao->getUsersByRoleId($roleId, null, $searchType, $search, $searchMatch, $rangeInfo);
$templateMgr->assign('roleId', $roleId);
} else {
$users =& $userDao->getUsersByField($searchType, $searchMatch, $search, true, $rangeInfo);
}
$templateMgr->assign('currentUrl', Request::url(null, null, 'mergeUsers'));
$templateMgr->assign('helpTopicId', 'site.administrativeFunctions');
$templateMgr->assign('roleName', $roleName);
$templateMgr->assign_by_ref('users', $users);
$templateMgr->assign_by_ref('thisUser', Request::getUser());
$templateMgr->assign('isReviewer', $roleId == ROLE_ID_REVIEWER);
$templateMgr->assign('searchField', $searchType);
$templateMgr->assign('searchMatch', $searchMatch);
$templateMgr->assign('search', $search);
$templateMgr->assign('searchInitial', Request::getUserVar('searchInitial'));
$templateMgr->assign('fieldOptions', Array(
USER_FIELD_FIRSTNAME => 'user.firstName',
USER_FIELD_LASTNAME => 'user.lastName',
USER_FIELD_USERNAME => 'user.username',
USER_FIELD_EMAIL => 'user.email',
USER_FIELD_INTERESTS => 'user.interests'
));
$templateMgr->assign('alphaList', explode(' ', __('common.alphaList')));
$templateMgr->assign('oldUserIds', $oldUserIds);
$templateMgr->assign('rolePath', $roleDao->getRolePath($roleId));
$templateMgr->assign('roleSymbolic', $roleSymbolic);
$templateMgr->display('admin/selectMergeUser.tpl');
}
}
?>