Hi PKP Team,
I’ve found something confusing regarding the Journal Manager role in OJS 3.3.8
When creating a new journal (fresh installation), the Journal Manager has no workflow stages checked by default, which makes sense — since in recent versions the system separates site/journal management from editorial workflow.
However, when I open the “User Group” form and click Save, the system automatically re‑assigns all workflow stages back to the Journal Manager even though they were previously unchecked.
What I found in the code
This behaviour seems to come from these two files:
1. lib/pkp/controllers/grid/settings/roles/form/UserGroupForm.inc.php (around line 212)
if (in_array($userGroup->getRoleId(), $roleDao->getAlwaysActiveStages())) {
$assignedStages = array_keys(WorkflowStageDAO::getWorkflowStageTranslationKeys());
}
2. lib/pkp/classes/security/RoleDAO.inc.php (around line 215)
function getAlwaysActiveStages() {
$alwaysActiveStages = array(ROLE_ID_MANAGER);
return $alwaysActiveStages;
}
The function getAlwaysActiveStages() always includes ROLE_ID_MANAGER, so whenever a Journal Manager is saved, the system assigns all workflow stages to that role automatically.
My questions
-
Is this intentional in OJS 3.3 (i.e., the Journal Manager is supposed to always have access to all editorial stages)?
-
Or is it a leftover from older OJS versions (3.1–3.2) that should be removed in newer releases?
-
If not intended, is it safe to remove
ROLE_ID_MANAGERfromgetAlwaysActiveStages()so Journal Manager will remain unchecked as designed?
Thanks in advance for confirming whether this logic is by design or a small bug that remains from earlier versions!
OhnO395