Skip to content

Commit cb24c7c

Browse files
committed
pkp/pkp-lib#10929 Temporary fix - implement app level SubmissionController::add method
1 parent 90b5183 commit cb24c7c

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

pages/submission/SubmissionHandler.php

+29
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
use APP\section\Section;
2828
use APP\submission\Submission;
2929
use APP\template\TemplateManager;
30+
use Illuminate\Support\Collection;
3031
use Illuminate\Support\LazyCollection;
3132
use PKP\components\forms\FormComponent;
3233
use PKP\components\forms\publication\Details;
@@ -36,7 +37,10 @@
3637
use PKP\facades\Locale;
3738
use PKP\pages\submission\PKPSubmissionHandler;
3839
use PKP\plugins\Hook;
40+
use PKP\security\Role;
3941
use PKP\submission\GenreDAO;
42+
use PKP\user\User;
43+
use PKP\userGroup\UserGroup;
4044

4145
class SubmissionHandler extends PKPSubmissionHandler
4246
{
@@ -295,4 +299,29 @@ protected function getConfirmSubmitMessage(Submission $submission, Context $cont
295299
}
296300
return __('submission.wizard.confirmSubmit', ['context' => $context->getLocalizedName()]);
297301
}
302+
303+
/**
304+
* Get the user groups that a user can submit in
305+
*/
306+
protected function getSubmitUserGroups(Context $context, User $user): Collection
307+
{
308+
$userGroups = UserGroup::query()
309+
->withContextIds([$context->getId()])
310+
->withUserIds([$user->getId()])
311+
->withRoleIds([Role::ROLE_ID_MANAGER, Role::ROLE_ID_SITE_ADMIN, Role::ROLE_ID_AUTHOR])
312+
->get();
313+
314+
// Users without a submitting role can submit as an
315+
// author role that allows self registration
316+
if ($userGroups->isEmpty()) {
317+
$defaultUserGroup = UserGroup::withContextIds([$context->getId()])
318+
->withRoleIds([Role::ROLE_ID_AUTHOR])
319+
->permitSelfRegistration(true)
320+
->first();
321+
322+
$userGroups = collect($defaultUserGroup ? [$defaultUserGroup->id => $defaultUserGroup] : []);
323+
}
324+
325+
return $userGroups;
326+
}
298327
}

0 commit comments

Comments
 (0)