16 import(
'lib.pkp.classes.security.authorization.internal.ContextPolicy');
17 import(
'lib.pkp.classes.security.authorization.RoleBasedHandlerOperationPolicy');
30 function __construct($request, $args, $roleAssignments, $submissionParameterName =
'submissionId', $permitDeclined =
false) {
31 parent::__construct($request);
34 import(
'lib.pkp.classes.security.authorization.internal.SubmissionRequiredPolicy');
40 $submissionAccessPolicy =
new PolicySet(COMBINING_PERMIT_OVERRIDES);
45 if (isset($roleAssignments[ROLE_ID_MANAGER])) {
53 if (isset($roleAssignments[ROLE_ID_AUTHOR])) {
55 $authorSubmissionAccessPolicy =
new PolicySet(COMBINING_DENY_OVERRIDES);
56 $authorSubmissionAccessPolicy->addPolicy(
new RoleBasedHandlerOperationPolicy($request, ROLE_ID_AUTHOR, $roleAssignments[ROLE_ID_AUTHOR],
'user.authorization.authorRoleMissing'));
59 $authorSubmissionAccessOptionsPolicy =
new PolicySet(COMBINING_PERMIT_OVERRIDES);
62 import(
'lib.pkp.classes.security.authorization.internal.SubmissionAuthorPolicy');
66 import(
'lib.pkp.classes.security.authorization.internal.UserAccessibleWorkflowStageRequiredPolicy');
69 $authorSubmissionAccessPolicy->addPolicy($authorSubmissionAccessOptionsPolicy);
70 $submissionAccessPolicy->addPolicy($authorSubmissionAccessPolicy);
77 if (isset($roleAssignments[ROLE_ID_REVIEWER])) {
79 $reviewerSubmissionAccessPolicy =
new PolicySet(COMBINING_DENY_OVERRIDES);
83 import(
'lib.pkp.classes.security.authorization.internal.ReviewAssignmentAccessPolicy');
85 $submissionAccessPolicy->addPolicy($reviewerSubmissionAccessPolicy);
91 if (isset($roleAssignments[ROLE_ID_ASSISTANT])) {
93 $contextSubmissionAccessPolicy =
new PolicySet(COMBINING_DENY_OVERRIDES);
97 import(
'lib.pkp.classes.security.authorization.internal.UserAccessibleWorkflowStageRequiredPolicy');
99 $submissionAccessPolicy->addPolicy($contextSubmissionAccessPolicy);
105 if (isset($roleAssignments[ROLE_ID_SUB_EDITOR])) {
107 $subEditorSubmissionAccessPolicy =
new PolicySet(COMBINING_DENY_OVERRIDES);
111 import(
'lib.pkp.classes.security.authorization.internal.UserAccessibleWorkflowStageRequiredPolicy');
114 $submissionAccessPolicy->addPolicy($subEditorSubmissionAccessPolicy);
117 $this->
addPolicy($submissionAccessPolicy);
119 return $submissionAccessPolicy;