Jump to content
SpravkaCRM.ru - Ваш справочник по CRM

Search the Community

Showing results for tags 'role'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

  • Перевод официального мануала SuiteCRM
  • Обучающие статьи о SuiteCRM
    • Для программиста
  • Доводим напильником SuiteCRM
  • Расширения для SuiteCRM
    • Патчи с исправлениями ошибок в SuiteCRM
  • Программист за работой
  • Диалоги о SuiteCRM

Categories

  • Records
  • CRM-система для застройщика
    • Manual
  • CRM-система для кредитного брокера
  • CRM for Programmer
  • CRM-система для салонов красоты
    • Руководство

Forums

  • SugarCRM/SuiteCRM
    • Все вопросы пока сюда
    • Заметки по ходу разработки
    • Нам пишут
    • Работа
  • CRMHosting.io
    • SuiteCRM последней версии
    • CRM для продажи пиццы/суши/ролл
    • CRM для Застройщика
    • CRM для Кредитного брокера
    • CRM для Салонов красоты
    • CRM для Разработчика ПО / Веб-студии
  • Другие CRM-системы
    • AmoCRM
    • Bitrix24
    • BPM Online
    • Прочие CRM
  • Всего по немногу
    • Программисту
    • Arduino
    • Без систематики

Categories

  • Модули SuiteCRM/SuiteCRM
  • Manuals

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 1 result

  1. В ходе разработки системы появилась не обходимость сделать логику, кторую не получится реализовать стандартным функционалом ролей. В данном случае было необходимо, чтоб контрагентов со статусом "архив" видели только администраторы системы. Для реализации данной логики нам понадобится файл modules/Accounts/Account.php Ищем в нём метод create_new_list_query, если не находим то создаём. В ней мы ограничиваем доступ к записям в listview модуля Контрагенты. Фактически дописываем допольнительное условие в запрос по которому строится список в listview. function create_new_list_query($order_by, $where,$filter=array(),$params=array(), $show_deleted = 0,$join_type='', $return_array = false,$parentbean=null, $singleSelect = false) { global $current_user; $ret_array = parent::create_new_list_query($order_by, $where, $filter, $params, $show_deleted, $join_type, $return_array, $parentbean, $singleSelect); //если текущий пользовательне админ, то запрещам просмотр записей со статусом "в архиве" if(!$current_user->is_admin){ $ret_array['where'] .= " AND accounts.contact_status <> 'archive'"; } if($return_array) { return $ret_array; } return $ret_array['select'] . $ret_array['from'] . $ret_array['where']. $ret_array['order_by']; } Далее нам необходимо ограничить доступ для просмотра и редактирования архивных контрагентов. Для этого воспользуемся методом ACLAccess (так же ищем и дописываем код или создаём) Здесь для редактирования, просмотра и удаления доступ запрещён. А сохранение закомментировано, для того чтоб обычный пользователь имел возможность поменять статус контрагента с какого-то значения на "архив" и сохранить. function ACLAccess($view, $is_owner='not_set', $in_group='not_set'){ global $current_user; $view = strtolower($view); switch($view){ case 'edit': case 'detail': // case 'save': case 'editview': case 'delete': if(!empty($this->contact_status) && $this->contact_status == "archive" && !$current_user->is_admin){ return false; } } return parent::ACLAccess($view,$is_owner,$in_group); }
×
×
  • Create New...