Доступ пункта меню и модуля

 
Посетитель
small user social cms
Медаль
Сообщений: 702
Подскажите где поправить функцию доступа (группам пользователей) чтобы пункт меню был не скрыт, а показывался, но доступ был закрыт? т.е. сейчас если доступ закрыт гостям - то гость пункта меню такого не видит.

Тоже самое интересует и для модулей.
Редактировалось: 1 раз (Последний: 5 сентября 2013 в 11:23)
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1012
Конкретно в самом компоненте указать список видимости.
Забыл добавить.
Само меню и все его пункты сделать видимыми для всех. Но в настройках компонента закрыть доступ гостям.
Редактировалось: 1 раз (Последний: 5 сентября 2013 в 11:51)
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 702
тут некоторая сложность. пункт меню - категория доски объявлений. Отдельно для категорий нет возможности настройки доступа
Посетитель
small user social cms
Медаль
Сообщений: 702
в меню разобрался.
в файле modules/mod_menu/module.php меняем
Код PHP:
  1. if ($row['menu'] == $menu && $inCore->checkContentAccess($row['access_list']) && $row['published'])
на
Код PHP:
  1. if ($row['menu'] == $menu && $row['published'])
Посетитель
small user social cms
Медаль
Сообщений: 702
теперь осталось по модулю.
где хранится весь код отвечающий за доступ модуля в зависимости от группы?
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 754
Все в core/cms.php
Код PHP:
  1. * Проверяет доступ (модуля, меню) к группе пользователя
  2. * @param $access_list yaml или массив
  3. * @return bool
  4. */
  5. public static function checkContentAccess($access_list){
  6.  
  7. $inUser = cmsUser::getInstance();
  8.  
  9. // если $access_list пуста, то считаем что доступ для всех
  10. if (!$access_list) { return true; }
  11.  
  12. // администраторам всегда показываем модуль
  13. if ($inUser->is_admin) { return true; }
  14.  
  15. // можем передавать как YAML так и сформированный массив
  16. $access_list = is_array($access_list) ? $access_list : self::yamlToArray($access_list);
  17.  
  18. return in_array($inUser->group_id, $access_list);
  19.  
  20. }
Редактировалось: 1 раз (Последний: 6 сентября 2013 в 14:48)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.