Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Видимость окон для пользователей [D6, MSSQL]


Jaxtor ©   (2004-08-12 14:55:00) 

Добрый день!

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

Я создал следующую структуру :

Таблица Permissions
-PermissionID int
-UserID int
-WindowID int
-ActionID int

Таблица Windows (древовидная структура)
-WindowID int
-Window int
-ClassName varchar(255)

Таблица Actions
-ActionID int
-WindowID int
-Caption varchar(255)

Таблица Users (древовидная структура)
-UserID int
-User int
-Name varchar(255)


Ega23   (2004-08-12 15:23:00) [1]

Как бы я строил:

ТаблицаЮзеров                      
     |
Таблица ГруппЮзеров                   Таблица Возможных Действий
               \                          /
              Сводная таблица прав групп юзеров    


Jaxtor   (2004-08-12 15:22:00) [2]

>stone ©   (12.08.04 15:19) [8]
Ладно, попробую через таблицу Groups. Спасибо!


stone   (2004-08-12 15:19:00) [3]


> Jaxtor ©   (12.08.04 15:13)


> Мне кажется создавать таблицы для групп не надо, вся структура
> уже есть:
>
> Jaxtor ©   (12.08.04 14:55)  
> ...
> Таблица Users (древовидная структура)
> -UserID int
> -User int
> -Name varchar(255)
>
> User - это ID группы!

ИМХО, дерево здесь не самое лучшее решение...


Jaxtor   (2004-08-12 15:13:00) [4]

>stone ©   (12.08.04 15:00) [1]
Мне кажется создавать таблицы для групп не надо, вся структура уже есть:

Jaxtor ©   (12.08.04 14:55)  
...
Таблица Users (древовидная структура)
-UserID int
-User int
-Name varchar(255)

User - это ID группы!


Ega23   (2004-08-12 15:12:00) [5]

Может хранить в базе Tag окна или управляющего элемента?

Зачем окна-то? При коннекте считываешь те операции, что разрешены юзеру. После этого enable/disable соответствующим экшенам. И всё.
Конечно, это когда формы через action вызываются :о)


Jaxtor   (2004-08-12 15:04:00) [6]

Правильно, все. Может хранить в базе Tag окна или управляющего элемента?


Ega23   (2004-08-12 15:03:00) [7]

Создать таблицу "группы", а в Permissions помещать не UserID, а ID группы. Сответстственно потребуется еще одна таблица, указывающая какие пользователи к каким группам относятся.

Да, можно и так.


Ega23   (2004-08-12 15:02:00) [8]

Если ты ActionList используешь, то окошки не нужны. У меня всё на enable\disable Actions построена.
Для настройки:
Таблица Операций Opers:
OperID int, OperName varchar(), ...
Таблица Users
UserID, UserName1, UserName2, UserName3 ...
Таблица Permissions
UNID int,
UserID int FK_Users,
OperID int FK_Opers


stone   (2004-08-12 15:00:00) [9]


> Jaxtor ©   (12.08.04 14:55)  

Создать таблицу "группы", а в Permissions помещать не UserID, а ID группы. Сответстственно потребуется еще одна таблица, указывающая какие пользователи к каким группам относятся.


stone   (2004-08-12 15:00:00) [10]


> Jaxtor ©   (12.08.04 14:55)  

Создать таблицу "группы", а в Permissions помещать не UserID, а ID группы. Сответстственно потребуется еще одна таблица, указывающая какие пользователи к каким группам относятся.


Наверх

Титульная страница Поиск, карта сайта Написать письмо