Skip to content

Commit 1e6fcb4

Browse files
Article DAO considers disabled editors
Issue: documentacao-e-tarefas/scielo#885 Signed-off-by: Jhon <jhon@lepidus.com.br>
1 parent 6933dbd commit 1e6fcb4

2 files changed

Lines changed: 67 additions & 3 deletions

File tree

classes/ScieloArticlesDAO.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,11 @@ public function getSectionEditor($submissionId): string
4141
$stageAssignmentsSectionEditorResults = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, Role::ROLE_ID_SUB_EDITOR, self::SUBMISSION_STAGE_ID);
4242

4343
while ($stageAssignment = $stageAssignmentsSectionEditorResults->next()) {
44-
$user = Repo::user()->get($stageAssignment->getUserId(), false);
44+
$user = Repo::user()->get($stageAssignment->getUserId(), true);
45+
if (is_null($user)) {
46+
continue;
47+
}
48+
4549
$userGroup = Repo::userGroup()->get($stageAssignment->getUserGroupId());
4650
$currentUserGroupName = strtolower($userGroup->getName('en'));
4751
if ($currentUserGroupName == 'section editor') {
@@ -58,7 +62,11 @@ public function getJournalEditors($submissionId): array
5862
$journalEditors = [];
5963

6064
while ($stageAssignment = $stageAssignmentsEditorResults->next()) {
61-
$user = Repo::user()->get($stageAssignment->getUserId(), false);
65+
$user = Repo::user()->get($stageAssignment->getUserId(), true);
66+
if (is_null($user)) {
67+
continue;
68+
}
69+
6270
$userGroup = Repo::userGroup()->get($stageAssignment->getUserGroupId());
6371
$currentUserGroupName = strtolower($userGroup->getName('en'));
6472
if ($currentUserGroupName == 'journal editor') {

tests/ScieloArticleFactoryTest.php

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ private function clearDB(): void
9494

9595
if (!empty($this->editorsUsersIds)) {
9696
foreach ($this->editorsUsersIds as $editorUserId) {
97-
$editorUser = Repo::user()->get($editorUserId);
97+
$editorUser = Repo::user()->get($editorUserId, true);
9898
if ($editorUser) {
9999
Repo::user()->delete($editorUser);
100100
}
@@ -353,6 +353,40 @@ public function testSubmissionGetsJournalEditors(): void
353353
$this->assertEquals($expectedEditors, $scieloArticle->getJournalEditors());
354354
}
355355

356+
/**
357+
* @group OJS
358+
*/
359+
public function testSubmissionGetsDisabledJournalEditors(): void
360+
{
361+
$journalEditorsData = [
362+
[
363+
'userName' => 'examplePeter',
364+
'email' => 'peter@example.com',
365+
'password' => 'examplepass',
366+
'givenName' => [$this->locale => "Peter"],
367+
'familyName' => [$this->locale => "Parker"],
368+
'dateRegistered' => Core::getCurrentDate()
369+
],
370+
[
371+
'userName' => 'exampleCharles',
372+
'email' => 'charles@example.com',
373+
'password' => 'examplepass',
374+
'givenName' => [$this->locale => "Charles"],
375+
'familyName' => [$this->locale => "Xavier"],
376+
'dateRegistered' => Core::getCurrentDate(),
377+
'disabled' => true
378+
]
379+
];
380+
$editorsUsers = $this->createEditorUsers($journalEditorsData);
381+
382+
$articleFactory = new ScieloArticleFactory();
383+
$scieloArticle = $articleFactory->createSubmission($this->submissionId, $this->locale);
384+
385+
$expectedEditors = $editorsUsers[0]->getFullName()
386+
. "," . $editorsUsers[1]->getFullName();
387+
$this->assertEquals($expectedEditors, $scieloArticle->getJournalEditors());
388+
}
389+
356390
/**
357391
* @group OJS
358392
*/
@@ -385,6 +419,28 @@ public function testSubmissionGetsSectionEditor(): void
385419
$this->assertEquals($sectionEditorsUser->getFullName(), $scieloArticle->getSectionEditor());
386420
}
387421

422+
/**
423+
* @group OJS
424+
*/
425+
public function testSubmissionGetsDisabledSectionEditor(): void
426+
{
427+
$sectionEditorData = [
428+
'userName' => 'exampleCharles',
429+
'email' => 'charles@example.com',
430+
'password' => 'examplepass',
431+
'givenName' => [$this->locale => "Charles"],
432+
'familyName' => [$this->locale => "Xavier"],
433+
'dateRegistered' => Core::getCurrentDate(),
434+
'disabled' => true
435+
];
436+
$sectionEditorsUser = $this->createEditorUsers([$sectionEditorData], true)[0];
437+
438+
$articleFactory = new ScieloArticleFactory();
439+
$scieloArticle = $articleFactory->createSubmission($this->submissionId, $this->locale);
440+
441+
$this->assertEquals($sectionEditorsUser->getFullName(), $scieloArticle->getSectionEditor());
442+
}
443+
388444
/**
389445
* @group OJS
390446
*/

0 commit comments

Comments
 (0)