FreeCode.Academy
Стратегии обучения
Уроки
Технологии
Участники
Проекты
Топики
Блоги
О проекте
Войти
Николай Ланец
управление группами пользователей
У объекта $modx->user есть нативные методы для управления группами (joinGroup, leaveGroup, isMember и т.п.).
Вот пример с добавлением пользователя в группу в оффдоке:
https://docs.modx.com/revolution/2.x/administering-your-site/security/user-groups
Его можно значительно упростить в случае с авторизованным пользователем:
$modx
->
user
->
joinGroup
(
$groupId
)
;
// Или
$modx
->
user
->
joinGroup
(
$groupName
)
;
По умолчанию будет назначена роль
member
. Можно передать другую роль вторым параметром и ранг третьим. Остается только решить вопрос как обновлять текущего пользователя. У меня в shopModxBox был для этого процессор (он для примера, обновление групп в нем не предусмотрено):
https://github.com/MODX-Club/ShopModxBox/blob/master/core/components/modxsite/processors/web/users/own_profile/update.class.php
Покинуть группу:
$modx
->
user
->
leaveGroup
(
16
)
;
Остальные методы работы с группами надо смотреть в исходном коде (они не все задокументированы).
https://github.com/modxcms/revolution/blob/2.x/core/model/modx/moduser.class.php#L572