Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
Анатолий_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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.046 c
15-1215091161
VingtQuatrieme
2008-07-03 17:19
2008.08.24
Начальник Чукотки ушёл.


2-1216461951
Макс77
2008-07-19 14:05
2008.08.24
TTreeView, TTreeNode


15-1215433698
DRG
2008-07-07 16:28
2008.08.24
C# или С++ с чего начать?


15-1215076787
Сергей_77
2008-07-03 13:19
2008.08.24
Поиск работы


2-1216209485
Newss
2008-07-16 15:58
2008.08.24
сохранение рисунков





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский