получить роль и группу пользователя

Доброго времени суток. Подскажите пожалуйста (если не далеко лезть) код, которым можно получить роль и группу пользователя авторизированного на сайте. Спасибо
Николай
05 августа 2013, 18:52
modx.pro
1
6 968
0

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

Василий Наумкин
05 августа 2013, 22:54
0
Получить особо ничего не получится, без запросов в БД, но можно проверять, присутствует ли юзер в определенных группах.

Для этого есть метод modX::isMember().
    Виталий Барышников
    03 ноября 2015, 07:37
    0
    Вот и мне понадобилась такая возможность. А использование такое: Делаю блог и хочу чтобы у автора статьи была подпись вроде «Гость», «Копирайтер», «Администратор». Я не особо кодер, поэтому запрос к БД сам не напишу. Может как-то через сниппет можно pdoUsers? Самое близкое по теме было тут. Делаю через Tickets.
      Сергей Шлоков
      03 ноября 2015, 08:16
      0
      Автор статьи может быть одновременно членом групп Копирайтер и Администраторы. Чего выводить?
        Виталий Барышников
        03 ноября 2015, 10:46
        0
        Вообще я не собирался делать так, чтобы они пересекались. Админ — один. Райтеров много. А можно даже и обе роли вывести, не страшно, тогда допустим понятно, что человек и пишет, и управляет, вон какой молодец)
          Сергей Шлоков
          03 ноября 2015, 11:10
          1
          +2
          Микросниппет, который выводит группы пользователей через запятую, если их несколько
          $groups = implode(',',$modx->user->getUserGroupNames());
          return $groups;
            Виталий Барышников
            03 ноября 2015, 11:28
            0
            Спасибо. Тоже отличный вариант. А я сначала искал немного другое, политики, которые применены к этому пользователю, но видимо изначально у меня был плохой план)
          Виталий Барышников
          03 ноября 2015, 10:48
          0
          Может есть проще метод и более распространенный? Типа там использовать поле extends у юзера или еще что-то…
        Пётр Молчанов
        03 ноября 2015, 10:55
        2
        +2
        isMember — самый нормальный вариант
        $user = $modx->getObject('modUser',array('active' => true, 'id' => $userid )); // подставляй айди пользователя
        if($user == null)
                return "Пользователь не найден!";
        if($user->isMember('Гость')) {
        
        } elseif($user->isMember('Копирайтер')) {
        
        }
        и т.д.
        если нужно для каждой что-то выводить, то убери else из условий, проверяй только if'ом
          Виталий Барышников
          03 ноября 2015, 11:00
          0
          Спасибо. Попробую. Боялся ветка мертва, ан нет)
            Пётр Молчанов
            03 ноября 2015, 11:03
            0
            пробуй) я этот пример тебе с рабочего сайта скинул
              Виталий Барышников
              03 ноября 2015, 11:52
              0
              Работает, но. Теперь встал другой вопрос, как получить id чтобы передать его в сниппет. [[+id]] — получается id статьи, [[+modx.user.id]] — id текущего юзера. А вот id именно автора статьи… Я использую для вывода сниппет TicketMeta (из Tickets), все плейсхолдеры кроме id нормально выводят.
        Сергей Шлоков
        03 ноября 2015, 11:07
        0
        del
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          15