One Hat Cyber Team
Your IP :
216.73.216.182
Server IP :
203.175.9.166
Server :
Linux tanggamus.iixcp.rumahweb.net 5.14.0-427.28.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 2 03:44:10 EDT 2024 x86_64
Server Software :
LiteSpeed
PHP Version :
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
cite5577
/
www
/
lib
/
pkp
/
classes
/
user
/
View File Name :
PKPUserAction.inc.php
<?php /** * @file classes/user/PKPUserAction.inc.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2003-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class PKPUserAction * @ingroup user * @see User * * @brief PKPUserAction class. */ class PKPUserAction { /** * Merge user accounts and delete the old user account. * @param $oldUserId int The user ID to remove * @param $newUserId int The user ID to receive all "assets" (i.e. submissions) from old user */ public function mergeUsers($oldUserId, $newUserId) { // Need both user ids for merge if (empty($oldUserId) || empty($newUserId)) { return false; } HookRegistry::call('UserAction::mergeUsers', array(&$oldUserId, &$newUserId)); $submissionFilesIterator = Services::get('submissionFile')->getMany([ 'uploaderUserIds' => [$oldUserId], 'includeDependentFiles' => true, ]); foreach ($submissionFilesIterator as $submissionFile) { Services::get('submissionFile')->edit($submissionFile, ['uploaderUserId' => $newUserId], Application::get()->getRequest()); } $noteDao = DAORegistry::getDAO('NoteDAO'); /* @var $noteDao NoteDAO */ $notes = $noteDao->getByUserId($oldUserId); while ($note = $notes->next()) { $note->setUserId($newUserId); $noteDao->updateObject($note); } $editDecisionDao = DAORegistry::getDAO('EditDecisionDAO'); /* @var $editDecisionDao EditDecisionDAO */ $editDecisionDao->transferEditorDecisions($oldUserId, $newUserId); $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); /* @var $reviewAssignmentDao ReviewAssignmentDAO */ foreach ($reviewAssignmentDao->getByUserId($oldUserId) as $reviewAssignment) { $reviewAssignment->setReviewerId($newUserId); $reviewAssignmentDao->updateObject($reviewAssignment); } $submissionEmailLogDao = DAORegistry::getDAO('SubmissionEmailLogDAO'); /* @var $submissionEmailLogDao SubmissionEmailLogDAO */ $submissionEmailLogDao->changeUser($oldUserId, $newUserId); $submissionEventLogDao = DAORegistry::getDAO('SubmissionEventLogDAO'); /* @var $submissionEventLogDao SubmissionEventLogDAO */ $submissionEventLogDao->changeUser($oldUserId, $newUserId); $submissionCommentDao = DAORegistry::getDAO('SubmissionCommentDAO'); /* @var $submissionCommentDao SubmissionCommentDAO */ $submissionComments = $submissionCommentDao->getByUserId($oldUserId); while ($submissionComment = $submissionComments->next()) { $submissionComment->setAuthorId($newUserId); $submissionCommentDao->updateObject($submissionComment); } $accessKeyDao = DAORegistry::getDAO('AccessKeyDAO'); /* @var $accessKeyDao AccessKeyDAO */ $accessKeyDao->transferAccessKeys($oldUserId, $newUserId); $notificationDao = DAORegistry::getDAO('NotificationDAO'); /* @var $notificationDao NotificationDAO */ $notificationDao->transferNotifications($oldUserId, $newUserId); // Delete the old user and associated info. $sessionDao = DAORegistry::getDAO('SessionDAO'); /* @var $sessionDao SessionDAO */ $sessionDao->deleteByUserId($oldUserId); $temporaryFileDao = DAORegistry::getDAO('TemporaryFileDAO'); /* @var $temporaryFileDao TemporaryFileDAO */ $temporaryFileDao->deleteByUserId($oldUserId); $userSettingsDao = DAORegistry::getDAO('UserSettingsDAO'); /* @var $userSettingsDao UserSettingsDAO */ $userSettingsDao->deleteSettings($oldUserId); $subEditorsDao = DAORegistry::getDAO('SubEditorsDAO'); /* @var $subEditorsDao SubEditorsDAO */ $subEditorsDao->deleteByUserId($oldUserId); // Transfer old user's roles $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); /* @var $userGroupDao UserGroupDAO */ $userGroups = $userGroupDao->getByUserId($oldUserId); while($userGroup = $userGroups->next()) { if (!$userGroupDao->userInGroup($newUserId, $userGroup->getId())) { $userGroupDao->assignUserToGroup($newUserId, $userGroup->getId()); } } $userGroupDao->deleteAssignmentsByUserId($oldUserId); // Transfer stage assignments. $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); /* @var $stageAssignmentDao StageAssignmentDAO */ $stageAssignments = $stageAssignmentDao->getByUserId($oldUserId); while ($stageAssignment = $stageAssignments->next()) { $duplicateAssignments = $stageAssignmentDao->getBySubmissionAndStageId($stageAssignment->getSubmissionId(), null, $stageAssignment->getUserGroupId(), $newUserId); if (!$duplicateAssignments->next()) { // If no similar assignments already exist, transfer this one. $stageAssignment->setUserId($newUserId); $stageAssignmentDao->updateObject($stageAssignment); } else { // There's already a stage assignment for the new user; delete. $stageAssignmentDao->deleteObject($stageAssignment); } } $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */ $userDao->deleteUserById($oldUserId); return true; } }