Перейти к содержимому


Режим эксперта для правил


Сообщений в теме: 2

#1 nevmerzhitsky

    Участник

  • Пользователи
  • PipPip
  • 24 сообщений
  • Пол:Мужчина

Отправлено 21 Август 2014 - 01:39

Изучая дамп, наткнулся на таблицу f_acc_rules, где виден сериализованный PHP-код логического условия срабатывания правила. Его изменение администратором через интерфейс КБ представлено лишь в виде набора выпадающих списков.
А хочется иметь возможность перейти в режим мастера и править PHP-код условий! Тогда появится возможность подключать сторонние файлы и делать проверку доступа сколь угодно глубокой. Этого очень не хватает в моей конфигурации! Могу привести пример задачи ограничения доступа, решение которой в текущей системе порождает множество кропотливой унылой работы, которая ещё и сыпется при малейшем изменении бизнес-требований и многое приходится переделывать.

Скрин дампа: Прикрепленное изображение: cb_rules.png

Сообщение отредактировал nevmerzhitsky: 21 Август 2014 - 01:41


#2 lodion

    Участник

  • Пользователи
  • PipPip
  • 18 сообщений
  • Пол:Мужчина
  • Город:Уфа
  • Интересы:Программирование, развитие...

Отправлено 29 Май 2015 - 08:24

Подписываюсь. Очень хотелось бы иметь на вооружении режим эксперта в правилах.
Надеюсь увидеть нововведение ДО версии 3.0. Да и вообще как можно скорее.
А то приходится создавать правила, а condition_php руками писать =(

#3 europo1

    Новичок

  • Пользователи
  • Pip
  • 2 сообщений

Отправлено 12 Декабрь 2015 - 20:51

Создаем поле типа "Текст"-многострочное (например "Ознакомлен")
туда накапливаем Пользователей -> _1,_30,_24, (как вариант _1-Ознакомлен_30-Запрещен_24-Ознакомлен)
1. "Вычислениями" (см. фрагмент текста программы ниже)
2. Доп.действия "Ознакомлен пользователь" - имеющие на это право (см. текст программы ниже):
3. Вручную на худой случай в режиме редактирования

$aaaa="_".$user['id'].",";
if(strpos($line['Ознакомлен'],$aaaa)!==false) else $line['Ознакомлен'] = $line['Ознакомлен']."_".$user['id'].",";
где "_" - маркер начала номера;
"," - маркер конца номера (кстати можно например и "-Ознакомлен", "-Запрещен", "-Доступ" и.т.п)

Теперь создаем для этого поля "Ознакомлен" работающий текстовый фильтр в режиме эксперта:
`Ознакомлен` like '%{current}%'

НО, НО, НО теперь главное как к такому работающему фильтру присобачить например:
`Ознакомлен` like '%_%'.'%{current}%'.'%,%' - для примера _1,_30, или
`Ознакомлен` like '%_%'.'%{current}%'-Ознакомлен'%,%' - для примера _1-Ознакомлен_30-Запрещен_24-Ознакомлен

Очень нужный такой элемент фильтра, т.к. позволяет привязать запись одновременно к пользователю и хронологии (и избранные действия) через "Вычисления" или "Доп. действия".
Такой фильтр уже есть в "Расширенный поиск" - Поиск: поле "Ознакомлен" содержит "_30-Ознакомлен" для id=30 пользователя
или Поиск: поле "Ознакомлен" содержит "-Ознакомлен" - для всех пользователей
который можно записать и в "Шаблон поиска" но здесь _30 только ручной способ создания.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных