first commit
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file classes/mail/traits/OneClickReviewerAccess.php
|
||||
*
|
||||
* Copyright (c) 2014-2023 Simon Fraser University
|
||||
* Copyright (c) 2000-2023 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* @class OneClickReviewerAccess
|
||||
*
|
||||
* @ingroup mail_traits
|
||||
*
|
||||
* @brief Mailable trait to override the review assignment URL with the
|
||||
* secure, one-click access URL for reviewers
|
||||
*/
|
||||
|
||||
namespace PKP\mail\traits;
|
||||
|
||||
use APP\core\Application;
|
||||
use PKP\context\Context;
|
||||
use PKP\mail\variables\ReviewAssignmentEmailVariable;
|
||||
use PKP\security\AccessKeyManager;
|
||||
use PKP\submission\reviewAssignment\ReviewAssignment;
|
||||
|
||||
trait OneClickReviewerAccess
|
||||
{
|
||||
protected function setOneClickAccessUrl(Context $context, ReviewAssignment $reviewAssignment): void
|
||||
{
|
||||
if (!$context->getData('reviewerAccessKeysEnabled')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$application = Application::get();
|
||||
$request = $application->getRequest();
|
||||
$dispatcher = $application->getDispatcher();
|
||||
|
||||
$accessKeyManager = new AccessKeyManager();
|
||||
$expiryDays = ($this->context->getData('numWeeksPerReview') + 4) * 7;
|
||||
$accessKey = $accessKeyManager->createKey(
|
||||
$context->getId(),
|
||||
$reviewAssignment->getReviewerId(),
|
||||
$reviewAssignment->getId(),
|
||||
$expiryDays
|
||||
);
|
||||
|
||||
$this->viewData[ReviewAssignmentEmailVariable::REVIEW_ASSIGNMENT_URL] = $dispatcher->url(
|
||||
$request,
|
||||
Application::ROUTE_PAGE,
|
||||
$context->getData('urlPath'),
|
||||
'reviewer',
|
||||
'submission',
|
||||
null,
|
||||
[
|
||||
'submissionId' => $reviewAssignment->getSubmissionId(),
|
||||
'reviewId' => $reviewAssignment->getId(),
|
||||
'key' => $accessKey,
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user