14 нояб. 2014 г., 10:53

Tickets + настройка прав

Добрый день Использую Modx Revo 2.3.1. Никак не могу разобраться со сниппетом [[!TicketComments]]. Будь то админ, аноним или простой пользователь выдает бесконечное "Вы должны авторизоваться, чтобы оставлять комментарии." При использовании параметра &allowGuest=`1` - выводит форму. Контексты - web, mgr, TicketUserPolicy добавлены. В чем может быть причина такого игнорирования меня как админа? :D
Заранее очень благодарен за потраченное время
Добрый день. Вам имеет смысл на modx.pro этот вопрос задать, они же разрабы этого. Но если не помогут, дайте знать.
Так никто и не ответил. -1 балл только за вопрос поставили :)
:))) Пришлите данные доступа в админку на почту n.lanets@modxclub.ru
Здесь был оффтопик-коммент, и был удален за оффтопность. Автор имеет право создать отдельный топик.
На самом деле с вашей проблемой все очень просто: тикетс использует проверку аутентификации пользователя в конкретном контексте (текущем).
$authenticated = !empty($this->xpdo->context) && $this->xpdo->user->isAuthenticated($this->xpdo->context->key);
А то, что вы авторизованы в админке (контекст mgr) еще не значит, что вы авторизовались в контексте web. То есть вас там как бы и нету (если проверять жестко по контексту). Я вам в чанк tpl.Tickets.comment.login прописал вызов сниппета Login, авторизуйтесь во фронте и увидите, что все у вас есть. Если вы не хотите авторизовываться и в админке и во фронте, то самое простое - написать кратчайший плагин, который в момент авторизации в админке будет делать $modx->user->addSessionContext('web'), и будет вам счастье.
Огромное спасибо за помощь. Только один вопрос у меня остался. Т.е. если у меня в Доступе контекстов для admin`а добавлено как в документации контекст: web - политика:TicketUserPolicy, то это не имеет значения? Это как раз и смущает :)
Дело тут не в тикетсах (как бы). Вы поймите, в данном случае не проверяются политики в принципе. Ведь он же не смотрит есть у вас права на что-то или нет, он просто смотрит авторизованы вы в этом контексте или нет. В данном случае вы авторизованы только в mgr, и просто из-за того, что он видит, что вы не авторизованы в этом контексте, он вас шлет.
К слову, я такой механизм не использую. Я просто проверяю права. Или у пользователя есть права на что-то, или их нет.
Теперь вроде понятно. И в продолжении темы просто вопрос. Пока разбирался с tickets, подключив HybridAuth попытался как в документации залогиниться через Вконтакте. Выдает ошибку OAuth-авторизации. И такое встречал уже и на других сайтах - это косяк мой, HybridAuth или что-то Вконтакте? Не в курсе?
Не в курсе. Смотрите логи (если они есть). Может вы у себя настройки ВК неверно указали. Здесь может быть все, что угодно. Но скорее всего ВК вряд ли виноват.

Добавить комментарий