Skip to content

Commit 2c88136

Browse files
committed
refactor invitation page handler
1 parent e5253a2 commit 2c88136

14 files changed

+527
-319
lines changed

classes/invitation/core/Invitation.php

+7
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,13 @@ abstract public static function getType(): string;
7171
*/
7272
abstract public function getInvitationActionRedirectController(): ?InvitationActionRedirectController;
7373

74+
/**
75+
* Defines the controller that is responsible for the handle of the create/edit
76+
* invitation views
77+
* @return InvitationUIActionRedirectController|null
78+
*/
79+
abstract public function getInvitationUIActionRedirectController(): ?InvitationUIActionRedirectController;
80+
7481
/**
7582
* Get a specific payload instance for the child class.
7683
*/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
/**
4+
* @file classes/invitation/core/InvitationUIActionRedirectController.php
5+
*
6+
* Copyright (c) 2025 Simon Fraser University
7+
* Copyright (c) 2025 John Willinsky
8+
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
9+
*
10+
* @class InvitationUIActionRedirectController
11+
*
12+
* @brief Declares the create/edit url handlers.
13+
*/
14+
15+
namespace PKP\invitation\core;
16+
17+
use APP\core\Request;
18+
use Illuminate\Routing\Controller;
19+
20+
abstract class InvitationUIActionRedirectController extends Controller
21+
{
22+
/** @var TInvitation */
23+
protected Invitation $invitation;
24+
25+
public function __construct(Invitation $invitation)
26+
{
27+
$this->invitation = $invitation;
28+
}
29+
abstract public function createHandle(Request $request, $userId = null): void;
30+
abstract public function editHandle(Request $request): void;
31+
}

classes/invitation/invitations/changeProfileEmail/ChangeProfileEmailInvite.php

+8-2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
use PKP\invitation\core\enums\ValidationContext;
2626
use PKP\invitation\core\Invitation;
2727
use PKP\invitation\core\InvitationActionRedirectController;
28+
use PKP\invitation\core\InvitationUIActionRedirectController;
2829
use PKP\invitation\core\traits\HasMailable;
2930
use PKP\invitation\core\traits\ShouldValidate;
3031
use PKP\invitation\invitations\changeProfileEmail\handlers\ChangeProfileEmailInviteRedirectController;
@@ -138,10 +139,15 @@ public function getInvitationActionRedirectController(): ?InvitationActionRedire
138139
return new ChangeProfileEmailInviteRedirectController($this);
139140
}
140141

