Форум: "Основная";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
ВнизИнтерфейс: построитель выражений Найти похожие ветки
← →
Walker © (2005-10-27 13:17) [0]Попытаюсь описать проблему абстрактно.
Есть программа (или комплекс программ). В этой программе:
1. Есть список зарегистрированных пользователей, которые входят в ту, или иную группу.
2. Есть список объектов, над которыми можно производить некие действия.
3. Есть ряд других критериев.
Для того, чтобы пользователь смог проделать на объектом какое-либо действие, должно выполниться определённое условие, назовём его РАЗРЕШЕНИЕ. Если РАЗРЕШЕНИЕ для конкретного пользователя+объекта+действия_над_объектом возращает TRUE - то действие_над_объектом можно выполнить.
На данный момент, эти РАЗРЕШЕНИЯ прописываются вручную, программистом, или продвинутым пользователем, и хранятся в базе данных в виде текстовых строк.
(Например в таком виде:объект1.действие1 = (тек_пользователь in [группа1, группа2] && объект1.состояние == состояние1) || тек_пользователь == группаАдминистраторов
что расшифровывается так:
над объектом1 можно произвести действие1 в том случае, если тек_пользователь входит в группу1 или в группу2, и при этом объект1 находится в состоянии1, либо же действие1 можно произвести если текущий пользователь является администратором.
Теперь собственно проблема. Не хочется изобретать велосипед, может кто сталкивался, может кто подскажет где поискать.
Нужно предоставить пользователю инструмент, визуальный инструмет, чтобы он смог строить РАЗРЕШЕНИЯ с помощью некоего мастера, накликав мышкой правила и их взаимозависимость. Некий инструмент, типа построителя выражений в Access"е, когда пользователь на экране видит названия таблиц и задаёт связи между ними, а в результате получается SQL-запрос.
Спасибо за внимание
← →
Walker © (2005-10-27 16:08) [1]Другими словами, вопрос можно свести к селдующему:
Как написать свой построитель выражений?
← →
Kolan © (2005-10-27 19:27) [2]что расшифровывается так:
над объектом1 можно произвести действие1 в том случае, если тек_пользователь входит в группу1 или в группу2, и при этом объект1 находится в состоянии1, либо же действие1 можно произвести если текущий пользователь является администратором.
Кажется это конечный автомат, точно незнаю как правильно. Вообщем строиш граф состояний...
← →
Walker © (2005-10-27 19:43) [3]Проблема не в том как расшифровать строку, а как её построить. Точнее не просто построить, а дать пользовотелю интерфейс-построитель.
Чуствуется, что есть уникальные решения, которые адаптируются под конкретную задачу, просто не хочется терять время на создание "велосипеда".
← →
Суслик © (2005-10-27 21:03) [4]Не думаю, что есть универсальные решение. Нужно будет писать самому...
Не скажу ничего полезного, но все же...
Ну типа такого:
1. Создать хранилище с метаданными - т.е. описанием того, к чему можно дать доступ
2. Создать читатель и преобразователь данного хранилища в некую структуру классов.
3. Написать gui, которое понимает структуру и выводит диалоги.....
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.047 c