Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Формирование меню в зависимости от пользователя


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


Автор: ТоляМБА 1.3.2007, 13:31
Создай таблицу с правами определенных пользователей на определнные Items в меню и в зависмости True или False делай пункты меню Visible или Enabled true/false. Совет - если у тебя много пользователей и у них могут быть одинаковые права, например у всех бухгалтеров одни, у всех менеджеров другие лучше создать группы, включать в них пользователей и раздавать права на целые группы, оставляя возможность определенным пользователям выбирать индивидуальные настройки.

Автор: DimW 1.3.2007, 14:17
даталогическа модель выглядит так:

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

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

Код

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

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

Автор: MouseHouse 1.3.2007, 15:26
ok спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)