Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1247281366
Дмитрий С
2009-07-11 07:02
2009.09.06
http компонент в windows


15-1246653405
Knight
2009-07-04 00:36
2009.09.06
Downloader-ы...


15-1247053069
Дуб
2009-07-08 15:37
2009.09.06
О чем собственно говорит иностранец?


15-1247137679
Пит
2009-07-09 15:07
2009.09.06
Определение названия модуля по указателю


2-1246712483
Incognito
2009-07-04 17:01
2009.09.06
Как сделать Combobox и DateTimePicker только readonly





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский