User account renaming / Переименование учётной записи
EN: User account renaming (with updating dependencies)
Maybe should be keeping redirect from the old account name. Since the hash is stored in the database, and not the external name, it is enough to implement a redirection to keep external links working.
-- RU: Переименование учётной записи (с обновлением необходимых зависимостей)
Может быть, стоит сохранить перенаправление со старого имени учетной записи. Поскольку в базе хранится хэш, а не внешнее имя, то достаточно реализовать перенаправление, чтобы сохранить работоспособными внешние ссылки.
С переименованием проблем особых нет. Т. к. операция это не особо частая, можно напрямую исправить имя в базе.
А вот с редиректом сложнее. Нужно вводить статус учетной записи, предусматривающий положение DEACTIVATED, поле new_login; а также добавлять в контроллер обработчик.
По минимуму, можно при переименовании старый login заносить в новое поле oldLogin того же пользователя, и изменить обработчик ссылки на пользователя, чтобы в случае если не найден, делался запрос по полю oldLogin.
По минимуму, можно при переименовании старый
loginзаносить в новое полеoldLoginтого же пользователя, и изменить обработчик ссылки на пользователя, чтобы в случае если не найден, делался запрос по полюoldLogin.
Что будет, если понадобится переименовать снова?
Что будет, если понадобится переименовать снова?
Процесс повториться - в таком минимальном варианте только предыдущий логин можно хранить. Если нужна полная история переименований этот вариант не подойдет, тогда нужно скорее как @aeifn предложил в https://github.com/PastVu/pastvu/issues/308#issuecomment-734358585 - вводить статус деактивированной записи.
Можно привязать к https://github.com/PastVu/pastvu/milestone/7
Возможно еще отправлять уведомление на адрес пользователя, содержащее информацию о том, что учетная запись была переименована и новый логин.