ЛК редактирование персональных данных.

Приветствую.
Есть сайт с ЛК, и вот думаю о решении такой задачи.
Человек, при редактировании персональных данных выбирает из селекта, к какой группе он относится (к примеру А, Б, В, Г). Если он выбирает группу А, то должен попасть в группу пользователей UsersA, если группу Б, то в группу пользователей UsersБ и т.д.
М.Б. кто сталкивался с подобной задачей?
Аркадий
17 сентября 2015, 12:41
modx.pro
1
868
0

Комментарии: 9

Антон Фомичёв
17 сентября 2015, 16:13
0
М.Б. кто сталкивался с подобной задачей?
Я сталкивался и реализовывал. А в чём вопрос и сложность?
    Аркадий
    17 сентября 2015, 16:15
    0
    Да вот собственно и не пойму, что нужно запилить, что б пользователь автоматом перекидывался из одной группы, в другую, если выбирает другую группу при редактировании своих данных.
      Антон Фомичёв
      17 сентября 2015, 16:32
      0
      Самый простой способ —

      $user->leaveGroup('UserA');
      $user->joinGroup('UserB');


      Самый правильный — через вызов процессора.
        Аркадий
        17 сентября 2015, 16:33
        0
        Хм, а можно чуть детальнее?
          Антон Фомичёв
          17 сентября 2015, 17:05
          0
          Давай ты всё же объяснишь подробнее, в каком месте у тебя возникла загвоздка. А я постараюсь подробнее объяснить, как лучше сделать.
            Аркадий
            17 сентября 2015, 17:31
            0
            [[!UpdateProfile]]
            Далее идет форма с редактированием своих данных.
            И в этой форме идет select с выбором из 3 типов пользователей(3 вида групп).
            Вот при изменении выбора типа, должно автоматом перекидывать в соответствующую группу.
              Антон Фомичёв
              17 сентября 2015, 18:49
              +1
              Ну так телепатов ведь нет. Надо было сразу уточнить, что ты хочешь узнать, как менять группы средствами компонента Login.
              Честно говоря, понятия не имею. Не использую его для этих целей. И беглый просмотр кода контроллнра UpdateProfile и соответствующего процессора компонента ничего не подсказал. Ну то есть там апдейдить можно только поля профиля, про группы ничего не нашёл.

              Напиши ссвой сниппет, в котором вызови встроенный modx-процессор
              $response = $modx->runProcessor('security/user/update',$properties);
              В $properties, если не изменяет склероз, нужно передать массив, в ключе groups которого можно указать группу(ы), в которую(ие) добавить пользователя:
              $UsersBgroupId = 3; //ID требуемой группы
              $properties = array(
              	'id' => $userId,
              	'groups' => array(
              		array(
              			'usergroup' => $UsersBgroupId,
              			'role' => 5, //id роли в группе, если надо
              			'rank' => 0 //ранг пользователя
              		)
              	)
              );
    Аркадий
    17 сентября 2015, 16:28
    0
    Разобрался, все оказалось эллементарно)))
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    9