Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.24;
Скачать: CL | DM;

Вниз

Роли и привилегии   Найти похожие ветки 

 
Анатолий_1987   (2008-07-19 10:46) [0]

Добрый день! Столкнулся с такой задачей, у каждого пользователя в моем проекте должны быть привилегии, объекты на формах должны быть доступны только для определенных юзеров. Я сейчас никак не могу сообразить как это все реализовать. У меня есть таблица юзеров, есть таблица для ролей, только пока, не знаю что в ней хранить, все что пришло в голову это хранить имя объекта и имя формы на котром он расположен. Затем при Activate формы бегать по объектам формы и проверять в таблице состояние True или False для конкретного юзера. Думаю не очень хороший метод, по этому хочу узнать как поступают опытные программисты.

Для примера у меня на форме есть Кнопка Button1 - у которого событие OnClick (ShowMessage("Hello"))

Что именно этого объекта мне нужно хранить в таблице с ролями, что бы в дальнейшем я бы мог проверять включить или выключить этот объект?  

Заранее спасибо.


 
Loginov Dmitry ©   (2008-07-19 11:06) [1]

> Что именно этого объекта мне нужно хранить в таблице с ролями,
> что бы в дальнейшем я бы мог проверять включить или выключить
> этот объект?  


храни что угодно. Лишь бы тебе этого было достаточно для дальнейшей работы.
Я бы, к примеру, хранил следующим образом:

TMyForm.Button1.Enabled = ...
TMyForm.Button1.Visible = ...
TMyForm.MenuItem1.ShortCut = ....


этой информации достаточно для обращения к любому именованному объекту на форме с использованием RTTI.

Естественно, можно придумать любой другой метод, который будет по душе.


 
Анатолий_1987   (2008-07-19 11:29) [2]

Теперь ясно, спасибо.


 
Правильный$Вася   (2008-07-20 19:57) [3]

для таких целей очень подходит TAction


 
Dennis I. Komarov ©   (2008-07-21 09:20) [4]

Я бы хранил:
1. Юзеры
2. Группы (давать права на группы проще нежели каждому юзеру по отдельности)
3. Объекты
4. Таблица прав (соответствие юзеров (групп) и объектов


 
stas ©   (2008-07-21 17:10) [5]

я храню так
Поля:

роль
класс формы
имя объекта на форме
свойство объекта (Enabled,Visible)
значение

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

и с помощью этой процедуры управляю объектами


USES ...typInfo...
...
procedure SetPropertyValue(AObject:TObject;AProperty:String;AValue:Variant);
var
 pp:ppropinfo;
 s:string;
 obj:TObject;
begin

pp:=getpropinfo (AObject,AProperty);
if pp<>nil then
 case  pp.PropType^.Kind of
 tkInteger:setordprop(AObject,AProperty,strtoint(AValue));
 tkClass:
  begin
   Obj:=GetObjectProp (AObject,AProperty);
   if (obj is TStrings) then TStrings(Obj).Text:=AValue
   else  setordprop(AObject,AProperty,strtoint(AValue));
  end;
 tkString, tkLString, tkWString:setstrprop(AObject,AProperty,AValue);
 tkEnumeration:setEnumprop(AObject,AProperty,AValue);
 tkFloat:setfloatprop(AObject,AProperty,strtofloat(AValue));
 tkVariant: SetVariantProp (AObject,AProperty,strtofloat(AValue));
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2008.08.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
3-1204540359
webpauk
2008-03-03 13:32
2008.08.24
Выборка из 2 таблиц


3-1204294921
pirks
2008-02-29 17:22
2008.08.24
Перевернуть таблицу


6-1192218336
prisoner849
2007-10-12 23:45
2008.08.24
IdHTTP и Post в Indy 10 (BDS 2006)


2-1216372635
mahab
2008-07-18 13:17
2008.08.24
proxy


15-1215179495
jane
2008-07-04 17:51
2008.08.24
Не могу установить delphi 5 :(