powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Разграничение доступа к пунктам меню Visual FoxPro
6 сообщений из 6, страница 1 из 1
Разграничение доступа к пунктам меню Visual FoxPro
    #38519435
skvair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Передо мной стоит задача написать подпрограмму, в которой администратор будет разграничивать доступ к пунктам меню.
Немного фактов:
1. Как такового пользователя не существует. Есть только пароль. По нему и идентифицируется вошедший.
2. Пользователи никак не объединены в группы.
3. Следовательно для каждого пароля свои собственные ограничения.
Я предполагаю пойти следующим путем:
Создать форму на которой будут отображаться все пункты и подпункты меню. Когда администратор будет добавлять новый пароль, он будет проставлять галочки у тех пунктов и подпунктов, которые будут доступны для данного пароля. Для отображения планирую использовать SELECT * FROM proizv.mnx (proizv.mnx - это файл меню) Следовательно, когда будут добавляться новые пункты меню, они автоматически будут добавляться и на форму. Вопрос стоит в следующем, каким образом мне вводить ограничения программно, т.е. администратор поставит галочку, допустим, что пункт "ФАЙЛ" доступен, подпункт "Новый" доступен, а подпункт "Экспортировать" недоступен.
Я посмотрел, что существует команда SET SKIP OF. Но не могу представить каким образом для множества паролей, а их около 80 ввести различные ограничения. Получается, что каждый новый пароль - это новое ограничения для пункта или подпункта меню. Т.е. текст SKIP FOR par1=3 or parol1='мода' OR parol1='vjlf' постоянно должен как-то увеличиваться. Посоветуйте, как можно это решить.
Спасибо. Надеюсь все ясно расписал.
...
Рейтинг: 0 / 0
Разграничение доступа к пунктам меню Visual FoxPro
    #38519487
skvair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Упрощу вопрос. Как программно изменить файл *.mnx
Допустим внести изменения в SKIPFOR
...
Рейтинг: 0 / 0
Разграничение доступа к пунктам меню Visual FoxPro
    #38519518
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем вшивать в код данные? Во всех книжках по проектированию написано что делать этого нельзя. Иначе придется:
1. Давать админу доступ к исходникам.
2. После каждого изменения перекомпилировать и обновлять EXE

По нормальному делается так:
1. заводится отдельная таблица с правами (Пункт меню, Пароль, Разрешение)
в SKIP ставится вызов своей функции с кодом пункта меню в параметрах
Код: sql
1.
... SKIP FOR CheckRight('ID пункта меню')



Дальше админ правит таблицу с правами, а функция CheckRight() возвращает .T./.F. в соответствии с этой таблицей.


PS Почитай что-нибудь про классические подходы разграничения доступа. А то твой админ будет вспоминать тебя недобрым матерным словом протыкивая галки каждому из 80-ти пользователей (при 20 пунктах меню имеем 1600 галок)
...
Рейтинг: 0 / 0
Разграничение доступа к пунктам меню Visual FoxPro
    #38519525
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открыть меню как таблицу и изменить нужное поле
Код: sql
1.
2.
3.
4.
SELECT 0
USE menu.mnx
REPLACE ALL skipfor WITH ".t."
USE
...
Рейтинг: 0 / 0
Разграничение доступа к пунктам меню Visual FoxPro
    #38519560
skvair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не даст он так изменять)
...
Рейтинг: 0 / 0
Разграничение доступа к пунктам меню Visual FoxPro
    #38519698
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMОткрыть меню как таблицу и изменить нужное поле
Код: sql
1.
2.
3.
4.
SELECT 0
USE menu.mnx
REPLACE ALL skipfor WITH ".t."
USE


Бессмысленно. Файлы MNX, MNT - это не само меню, а всего-лишь предварительный макет меню. В рабочем приложении он не используется. Никак.

Окончательное (рабочее) меню, по сути, это обычный файл PRG, только с измененным разрешением (MPR, MPX). Этот файл формируется при генерации меню из макета. Пункт меню Generate.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Разграничение доступа к пунктам меню Visual FoxPro
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]