Why: * When code throws a UserNotLoggedIn error for a temporary account, this takes them to Special:UserLogin and asks them to log in to an account * Users using temporary accounts are less likely to have a named account, so should instead be sent to Special:CreateAccount (as described in T358586) * When doing this, the warning message should be customised to talk about the user needing to create an account (and not log in) What: * Update UserNotLoggedIn to redirect to Special:CreateAccount when the user is logged in to a temporary account ** The code which constructs the exception object can override this and force the redirect to always be to Special:UserLogin. * When the redirect is to Special:CreateAccount, allow customising the message shown by adding a '-for-temp-user' suffix to the message key in UserNotLoggedIn. ** This suffix is only added if the resulting message exists, so that code can choose whether they need a message that is different to the one on Special:UserLogin. * Update SpecialPage::requiredNamedUser to allow special pages to force the redirect to always be to Special:UserLogin ** This is made use of in Special:ChangeEmail and Special:ConfirmEmail, as these special pages only make sense for use with an existing account. * Update and add message keys to allow a different message for Special:CreateAccount. * Update and add tests for these changes. Bug: T358586 Change-Id: Ie0dd06f51b1e2b85eef6be377f673a02732ce604 |
||
|---|---|---|
| .. | ||
| Hook | ||
| BadRequestError.php | ||
| BadTitleError.php | ||
| CannotCreateActorException.php | ||
| ErrorPageError.php | ||
| FatalError.php | ||
| HttpError.php | ||
| ILocalizedException.php | ||
| LocalizedException.php | ||
| MWContentSerializationException.php | ||
| MWException.php | ||
| MWExceptionHandler.php | ||
| MWExceptionRenderer.php | ||
| MWUnknownContentModelException.php | ||
| PermissionsError.php | ||
| ProcOpenError.php | ||
| ReadOnlyError.php | ||
| ShellDisabledError.php | ||
| ThrottledError.php | ||
| UserBlockedError.php | ||
| UserNotLoggedIn.php | ||