BonBonSlick
@BonBonSlick
Web Developer Trainee

Почему нельзя предоставлять право юзеру удалять аккаунт?

Юзер решил удалить аккаунт, не важно есть ли такой функционал по дефолту или через запрос в суппорт, это приводит с ложным вопросам.
К примеру удаляя весь контент который юзер добавил, посты, комментарии и прочее надо дропать коскадно ответы на комментрии и чужие комментарии к посту и всех комментарии на чужие комментарии, лайки, дизлайки, просмотры.

Тотальная очистка сделает юзера словно неведимкой, как будто бы его и не существовало в БД.
Ето вредно для аналитики и контента. Вот к примеру решил я удалить свой аккаунт на тостере, -1000+ вопросов, 5000+ ответов, 10000+ комментариев, лайков и прочего. Страдает СЕО сайта, аналитика. Куча людей потратило кучу время на ответы и так далее, как и сам я задавая вопросы.

Потому есть другой вариант, дропать аккаунт и ставить поле связей NULL, но тут начинаются дикие пляские с проверками на NULL.

А вот вариант не давать юзеру удалить аккаунт, не совсем как-то по правилам, думаю к такому можно придраться даже если упомянуть в ToService + PPolicy.

Возможно ли решить данную дилемму?
Если да, то как?
  • Вопрос задан
  • 249 просмотров
Решения вопроса 6
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Оставьте обезличенный аккаунт. Удалите всё, кроме id, поменяйте ник на `deleted${id}`, сбросьте пароль на случайный, добавьте отметку об удалении.
Ответ написан
DevMan
@DevMan
что значит нельзя? очень даже можно, иногда даже нужно.

надо исходить из целесообразности, необходимости, политик и законодательства.
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
Чаще всего просто ставится флаг "пользователь удален", проверки на это добавляются в работу всех функций портала, чтобы игнорировать такого удаленного юзера.
Точнее сам и решаешь что происходит - удаленный юзер может игнорироваться функциями поиска, его контент может отображаться/скрываться/скрываться от юзеров но отображаться админам.
В общем полная фантазия.
Ответ написан
Zettabyte
@Zettabyte
Проф. восстановление данных ▪ Вопрос? См. профиль
Как вариант, посмотрите как это сделано в phpBB.

Там ещё в версии 3.0 было удаление пользователя, по-моему, то ли с тремя, то ли даже с четырьмя вариантами того, что делать с его контентом.

Вы можете сохранять сообщения, но никнейм делать просто текстом, без ссылки на профиль, а под ником не оставлять никакой информации, как у активных пользователей: дата регистрации, кол-во сообщений, откуда и т.п. Только пометку в духе "Unregistered".
Также по его нику, скорее всего, не должен работать внутренний поиск (найти все сообщения автора Koreyko).

Можете даже ник не сохранять, а заменять его на что-то наподобие "User100500", где 100500 - это его id. Или генерировать какие-то рандомные комбинации из пары слов, например, "Шоколадный пылесос", "Напряжённый глобус", и т.п.

На форуме iXBT, кстати, тоже раньше удаляли профили после долгой неактивности, можете посмотреть как сделано у них.
Ответ написан
@rPman
Тут два вопроса - легальность использования контента и предоставление контроля над информацией пользователям. Ответы к сожалению противоречат друг другу.

Если у тебя бесплатный сервис для пользователя, это значит этот сервис зарабатывает на использовании контента, размещаемого этими пользователями, удаление же этого контента - прекращение этого заработка. Может ли сервис это позволить себе?

Поэтому, отличным решением может лицензионное соглашение, передающее права на пользование контентом от пользователя к сервису, например на хабре это использование лицензии creative common, т.е. контент ваш но пользоваться им может любой, копируя, с условием сохранения авторства и лицензии.

Это значит удаляя пользователя, контент удалять не потребуется. Так же глупо удалять имя пользователя, но пометить что он удален - полезно (например есть практика, подменять имя пользователя ссылкой на его профиль, для удаленных пользователей ссылку не делать).

В этом случае ничего не ломается.

Если же необходимость скрывать данные есть, но благодаря лицензионному соглашению есть возможность сохранить данные для их использованию сервисом, то в базе необходимо вместо удаления делать пометку - удален, в идеале перемещение данных в другую базу физически (архивная), тогда будет меньше вероятность всплыть удаленным данным при ошибке в коде в будущем.
Ответ написан
@vabka
Токсичный
К примеру удаляя весь контент который юзер добавил, посты, комментарии и прочее надо дропать коскадно ответы на комментрии и чужие комментарии к посту и всех комментарии на чужие комментарии, лайки, дизлайки, просмотры.

Не нужно дропать. Вполне норм практика - очищать текст и ставить пометку что-то типа "НЛО оставило это здесь"

С пользователем всё примерно то же самое - удаляешь тот контент, который создал сам пользователь, оставляешь то что по закону разрешено для аналитики, всё остальное стираешь, ставишь метки, что пользователя нет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
ну если хочешь удаляй
если не хочешь не удаляй
какая тут дилема
если контент юзера тебе приносит 100 долларов , то юзера удали, а контент не удаляй вот и все
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы