## Процесс для удаления расширенных прав у пользователей Народной карты при увольнении

Критерии расширенных прав:
1. Наличие (напрямую или через группу) хотя бы одной из ролей: **admin-role, developer, cartographer, feedback_other, hidden_mirrors, yandex-moderator**
2. Наличие группы: **mpro**

Ими могут обладать пользователи только из следующих подразделений (и вложенных в них) на Стаффе:
1. Отдел картографического производства - **yandex_content_data_production**
2. Отдел разработки геоинформационных сервисов - **yandex_content_geodev**
3. Отдел картографического производства (Поддержка бизнеса) - **outstaff_3676_dep52299**
4. Группа разработки пользовательской документации - **yandex_infra_tech_doc_user**
5. Бригада региональных обозревателей в Турции - **yandex_content_b2b_tr_dep29074**
6. Внешние региональные обозреватели - **ext_5873_dep46363**

Также расширенными правами, независимо от Стаффа, могут обладать:
1. Аутсорсеры (роль **outsource-role**)
2. Тестировщики (роль **nmaps-qa**)
3. Роботы (роль **robot**)

Алгоритм работы утилиты:
1. По базе Народной карты ищутся все неудалённые пользователи, имеющие хотя бы одну группу или роль, соответствующую расширенным правам.
2. По Стаффу ищутся все пользователи, входящие хотя бы в одно из допустимых подразделений (включая подгруппы). Для каждого из них собираются все логины в Народной карте и флаг увольнения.
  2.1. Если в результате не нашлось ни одного логина, то процесс завершается с ошибкой - скорее всего, в API Стаффа изменилась константа, соответствующая типу аккаунта "Логин в Народной карте".
3. Если пользователь является аутсорсером, то проверяется дата последней сделанной им правки по таблице *social.commit_event*. Если она была более 2 месяцев назад, то пользователь удаляется.
4. Если пользователь не является аутсорсером:
  4.1. Если логин из Народной карты не входит в число допустимых по Стаффу и начинается на **yndx** - он удаляется.
  4.2. Если логин из Народной карты не входит в число допустимых по Стаффу и не начинается на **yndx** - у него удаляются все роли и группы, соответствующие расширенным правам.
  4.3. Если логин из Народной карты входит в число допустимых по Стаффу, начинается на **yndx** и пользователь был уволен - он удаляется.
  4.4. Если логин из Народной карты входит в число допустимых по Стаффу, не начинается на **yndx** и пользователь был уволен - у него удаляются все роли и группы, соответствующие расширенным правам.

При сравнении логинов точки и дефисы в них отождествляются.

Утилита запускается по cron'у с периодичностью один раз в сутки.
