Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.06;
Скачать: CL | DM;

Вниз

Администрирование   Найти похожие ветки 

 
Гость   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
2-1246969997
Zheksonz
2009-07-07 16:33
2009.09.06
Отклик от COM порта


2-1246600084
Zheksonz
2009-07-03 09:48
2009.09.06
Помогите разобраться в преобразовании


15-1245256088
Павел Калугин
2009-06-17 20:28
2009.09.06
Ура, я инжинер.


2-1245366914
DimonS
2009-06-19 03:15
2009.09.06
Ошибка при подключении к *.xls


2-1246790733
Neket
2009-07-05 14:45
2009.09.06
ЗАпук обработчика из другой Формы.