Skip to content

Commit db6c9de

Browse files
committed
pkp#10929 Temporary fix for Production Editor's file upload issues
1 parent 69449c5 commit db6c9de

File tree

4 files changed

+30
-5
lines changed

4 files changed

+30
-5
lines changed

api/v1/submissions/PKPSubmissionController.php

+26-1
Original file line numberDiff line numberDiff line change
@@ -664,8 +664,33 @@ public function add(Request $illuminateRequest): JsonResponse
664664
: $submitAsUserGroup->permitMetadataEdit
665665
);
666666

667+
$isSubmittingAsProductionEditor = $submitAsUserGroup->getLocalizedData('name') === __('default.groups.name.productionEditor');
668+
// If submitting as Production Editor, then also assign as Author to allow full access to submission stage
669+
if ($isSubmittingAsProductionEditor) {
670+
$authorGroup = Repo::userGroup()->getByRoleIds([Role::ROLE_ID_AUTHOR], $context->getId())->first();
671+
672+
// Assign author role to user if not already assigned
673+
if (!$submitterUserGroups->contains('roleId', Role::ROLE_ID_AUTHOR)) {
674+
Repo::userGroup()->assignUserToGroup(
675+
$user->getId(),
676+
$authorGroup->id
677+
);
678+
}
679+
680+
// Assign Production Editor to submission as an Author to allow access to submission stage operations
681+
Repo::stageAssignment()
682+
->build(
683+
$submission->getId(),
684+
$authorGroup->id,
685+
$request->getUser()->getId(),
686+
$authorGroup->recommendOnly,
687+
// Authors can always edit metadata before submitting
688+
true
689+
);
690+
}
691+
667692
// Create an author record from the submitter's user account
668-
if ($submitAsUserGroup->roleId === Role::ROLE_ID_AUTHOR) {
693+
if ($submitAsUserGroup->roleId === Role::ROLE_ID_AUTHOR || $isSubmittingAsProductionEditor) {
669694
$author = Repo::author()->newAuthorFromUser($request->getUser(), $submission, $context);
670695
$author->setData('publicationId', $publication->getId());
671696
$author->setUserGroupId($submitAsUserGroup->id);

classes/invitation/core/Invitation.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
use APP\facades\Repo;
1919
use Carbon\Carbon;
2020
use Exception;
21-
use Identity;
21+
use PKP\identity\Identity;
2222
use Illuminate\Database\Eloquent\Builder;
2323
use Illuminate\Support\Facades\Mail;
2424
use PKP\config\Config;

classes/invitation/invitations/userRoleAssignment/handlers/api/UserRoleAssignmentReceiveController.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
use PKP\security\authorization\AnonymousUserPolicy;
3131
use PKP\security\authorization\UserRequiredPolicy;
3232
use PKP\userGroup\relationships\enums\UserUserGroupMastheadStatus;
33-
use PKPRequest;
34-
use Validation;
33+
use PKP\core\PKPRequest;
34+
use PKP\security\Validation;
3535

3636
class UserRoleAssignmentReceiveController extends ReceiveInvitationController
3737
{

classes/invitation/invitations/userRoleAssignment/payload/UserRoleAssignmentInvitePayload.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
namespace PKP\invitation\invitations\userRoleAssignment\payload;
1616

17-
use DAORegistry;
17+
use PKP\db\DAORegistry;
1818
use Illuminate\Validation\Rule;
1919
use PKP\invitation\core\enums\ValidationContext;
2020
use PKP\invitation\core\InvitePayload;

0 commit comments

Comments
 (0)