![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Видимость окон для пользователей [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 группы. Сответстственно потребуется еще одна таблица, указывающая какие пользователи к каким группам относятся.