Skip to content

Commit ff94a7b

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

File tree

4 files changed

+31
-5
lines changed

4 files changed

+31
-5
lines changed

api/v1/submissions/PKPSubmissionController.php

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

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