Skip to content

Commit cf60a4a

Browse files
committed
fix issue in edit invitation not showing user details and remove legacy add user modals links
1 parent 71360b6 commit cf60a4a

File tree

4 files changed

+22
-59
lines changed

4 files changed

+22
-59
lines changed

controllers/grid/settings/user/UserGridHandler.php

+7-24
Original file line numberDiff line numberDiff line change
@@ -92,23 +92,6 @@ public function initialize($request, $args = null)
9292
// Basic grid configuration.
9393
$this->setTitle('grid.user.currentUsers');
9494

95-
// Grid actions.
96-
$router = $request->getRouter();
97-
98-
$this->addAction(
99-
new LinkAction(
100-
'addUser',
101-
new AjaxModal(
102-
$router->url($request, null, null, 'addUser', null, null),
103-
__('grid.user.add'),
104-
null,
105-
true
106-
),
107-
__('grid.user.add'),
108-
'add_user'
109-
)
110-
);
111-
11295
//
11396
// Grid columns.
11497
//
@@ -171,7 +154,7 @@ public function getTemplateVarsFromRow($row): array
171154
->withActive();
172155
})
173156
->get();
174-
157+
175158
$roles = $userGroups->map(fn (UserGroup $userGroup) => $userGroup->getLocalizedData('name'))->join(__('common.commaListSeparator'));
176159
return ['label' => $roles];
177160
}
@@ -550,18 +533,18 @@ public function removeUser($args, $request)
550533
if (!$request->checkCSRF()) {
551534
return new JSONMessage(false);
552535
}
553-
536+
554537
$context = $request->getContext();
555538
$user = $request->getUser();
556-
539+
557540
// Identify the user Id.
558541
$userId = $request->getUserVar('rowId');
559-
542+
560543
if ($userId !== null && Validation::getAdministrationLevel($userId, $user->getId(), $context->getId()) === Validation::ADMINISTRATION_PROHIBITED) {
561544
// We don't have administrative rights over this user.
562545
return new JSONMessage(false, __('grid.user.cannotAdminister'));
563546
}
564-
547+
565548
// Check if this user has any active user group assignments for this context.
566549
$activeUserGroupCount = UserGroup::query()
567550
->withContextIds($context->getId())
@@ -570,7 +553,7 @@ public function removeUser($args, $request)
570553
->withActive();
571554
})
572555
->count();
573-
556+
574557
if (!$activeUserGroupCount) {
575558
return new JSONMessage(false, __('grid.user.userNoRoles'));
576559
} else {
@@ -582,7 +565,7 @@ public function removeUser($args, $request)
582565
$query->withContextIds($context->getId());
583566
})
584567
->update(['date_end' => now()]);
585-
568+
586569
return \PKP\db\DAO::getDataChangedEvent($userId);
587570
}
588571
}

controllers/grid/users/author/AuthorGridRow.php

-18
Original file line numberDiff line numberDiff line change
@@ -101,24 +101,6 @@ public function initialize($request, $template = null)
101101
'delete'
102102
)
103103
);
104-
105-
$author = Repo::author()->get((int) $rowId, $this->getPublication()->getId());
106-
107-
if ($author && !Repo::user()->getByEmail($author->getEmail(), true)) {
108-
$this->addAction(
109-
new LinkAction(
110-
'addUser',
111-
new AjaxModal(
112-
$router->url($request, null, null, 'addUser', null, $actionArgs),
113-
__('grid.user.add'),
114-
null,
115-
true
116-
),
117-
__('grid.user.add'),
118-
'add_user'
119-
)
120-
);
121-
}
122104
}
123105
}
124106
}

locale/en/user.po

+1-1
Original file line numberDiff line numberDiff line change
@@ -855,7 +855,7 @@ msgid "orcid.field.unverified.shouldRequest"
855855
msgstr "This ORCID has not been verified. Please remove this unverified ORCID and request verification from the user/author directly."
856856

857857
msgid "user.removeRole.message"
858-
msgstr "Are you sure want remove this role permanently?"
858+
msgstr "Are you sure you want to permanently remove this role? This action will revoke the user's access to all information and permissions associated with this role"
859859

860860
msgid "user.futureRole.notification.message"
861861
msgstr "Your role is scheduled to begin on {$roleStartDate}"

pages/invitation/InvitationHandler.php

+14-16
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,10 @@
2222
use APP\handler\Handler;
2323
use APP\template\TemplateManager;
2424
use PKP\context\Context;
25-
use PKP\core\PKPApplication;
2625
use PKP\facades\Locale;
27-
use PKP\i18n\LocaleMetadata;
2826
use PKP\invitation\core\enums\InvitationAction;
2927
use PKP\invitation\core\Invitation;
3028
use PKP\invitation\stepTypes\SendInvitationStep;
31-
use PKP\user\User;
3229
use PKP\userGroup\relationships\UserUserGroup;
3330

3431
class InvitationHandler extends Handler
@@ -155,8 +152,8 @@ public function invite(array $args, Request $request): void
155152
$invitationModel = $invitation->invitationModel->toArray();
156153

