Смена роли и удаление пользователя

Добавление роли пользователя. Установка роли по умолчанию при регистрации и команда смены роли администратором. Команда удаления неактивного пользователя.

Скрытый контент
Комментарии (15)
Arunas
2020-02-14 07:27

Спасибо. Очень хорошо.

Ответить
Bondarenko Alexandr
2020-02-14 21:49

Спасибо, Дмитрий! Интересен такой момент: вы неоднократно упоминали о подходе Test First. При разработке задачи, к примеру, создания эндпойнта изменения пароля пользователя, на ваш взгляд, следует вначале разработать сценарии взаимодействия с этим эндпойнтом в тестах, а уж затем разработать модульные тесты для проверки метода changePassword у агрегата пользователя, или наоборот, разработать модульные тесты для changePassword, реализовать код для прохождения этих тестов, а уж затем разрабатывать тесты для взаимодействия с эндпойнтом изменения пароля? Или, может быть, какой-то третий вариант?

Ответить
Deworker Pro
2020-02-20 13:01

Всегда лучше делать так, как будет удобнее.

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

Если же мы не знаем, какой точно будет эндпоинт, то можно сначала придумать команду и на ходу пробовать придумывать классы и методы одновременно с тестами, как делали мы.

Ответить
Сарибжанов Ильдар
2020-02-15 05:58

Спасибо за урок. У меня вопрос не имеющий отношения к программированию =) Согласно GDPR, пользователь должен иметь возможность удалять данные о себе целиком с сервиса. И как тогда решать проблему удаления? Нам не нужны висячие транзакции, но и удалить их нельзя. Как это решается у больших мальчиков? =)

Ответить
Bondarenko Alexandr
2020-02-15 10:46

Корпоративная тайна)

Ответить
Сарибжанов Ильдар
2020-02-15 17:06

Я, конечно, такой вариант тоже рассматриваю, но потом терморектальные процедуры могут быть прописаны от надзорных органов. Поэтому как-то стрёмно

Ответить
Степанов алексей
2020-02-15 20:05

Очень просто, все данные заменяются, например фио на удаленный пользователь номер такойто, телефоны и емейлы на фейки и все.

Ответить
BATPYIIIKOB
2020-02-17 13:51

Всё верно - данные обезличиваются, можно сделать через хеш

Ответить
Deworker Pro
2020-02-20 13:06

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

Ответить
Максим
2020-02-16 05:27

Дмитрий. Здравствуйте.

Очень было бы интересно рассмотреть правильную архитектуру и работу с: городами, областями, странами, геокоординатами, улицами и т. д.

Здесь волнует такой вопрос, что гео используется во многих сервисах сайта. Получается это гео надо выносить в свой сервис. Так же не понятно как лучше хранить данные: id, координаты, строка. Какие данные можно получать по связям, а какие надо хранить в сущности.

Очень благодарен был бы за рассмотрение этого подхода и работу со сторонними сервисами типа Яндекс, Гугл и др.

А так же загрузку использование своего общего аватара (на подобии gavatar). Но это в принципе понятно. Но тоже интересно.

Ответить
Deworker Pro
2020-02-20 13:13

Получается это гео надо выносить в свой сервис.

Города и страны можно вынести оидельно, а всем сущностям присваивать только их идентификаторы.

Так же не понятно как лучше хранить данные.

Если нужны просто координаты, то можно записывать в new Coordinate(lat, long)

Какие данные можно получать по связям, а какие надо хранить в сущности.

В доменной сущности нужно хранить только необходимый минимум. Ей хватит только идентификатора.

Связи обычно нужны только для отображения на фронтенде. Поэтому для отображения удобно делать отдельные голые SQL-запросы со всеми нужными нам JOIN-ами. До этого дойдём когда помимо Command начнём делать Query.

Ответить
Максим
2020-02-20 13:19

Благодарю!

Ответить
Sergei
2020-02-28 16:50

Дмитрий, а можно вопрос: вы изменяете историю коммитов или ребейз делаете? У меня гиткракен иногда смещает историю при ваших обновлениях на ориджине. Мне приходится резет делать на мастер/ориджин из-за конфликта с текущей одной единственной веткой :)

Ответить
Deworker Pro
2020-02-28 22:41

Да, старые коммиты понемногу исправляются интерактивным ребейзом.

Ответить
Sergei
2020-02-29 11:04

Спасибо за ответ. Я думал у меня гиткракен глючит :)

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий