Skip to content

pkp/pkp-lib#10263 Relax editing metadata on published/posted materials #944

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: stable-3_5_0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions controllers/grid/preprintGalleys/PreprintGalleyGridHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -488,14 +488,23 @@ public function canEdit()
$submission = $this->getSubmission();
$userRoles = $this->getAuthorizedContextObject(Application::ASSOC_TYPE_USER_ROLES);

if ($publication->getData('status') === PKPSubmission::STATUS_PUBLISHED) {
return false;
}

if (in_array(Role::ROLE_ID_SITE_ADMIN, $userRoles)) {
return true;
}

// if it is published, allow managers or sub-editors
if ($publication->getData('status') === PKPSubmission::STATUS_PUBLISHED) {
// allow these roles to edit galleys even if published
if (
in_array(Role::ROLE_ID_MANAGER, $userRoles) ||
in_array(Role::ROLE_ID_SUB_EDITOR, $userRoles)
) {
return true;
}
// otherwise block
return false;
}

if ($submission->getData('dateSubmitted') == null) {
return true;
}
Expand All @@ -504,7 +513,6 @@ public function canEdit()
return true;
}

// Default: Read-only.
return false;
}

Expand Down
5 changes: 2 additions & 3 deletions cypress/tests/data/60-content/CmontgomerieSubmission.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,9 @@ describe('Data suite: Cmontgomerie', function() {
cy.wait(5000);

cy.openWorkflowMenu('Permissions & Disclosure');
cy.get('input[id^="publicationLicense-copyrightHolder-control-en"').clear()
cy.get('input[id^="publicationLicense-copyrightHolder-control-en"').type('Craig Montgomerie', {delay: 0});
cy.get('input[id^="publicationLicense-copyrightHolder-control-en"').clear();
cy.get('input[id^="publicationLicense-copyrightHolder-control-en"').type('Craig Montgomerie');
cy.get('button').contains('Save').click();
cy.get('[role="status"]').contains('Saved');
cy.wait(1500);

// Publish 2nd version
Expand Down
6 changes: 3 additions & 3 deletions cypress/tests/integration/Doi.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ describe('DOI tests', function() {
cy.get('button:contains("Post")').click();
cy.get('[data-cy="active-modal"] button:contains("Post")').click();

cy.get('div:contains("This version has been posted and can not be edited.")').should('exist');
cy.get('div:contains("Warning: This version has been published. Editing it may impact the published content.")').should('exist');

// Confirm DOI created for Version 1
// First publication assigns DOI as normal
Expand Down Expand Up @@ -365,7 +365,7 @@ describe('DOI tests', function() {

cy.get('button:contains("Post")').click();
cy.get('div.pkpWorkflow__publishModal button:contains("Post")').click();
cy.get('div:contains("This version has been posted and can not be edited.")').should('exist');
cy.get('div:contains("Warning: This version has been published. Editing it may impact the published content.")').should('exist');

// Confirm DOI carried over from Version 1 to Version 2
cy.visit('index.php/publicknowledge/dois');
Expand Down Expand Up @@ -506,7 +506,7 @@ describe('DOI tests', function() {

cy.get('button:contains("Post")').click();
cy.get('div.pkpWorkflow__publishModal button:contains("Post")').click();
cy.get('div:contains("This version has been posted and can not be edited.")').should('exist');
cy.get('div:contains("Warning: This version has been published. Editing it may impact the published content.")').should('exist');

// Confirm "current publication" DOI is new
cy.visit('index.php/publicknowledge/dois');
Expand Down
2 changes: 1 addition & 1 deletion lib/pkp
Submodule pkp updated 28 files
+4 −1 api/v1/_submissions/PKPBackendSubmissionsController.php
+21 −36 api/v1/submissions/PKPSubmissionController.php
+0 −2 classes/author/Repository.php
+0 −2 classes/galley/Repository.php
+7 −0 classes/invitation/core/Invitation.php
+31 −0 classes/invitation/core/InvitationUIActionRedirectController.php
+8 −2 classes/invitation/invitations/changeProfileEmail/ChangeProfileEmailInvite.php
+6 −0 classes/invitation/invitations/registrationAccess/RegistrationAccessInvite.php
+8 −2 classes/invitation/invitations/reviewerAccess/ReviewerAccessInvite.php
+13 −6 classes/invitation/invitations/userRoleAssignment/UserRoleAssignmentInvite.php
+226 −0 classes/invitation/invitations/userRoleAssignment/handlers/UserRoleAssignmentInviteUIController.php
+23 −0 classes/invitation/invitations/userRoleAssignment/resources/BaseUserRoleAssignmentInviteResource.php
+53 −0 classes/invitation/invitations/userRoleAssignment/resources/UserRoleAssignmentInviteResource.php
+7 −4 classes/migration/upgrade/v3_5_0/I9425_SeparateUIAndSubmissionLocales.php
+0 −4 classes/security/authorization/internal/RepresentationUploadAccessPolicy.php
+26 −12 classes/submission/Repository.php
+30 −3 classes/submission/reviewAssignment/Collector.php
+1 −0 classes/submission/reviewRound/ReviewRound.php
+4 −0 classes/task/PublishSubmissions.php
+0 −3 controllers/grid/users/author/AuthorGridHandler.php
+46 −0 cypress/support/command_reviewer_suggestion.js
+41 −18 jobs/email/EditorialReminder.php
+123 −0 pages/invitation/InitializeInvitationUIHandler.php
+0 −307 pages/invitation/InvitationHandler.php
+3 −2 pages/invitation/index.php
+25 −0 pages/management/ManagementHandler.php
+1 −0 templates/invitation/userInvitation.tpl
+10 −1 tests/jobs/email/EditorialReminderTest.php
2 changes: 1 addition & 1 deletion lib/ui-library
Submodule ui-library updated 22 files
+3 −16 src/components/ListPanel/contributors/ContributorsListPanel.vue
+1 −1 src/components/Modal/SideModalBody.vue
+8 −1 src/composables/useSubmission.js
+0 −15 src/managers/GalleyManager/useGalleyManagerConfig.js
+1 −1 src/managers/ReviewerSuggestionManager/ReviewerSuggestionManager.vue
+12 −10 src/managers/UserAccessManager/UserAccessManager.vue
+14 −0 src/managers/UserAccessManager/UserAccessManagerActionSearch.vue
+27 −52 src/managers/UserAccessManager/UserAccessManagerStore.js
+0 −53 src/managers/UserAccessManager/useUserAccessManagerActions.js
+119 −0 src/managers/UserAccessManager/useUserAccessManagerConfig.js
+8 −6 src/managers/UserInvitationManager/UserInvitationManagerStore.js
+14 −22 src/pages/userInvitation/UserInvitationExtendedMetaData.vue
+4 −0 src/pages/userInvitation/UserInvitationPage.vue
+3 −1 src/pages/userInvitation/UserInvitationPageStore.js
+2 −0 src/pages/workflow/WorkflowPageOJS.vue
+2 −0 src/pages/workflow/WorkflowPageOMP.vue
+2 −0 src/pages/workflow/WorkflowPageOPS.vue
+13 −0 src/pages/workflow/components/publication/WorkflowPublicationEditWarning.vue
+1 −1 src/pages/workflow/composables/useWorkflowConfig/workflowConfigAuthorOPS.js
+2 −1 src/pages/workflow/composables/useWorkflowConfig/workflowConfigEditorialOJS.js
+5 −0 src/pages/workflow/composables/useWorkflowNavigationConfig/useWorkflowNavigationConfigOPS.js
+10 −5 src/pages/workflow/composables/useWorkflowPermissions.js
3 changes: 3 additions & 0 deletions locale/en/submission.po
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ msgstr "All Items"
msgid "galley.editPublishedDisabled"
msgstr "The galleys of this version can not be edited because it has already been posted."

msgid "publication.editorEditWarning"
msgstr "Warning: This version has been published. Editing it may impact the published content."

msgid "galley.publicationNotFound"
msgstr "The version for this galley could not be found."

Expand Down