Главная страница
    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.047 c
15-1215534864
Dreamse
2008-07-08 20:34
2008.08.24
Компиляция драйвера на Delphi


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


15-1215265054
NaRuTo
2008-07-05 17:37
2008.08.24
IRC


1-1197265455
Vladimir888
2007-12-10 08:44
2008.08.24
Получить значки дисководов


2-1216724523
Dimich1978
2008-07-22 15:02
2008.08.24
Замена, распечатка в Richedit





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский