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

#1 5 сентября 2013 в 11:22
Подскажите где поправить функцию доступа (группам пользователей) чтобы пункт меню был не скрыт, а показывался, но доступ был закрыт? т.е. сейчас если доступ закрыт гостям — то гость пункта меню такого не видит.

Тоже самое интересует и для модулей.
#2 5 сентября 2013 в 11:47
Конкретно в самом компоненте указать список видимости.
Забыл добавить.
Само меню и все его пункты сделать видимыми для всех. Но в настройках компонента закрыть доступ гостям.
#3 5 сентября 2013 в 11:54
тут некоторая сложность. пункт меню — категория доски объявлений. Отдельно для категорий нет возможности настройки доступа
#4 6 сентября 2013 в 05:40
в меню разобрался.
в файле modules/mod_menu/module.php меняем
  1. if ($row['menu'] == $menu && $inCore->checkContentAccess($row['access_list']) && $row['published'])
на
  1. if ($row['menu'] == $menu && $row['published'])
#5 6 сентября 2013 в 05:53
теперь осталось по модулю.
где хранится весь код отвечающий за доступ модуля в зависимости от группы?
#6 6 сентября 2013 в 14:48
Все в core/cms.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. }
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.