Главная страница
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.024 c
15-1215167631
Elster
2008-07-04 14:33
2008.08.24
Ищем программиста Delphi/Oracle. Киев


2-1216296405
Igor_34
2008-07-17 16:06
2008.08.24
Имя компьютера


13-1120547588
Игорь Шевченко
2005-07-05 11:13
2008.08.24
Социологический опрос: нужен ли отдельный форум по .Net ?


15-1215011005
alex-drob
2008-07-02 19:03
2008.08.24
Apache не виден из интернета


15-1215103763
turbouser
2008-07-03 20:49
2008.08.24
Vista.