[NICKNAME] Don't throw when normalizing reserved nicknames

This commit is contained in:
Hugo Sales 2021-04-10 22:42:13 +00:00
parent 637c25d5fe
commit 079d230959

View File

@ -22,6 +22,7 @@
namespace App\Util; namespace App\Util;
use App\Core\DB\DB; use App\Core\DB\DB;
use App\Core\Log;
use App\Entity\GSActor; use App\Entity\GSActor;
use App\Entity\LocalGroup; use App\Entity\LocalGroup;
use App\Entity\LocalUser; use App\Entity\LocalUser;
@ -138,7 +139,7 @@ class Nickname
* @throws NicknameTooLongException * @throws NicknameTooLongException
* @throws NicknameTooShortException * @throws NicknameTooShortException
*/ */
public static function normalize(string $nickname, bool $check_already_used = true, bool $check_reserved = true): string public static function normalize(string $nickname, bool $check_already_used = true, bool $checking_reserved = true): string
{ {
if (mb_strlen($nickname) > self::MAX_LEN) { if (mb_strlen($nickname) > self::MAX_LEN) {
// Display forms must also fit! // Display forms must also fit!
@ -151,13 +152,15 @@ class Nickname
$nickname = mb_strtolower($nickname); $nickname = mb_strtolower($nickname);
$nickname = Normalizer::normalize($nickname, Normalizer::FORM_C); $nickname = Normalizer::normalize($nickname, Normalizer::FORM_C);
if (!$checking_reserved) {
if (mb_strlen($original_nickname) < 1) { if (mb_strlen($original_nickname) < 1) {
throw new NicknameEmptyException(); throw new NicknameEmptyException();
} elseif (mb_strlen($original_nickname) < Common::config('nickname', 'min_length')) { } elseif (mb_strlen($original_nickname) < Common::config('nickname', 'min_length')) {
Log::critical(var_dump($original_nickname, mb_strlen($original_nickname), Common::config('nickname', 'min_length'), mb_strlen($original_nickname) < Common::config('nickname', 'min_length')));
throw new NicknameTooShortException(); throw new NicknameTooShortException();
} elseif (!self::isCanonical($original_nickname) && !filter_var($original_nickname, FILTER_VALIDATE_EMAIL)) { } elseif (!self::isCanonical($original_nickname) && !filter_var($original_nickname, FILTER_VALIDATE_EMAIL)) {
throw new NicknameInvalidException(); throw new NicknameInvalidException();
} elseif ($check_reserved && self::isReserved($original_nickname) || Common::isSystemPath($original_nickname)) { } elseif (self::isReserved($original_nickname) || Common::isSystemPath($original_nickname)) {
throw new NicknameReservedException(); throw new NicknameReservedException();
} elseif ($check_already_used) { } elseif ($check_already_used) {
$actor = self::isTaken($original_nickname); $actor = self::isTaken($original_nickname);
@ -165,6 +168,7 @@ class Nickname
throw new NicknameTakenException($actor); throw new NicknameTakenException($actor);
} }
} }
}
return $nickname; return $nickname;
} }