157154
$invitationMode = 'edit';
158-
$payload['email']=$invitationModel['email'];
159-
$invitationData = $this->generateInvitationPayload($invitationModel['userId'],$payload,$request->getContext())['invitationPayload'];
155+
$payload['email'] = $invitationModel['email'];
156+
$invitationData = $this->generateInvitationPayload($invitationModel['userId'], $payload, $request->getContext());
160157
$user = $invitationData['user'];
161158
$invitationPayload = $invitationData['invitationPayload'];
162159
}
@@ -206,7 +203,8 @@ public function invite(array $args, Request $request): void
206203
'pageTitleDescription' => $invitation ?
207204
__(
208205
'invitation.wizard.viewPageTitleDescription',
209-
['name' => $invitationPayload['givenName'][Locale::getLocale()]]
206+
['name' => $invitationPayload['givenName'][Locale::getLocale()] ?
207+
$invitationPayload['givenName'][Locale::getLocale()] : $invitationPayload['inviteeEmail']]
210208
)
211209
: __('invitation.wizard.pageTitleDescription'),
212210
]);
@@ -228,9 +226,9 @@ public function invite(array $args, Request $request): void
228226
public function editUser($args, $request): void
229227
{
230228
$invitation = null;
231-
if(!empty($args)) {
229+
if (!empty($args)) {
232230
$invitationMode = 'editUser';
233-
$invitationData = $this->generateInvitationPayload($args[0],[],$request->getContext());
231+
$invitationData = $this->generateInvitationPayload($args[0], [], $request->getContext());
234232
$user = $invitationData['user'];
235233
$invitationPayload = $invitationData['invitationPayload'];
236234
$templateMgr = TemplateManager::getManager($request);
@@ -257,7 +255,7 @@ public function editUser($args, $request): void
257255
];
258256
$steps = new SendInvitationStep();
259257
$templateMgr->setState([
260-
'steps' => $steps->getSteps($invitation, $context,$user),
258+
'steps' => $steps->getSteps($invitation, $context, $user),
261259
'emailTemplatesApiUrl' => $request
262260
->getDispatcher()
263261
->url(
@@ -295,7 +293,7 @@ public function editUser($args, $request): void
295293
* @param Context $context
296294
* @param int $id
297295
*/
298-
private function getUserUserGroups(int $id , Context $context): array
296+
private function getUserUserGroups(int $id, Context $context): array
299297
{
300298
$userGroups = [];
301299
$userUserGroups = UserUserGroup::query()
@@ -325,11 +323,11 @@ private function getUserUserGroups(int $id , Context $context): array
325323
private function generateInvitationPayload($userId, array $payload, Context $context): array
326324
{
327325
$user = null;
328-
if($userId){
329-
$user = Repo::user()->get($userId,true);
326+
if ($userId) {
327+
$user = Repo::user()->get($userId, true);
330328
}
331329

332-
$invitationPayload =[];
330+
$invitationPayload = [];
333331
$invitationPayload['userId'] = $user ? $user->getId() : $userId;
334332
$invitationPayload['inviteeEmail'] = $user ? $user->getEmail() : $payload['email'];
335333
$invitationPayload['orcid'] = $user ? $user->getData('orcid') : $payload['orcid'];
@@ -341,12 +339,12 @@ private function generateInvitationPayload($userId, array $payload, Context $con
341339
$invitationPayload['phone'] = $user?->getPhone();
342340
$invitationPayload['mailingAddress'] = $user?->getMailingAddress();
343341
$invitationPayload['signature'] = $user?->getSignature(null);
344-
$invitationPayload['locales'] = $user? $this->getWorkingLanguages($context,$user->getLocales()) : null;
342+
$invitationPayload['locales'] = $user ? $this->getWorkingLanguages($context, $user->getLocales()) : null;
345343
$invitationPayload['reviewInterests'] = $user?->getInterestString();
346344
$invitationPayload['homePageUrl'] = $user?->getUrl();
347345
$invitationPayload['disabled'] = $user?->getData('disabled');
348346
$invitationPayload['userGroupsToAdd'] = !$payload['userGroupsToAdd'] ? [] : $payload['userGroupsToAdd'];
349-
$invitationPayload['currentUserGroups'] = !$userId ? [] : $this->getUserUserGroups($userId,$context);
347+
$invitationPayload['currentUserGroups'] = !$userId ? [] : $this->getUserUserGroups($userId, $context);
350348
$invitationPayload['userGroupsToRemove'] = [];
351349
$invitationPayload['emailComposer'] = [
352350
'emailBody' => '',
@@ -364,7 +362,7 @@ private function generateInvitationPayload($userId, array $payload, Context $con
364362
* @param $userLocales
365363
* @return string
366364
*/
367-
private function getWorkingLanguages(Context $context,$userLocales): string
365+
private function getWorkingLanguages(Context $context, $userLocales): string
368366
{
369367
$locales = $context->getSupportedLocaleNames();
370368
return join(__('common.commaListSeparator'), array_map(fn($key) => $locales[$key], $userLocales));

0 commit comments

Comments
 (0)