|
Разграничение доступа к пунктам меню Visual FoxPro
|
|||
---|---|---|---|
#18+
Добрый день. Передо мной стоит задача написать подпрограмму, в которой администратор будет разграничивать доступ к пунктам меню. Немного фактов: 1. Как такового пользователя не существует. Есть только пароль. По нему и идентифицируется вошедший. 2. Пользователи никак не объединены в группы. 3. Следовательно для каждого пароля свои собственные ограничения. Я предполагаю пойти следующим путем: Создать форму на которой будут отображаться все пункты и подпункты меню. Когда администратор будет добавлять новый пароль, он будет проставлять галочки у тех пунктов и подпунктов, которые будут доступны для данного пароля. Для отображения планирую использовать SELECT * FROM proizv.mnx (proizv.mnx - это файл меню) Следовательно, когда будут добавляться новые пункты меню, они автоматически будут добавляться и на форму. Вопрос стоит в следующем, каким образом мне вводить ограничения программно, т.е. администратор поставит галочку, допустим, что пункт "ФАЙЛ" доступен, подпункт "Новый" доступен, а подпункт "Экспортировать" недоступен. Я посмотрел, что существует команда SET SKIP OF. Но не могу представить каким образом для множества паролей, а их около 80 ввести различные ограничения. Получается, что каждый новый пароль - это новое ограничения для пункта или подпункта меню. Т.е. текст SKIP FOR par1=3 or parol1='мода' OR parol1='vjlf' постоянно должен как-то увеличиваться. Посоветуйте, как можно это решить. Спасибо. Надеюсь все ясно расписал. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2014, 12:03 |
|
Разграничение доступа к пунктам меню Visual FoxPro
|
|||
---|---|---|---|
#18+
Упрощу вопрос. Как программно изменить файл *.mnx Допустим внести изменения в SKIPFOR ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2014, 13:51 |
|
Разграничение доступа к пунктам меню Visual FoxPro
|
|||
---|---|---|---|
#18+
Зачем вшивать в код данные? Во всех книжках по проектированию написано что делать этого нельзя. Иначе придется: 1. Давать админу доступ к исходникам. 2. После каждого изменения перекомпилировать и обновлять EXE По нормальному делается так: 1. заводится отдельная таблица с правами (Пункт меню, Пароль, Разрешение) в SKIP ставится вызов своей функции с кодом пункта меню в параметрах Код: sql 1.
Дальше админ правит таблицу с правами, а функция CheckRight() возвращает .T./.F. в соответствии с этой таблицей. PS Почитай что-нибудь про классические подходы разграничения доступа. А то твой админ будет вспоминать тебя недобрым матерным словом протыкивая галки каждому из 80-ти пользователей (при 20 пунктах меню имеем 1600 галок) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2014, 14:21 |
|
Разграничение доступа к пунктам меню Visual FoxPro
|
|||
---|---|---|---|
#18+
Открыть меню как таблицу и изменить нужное поле Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2014, 14:25 |
|
Разграничение доступа к пунктам меню Visual FoxPro
|
|||
---|---|---|---|
#18+
Не даст он так изменять) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2014, 15:26 |
|
Разграничение доступа к пунктам меню Visual FoxPro
|
|||
---|---|---|---|
#18+
AndreTMОткрыть меню как таблицу и изменить нужное поле Код: sql 1. 2. 3. 4.
Бессмысленно. Файлы MNX, MNT - это не само меню, а всего-лишь предварительный макет меню. В рабочем приложении он не используется. Никак. Окончательное (рабочее) меню, по сути, это обычный файл PRG, только с измененным разрешением (MPR, MPX). Этот файл формируется при генерации меню из макета. Пункт меню Generate. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2014, 17:42 |
|
|
start [/forum/topic.php?fid=41&fpage=35&tid=1582783]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 158ms |
0 / 0 |