1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-25 16:22:43 +01:00

Fix exception trying to rename user to their previous username

Summary:
When trying to rename a user, properly handle when the new username is the old username to avoid an exception.

```
EXCEPTION: (PhabricatorApplicationTransactionNoEffectException) Transactions have no effect:
  - Transaction (of type "user.rename") has no effect. at [<phorge>/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php:2823]
```

Closes T15795

Test Plan:
* As an admin, go to `/people/manage/123/` and select `Change Username`. Use the old username as the new username and select `Rename User`. Without the patch, get an exception. With the patch, get a proper error message within the dialog, as if you tried to set the new username to an empty string.
* As an admin, go to `/people/create/`, select `Create Standard User`, and successfully create a new user account.
* In an anonymous browser window, go to `/auth/start/`, click `Register New Account`, and successfully create a new user account.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15795

Differential Revision: https://we.phorge.it/D25601
This commit is contained in:
Andre Klapper 2024-04-20 19:11:55 +02:00
parent 9a5643253b
commit af300016b6

View file

@ -78,6 +78,10 @@ final class PhabricatorUserUsernameTransaction
$errors[] = $this->newInvalidError(
PhabricatorUser::describeValidUsername(),
$xaction);
} else if ($this->generateOldValue($object) === $new) {
$errors[] = $this->newInvalidError(
pht('New username cannot be the old username.'),
$xaction);
}
$user = id(new PhabricatorPeopleQuery())