Как изменить роль пользователя?
Доброго дня. Как можно изменить роль пользователя в группе плагином?
Не могу найти такого функционала.
Если делать так
Есть только одна идея сначала убирать из группы, а затем сразу добавлять с нужной ролью, но может есть что-то другое?
Не могу найти такого функционала.
Если делать так
$user->joinGroup('Group','Role2'); то роль не меняется.Есть только одна идея сначала убирать из группы, а затем сразу добавлять с нужной ролью, но может есть что-то другое?
Комментарии: 3
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
MODX делает несколько запросов в базу данных.
Если упрощённо, то сначала определяет ID группы по её имени (из таблицы modx_membergroup_names), потом — ID роли (таблица modx_user_group_roles). Когда ID-шники определены, происходит создание новой записи в таблице modx_member_groups.
После этого сбрасываются значения параметров сессии:
Для удаления пользователя из группы точно так же нужно найти ID-шник группы по её имени и удалить соответствующую запись из таблицы modx_member_groups.
В итоге запись
сгенерирует минимум 5 запросов к базе данных.
Если где-то ранее у нас уже определены ID-шники ролей и групп, то можно внести изменения вручную:
Но через год-полтора будет сложно понять, что тут происходит.
Так что решение о том, какой из способов выбрать, каждый принимает сам.