Форум: "Прочее";
Текущий архив: 2009.09.06;
Скачать: [xml.tar.bz2];
ВнизАдминистрирование Найти похожие ветки
← →
Гость (2009-07-08 13:01) [0]Здравствуйте. Пытаюсь сделать администрирование для своей небольшой системы. Вроде бы придумал реализацию, но столкнулся с множеством проблем т.к в первые такое делаю и в больших проектах раньше не участвовал. В общем нужно уметь раздавать права на все режимы определенным юзерам.
Создал списки пользователей, ролей, режимов, доступов, привязок и т.п.
В проекте:
Все формы унаследовал от одной формы, где в методе OnShow
при открытии какой либо формы, я беру наименование формы (например TfrmAddSprav), получаю для него код доступа, например (Ограниченный)
и блокирую определенные кнопки на форме. В таблицах, в списке режимов у меня наименования всех использующихся в проекте форм.
Вроде работало, до тех пор пока не столкнулся с тем, что одна и та же форма может быть использована множество раз. Т.е если она запущена из формы TFrmMain то у нее должен быть другой доступ, если запущена из например TFrmLoadSprav то другой.
Подскажите как в таких случаях поступают? Или полезную ссылку на статью по разработке администрирования. Спасибо.
← →
clickmaker © (2009-07-08 13:16) [1]> Т.е если она запущена из формы TFrmMain то у нее должен
> быть другой доступ, если запущена из например TFrmLoadSprav
> то другой.
ну несколько шаблонов доступа значит надо сделать.
если таблица доступа имеет вид
FormName AccessLevel,
то добавить туда ParentFormName
← →
Гость (2009-07-08 13:25) [2]
>
> ну несколько шаблонов доступа значит надо сделать.
> если таблица доступа имеет вид
> FormName AccessLevel,
> то добавить туда ParentFormName
Цепочка может быть длинной, например:
TFrmMain -> TFrmGlobal -> TfrmLoad (Доступ ограниченный)
TFrmMain -> TfrmLoad (Доступ полный)
TFrmMain -> TFrmGlobal -> TfrmTest -> TfrmLoad (Доступ ограниченный)
То есть мне при открытии форм, нужно будет запоминать всю цепочку вызвавших родителей?
← →
clickmaker © (2009-07-08 13:35) [3]> нужно будет запоминать всю цепочку
нет
FormName - ParentFormName - AccessLevel
TfrmLoad - TFrmMain - Доступ полный
TfrmLoad - TFrmGlobal - Доступ ограниченный
TfrmLoad - TfrmTest - Доступ ограниченный
← →
clickmaker © (2009-07-08 13:38) [4]а с чем, кстати, связана такая фишка?
"если она запущена из формы TFrmMain то у нее должен быть другой доступ, если запущена из например TFrmLoadSprav то другой"
← →
brother © (2009-07-08 13:42) [5]однако, организация доступа не правильно реализована...
программа запускается от пользователя?
зачем для одной проги при показе разный уровень доступа до разных форм? (вообще не понял)
← →
Гость (2009-07-08 14:13) [6]
> "если она запущена из формы TFrmMain то у нее должен быть
> другой доступ, если запущена из например TFrmLoadSprav то
> другой"
Для того, что бы не создавать отдельную форму(режим), потому что в ней на 2 Edit-а больше. Я программно перерисовываю формы, и режим становится совсем другим, соответственно с другим доступом и с вызовом из другой цепочки.
← →
clickmaker © (2009-07-08 14:23) [7]> [6] Гость (08.07.09 14:13)
а почему бы не передавать режим как параметр при показе формы? Ведь известно на этапе компиляции, что если форму вызвали из TFrmMain, на ней должно быть 12 эдитов, а если из TFrmLoadSprav , то 10?
← →
Anatoly Podgoretsky © (2009-07-08 14:26) [8]> clickmaker (08.07.2009 14:23:07) [7]
А можно количество не менять, а заполнить звездочками и режим RO
← →
clickmaker © (2009-07-08 14:33) [9]судя по всему, речь идет о некоем контексте, в котором вызвана форма. В данном случае этот контекст называется "цепочкой вызовов". Но можно его оформить как отдельный объект, в простейшем случае - целое число с предопределенным набором значений.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.09.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c