142+
public function getInvitationUIActionRedirectController(): ?InvitationUIActionRedirectController
143+
{
144+
return null;
145+
}
146+
141147
/**
142148
* @inheritDoc
143149
*/
144-
public function getValidationRules(ValidationContext $validationContext = ValidationContext::VALIDATION_CONTEXT_DEFAULT): array
150+
public function getValidationRules(ValidationContext $validationContext = ValidationContext::VALIDATION_CONTEXT_DEFAULT): array
145151
{
146152
return [
147153
'newEmail' => 'required|email',
@@ -151,7 +157,7 @@ public function getValidationRules(ValidationContext $validationContext = Valida
151157
/**
152158
* @inheritDoc
153159
*/
154-
public function getValidationMessages(ValidationContext $validationContext = ValidationContext::VALIDATION_CONTEXT_DEFAULT): array
160+
public function getValidationMessages(ValidationContext $validationContext = ValidationContext::VALIDATION_CONTEXT_DEFAULT): array
155161
{
156162
return [];
157163
}

classes/invitation/invitations/registrationAccess/RegistrationAccessInvite.php

+6
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
use PKP\invitation\core\enums\InvitationStatus;
2626
use PKP\invitation\core\Invitation;
2727
use PKP\invitation\core\InvitationActionRedirectController;
28+
use PKP\invitation\core\InvitationUIActionRedirectController;
2829
use PKP\invitation\invitations\registrationAccess\handlers\RegistrationAccessInviteRedirectController;
2930
use PKP\user\User;
3031

@@ -101,4 +102,9 @@ public function getInvitationActionRedirectController(): ?InvitationActionRedire
101102
{
102103
return new RegistrationAccessInviteRedirectController($this);
103104
}
105+
106+
public function getInvitationUIActionRedirectController(): ?InvitationUIActionRedirectController
107+
{
108+
return null;
109+
}
104110
}

classes/invitation/invitations/reviewerAccess/ReviewerAccessInvite.php

+8-2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
use PKP\invitation\core\enums\ValidationContext;
2626
use PKP\invitation\core\Invitation;
2727
use PKP\invitation\core\InvitationActionRedirectController;
28+
use PKP\invitation\core\InvitationUIActionRedirectController;
2829
use PKP\invitation\core\traits\ShouldValidate;
2930
use PKP\invitation\invitations\reviewerAccess\handlers\ReviewerAccessInviteRedirectController;
3031
use PKP\invitation\invitations\reviewerAccess\payload\ReviewerAccessInvitePayload;
@@ -148,10 +149,15 @@ public function getInvitationActionRedirectController(): ?InvitationActionRedire
148149
return new ReviewerAccessInviteRedirectController($this);
149150
}
150151

152+
public function getInvitationUIActionRedirectController(): ?InvitationUIActionRedirectController
153+
{
154+
return null;
155+
}
156+
151157
/**
152158
* @inheritDoc
153159
*/
154-
public function getValidationRules(ValidationContext $validationContext = ValidationContext::VALIDATION_CONTEXT_DEFAULT): array
160+
public function getValidationRules(ValidationContext $validationContext = ValidationContext::VALIDATION_CONTEXT_DEFAULT): array
155161
{
156162
return [
157163
'reviewAssignmentId' => [
@@ -161,7 +167,7 @@ function ($attribute, $value, $fail) {
161167
$reviewAssignment = Repo::reviewAssignment()->get($value);
162168

163169
if (!$reviewAssignment) {
164-
$fail(__('invitation.reviewerAccess.validation.error.reviewAssignmentId.notExisting',
170+
$fail(__('invitation.reviewerAccess.validation.error.reviewAssignmentId.notExisting',
165171
[
166172
'reviewAssignmentId' => $value
167173
])

classes/invitation/invitations/userRoleAssignment/UserRoleAssignmentInvite.php

+13-6
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,14 @@
2323
use PKP\invitation\core\enums\ValidationContext;
2424
use PKP\invitation\core\Invitation;
2525
use PKP\invitation\core\InvitationActionRedirectController;
26+
use PKP\invitation\core\InvitationUIActionRedirectController;
2627
use PKP\invitation\core\ReceiveInvitationController;
2728
use PKP\invitation\core\traits\HasMailable;
2829
use PKP\invitation\core\traits\ShouldValidate;
2930
use PKP\invitation\invitations\userRoleAssignment\handlers\api\UserRoleAssignmentCreateController;
3031
use PKP\invitation\invitations\userRoleAssignment\handlers\api\UserRoleAssignmentReceiveController;
3132
use PKP\invitation\invitations\userRoleAssignment\handlers\UserRoleAssignmentInviteRedirectController;
33+
use PKP\invitation\invitations\userRoleAssignment\handlers\UserRoleAssignmentInviteUIController;
3234
use PKP\invitation\invitations\userRoleAssignment\payload\UserRoleAssignmentInvitePayload;
3335
use PKP\invitation\invitations\userRoleAssignment\rules\EmailMustNotExistRule;
3436
use PKP\invitation\invitations\userRoleAssignment\rules\NoUserGroupChangesRule;
@@ -116,7 +118,7 @@ public function getMailable(): Mailable
116118
return $this->mailable;
117119
}
118120

119-
public function getMailableReceiver(?string $locale = null): Identity
121+
public function getMailableReceiver(?string $locale = null): Identity
120122
{
121123
$locale = $this->getUsedLocale($locale);
122124

@@ -138,18 +140,23 @@ public function getInvitationActionRedirectController(): ?InvitationActionRedire
138140
return new UserRoleAssignmentInviteRedirectController($this);
139141
}
140142

143+
public function getInvitationUIActionRedirectController(): ?InvitationUIActionRedirectController
144+
{
145+
return new UserRoleAssignmentInviteUIController($this);
146+
}
147+
141148
/**
142149
* @inheritDoc
143150
*/
144-
public function getCreateInvitationController(Invitation $invitation): CreateInvitationController
151+
public function getCreateInvitationController(Invitation $invitation): CreateInvitationController
145152
{
146153
return new UserRoleAssignmentCreateController($invitation);
147154
}
148-
155+
149156
/**
150157
* @inheritDoc
151158
*/
152-
public function getReceiveInvitationController(Invitation $invitation): ReceiveInvitationController
159+
public function getReceiveInvitationController(Invitation $invitation): ReceiveInvitationController
153160
{
154161
return new UserRoleAssignmentReceiveController($invitation);
155162
}
@@ -175,7 +182,7 @@ public function getValidationRules(ValidationContext $validationContext = Valida
175182
}
176183

177184
$validationRules = array_merge(
178-
$invitationValidationRules,
185+
$invitationValidationRules,
179186
$this->getPayload()->getValidationRules($this, $validationContext)
180187
);
181188

@@ -190,7 +197,7 @@ public function getValidationMessages(ValidationContext $validationContext = Val
190197
$invitationValidationMessages = [];
191198

192199
$invitationValidationMessages = array_merge(
193-
$invitationValidationMessages,
200+
$invitationValidationMessages,
194201
$this->getPayload()->getValidationMessages($validationContext)
195202
);
196203

0 commit comments

Comments
 (0)