Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формирование меню в зависимости от пользователя 
:(
    Опции темы
MouseHouse
Дата 1.3.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мышкин Дом



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.3.2006

Репутация: нет
Всего: нет



Как или какой механизм следует использовать для формирования меню(в главной и остальных формах приложения) в зависимости 
от имени пользователя программы ? 


PM MAIL   Вверх
ТоляМБА
Дата 1.3.2007, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



Создай таблицу с правами определенных пользователей на определнные Items в меню и в зависмости True или False делай пункты меню Visible или Enabled true/false. Совет - если у тебя много пользователей и у них могут быть одинаковые права, например у всех бухгалтеров одни, у всех менеджеров другие лучше создать группы, включать в них пользователей и раздавать права на целые группы, оставляя возможность определенным пользователям выбирать индивидуальные настройки.
PM   Вверх
DimW
Дата 1.3.2007, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



даталогическа модель выглядит так:

МОДУЛИ (справочник модулей проекта)
 |
 |
 *
МЕНЮ (справочник пунктов меню проекта, содержит ссылку на модуль, содержит ссылку на роли)
 *
 |
 |
РОЛИ (справочник ролей(может быть любой идентификатор), роль привязывается к пункту меню)
 |
 |
 *
ГРУППЫ (справочник групп пользователей, например группа с именем "БУХГАЛТЕРА", содержит ссылку на роль)
 |
 |
 *
ЮЗЕРЫ (справочник юзеров, содержат ссылку на группу, (предпологается что юзеры с одинаковыми должностями имеет одиковые права))
-----------------------------------------
* (звездочка) - вторичный ключ
-----------------------------------------

при такой модели данных, леггко получить список пунктов меню которые нужно сделать активными, зная модуль(идентификатор формы) и юзера.

Код

select МЕНЮ.идентификатор_пункта_меню_на_форме
  from МОДУЛИ, МЕНЮ, РОЛИ, ГРУППЫ, ЮЗЕРЫ
 where МОДУЛИ.идентификатор_модуля_на_форме = :параметр_модуля
   and МЕНЮ.МОДУЛИ_id = МОДУЛИ.id
   and ЮЗЕРЫ.идентификатор_юзера_проекта = :параметр_юзера
   and ГРУППЫ.id = ЮЗЕРЫ.ГРУППЫ_id
   and РОЛИ.id = ГРУППЫ.РОЛИ_id
   and МЕНЮ.РОЛИ_id = РОЛИ.id

------------------------------
естественно на эту модель данных нужно будет накрутить пользовательский интерфейс для легкости в управлении правами проекта.


Это сообщение отредактировал(а) DimW - 1.3.2007, 14:20
PM MAIL ICQ   Вверх
MouseHouse
Дата 1.3.2007, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мышкин Дом



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.3.2006

Репутация: нет
Всего: нет



ok спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0619 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.