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

Вниз

Права доступа к ...   Найти похожие ветки 

 
Silver_   (2003-02-18 16:01) [0]

Ребята кто занимался ограничением Прав пользователей в своеи проге.
- Обьекты
- MenuItems
- Columns (DBGrid)
- TabSeet
...
- Visible
- ReadOnly
- Enabled
- ...

Посоветуйте метод как ето лучше реализовать. Если кините в мена кодом не ОБИЖУСЬ :о).

P.S. очень нада

заранее огромное ПАСИБА


 
Silver_   (2003-02-18 16:16) [1]

Аууууууу!!!!
это же так актуально
не верю что никто этим не страдал

или усе жмутььься хась ???

ну плз же!!!


 
Silver_   (2003-02-18 16:30) [2]

А че в наше время все пользователи проги имеют равные права доступа иль как :(


 
Anatoly Podgoretsky   (2003-02-18 16:37) [3]

Вопрос расплывчатый


 
Smithson   (2003-02-18 16:43) [4]

Создаешь таблицу, в которой пишешь права пользователей (в удобном тебе формате), все запросы к данным делаешь через несколько (2-3) сових процедур и в них проверяешь, есть ли права на такой запрос...
C меню - сложнее, но можно на входе в программу убирать неразрешенные пункты меню.


 
Silver_   (2003-02-18 16:45) [5]

Anatoly Podgoretsky ©

вот ты лично как делаешь чтоб (Админ) в твоей проге
давал права на просмотра неких колонок в гриде отдельным юзам
другим редактировать некие данные (колонки)

енаблит те иль иные обьекты для одних юзов а для другх нет
...
я же вставил:


> - Обьекты
> - MenuItems
> - Columns (DBGrid)
> - TabSeet> - Visible
> - ...

> - Visible
> - ReadOnly
> - Enabled
> - ...


 
Silver_   (2003-02-18 16:54) [6]

Smithson ©
- так на входе и делаю
- в базе все понятно работает
- правда трабл с массивами

- но хотелось б
1.правый клик на обьект
2.Properties
3.меняем свойства
4.знаем каой обьект, пишем в базу

но как ???

1.в меню правый клик???
2.не писать же каждому обьекту PopUp

как централизовать ето дело???
- ведь прогу пишу не я один
- некоторые модули компилены вже :(

так как зэ ???????????

здемссссс!


 
Anatoly Podgoretsky   (2003-02-18 16:58) [7]

Я запрещаю, если есть свойство Enabled
Для администировования есть отдельный пункт в меню, со своим диалогом


 
Silver_   (2003-02-18 17:00) [8]

Anatoly Podgoretsky ©

поясни


 
DarkGreen   (2003-02-18 17:32) [9]

Используй Action"ы, и контейнеры Action"ов, там можно запрещать или разрешать действия, а также навешивать эти действия на различные компоненты


 
Anatoly Podgoretsky   (2003-02-18 19:24) [10]

Silver_ (18.02.03 17:00)
Item.Enabled := flag in righs;


 
Silver_   (2003-02-20 15:29) [11]


> Anatoly Podgoretsky © (18.02.03 16:37)
> Вопрос расплывчатый


Так пойдет: :о)

усе конечно интересно но вопрос не в том на что и какие права давать
где эти данные хранить, и.т.д.
типа:
Action.Enabled:=False; // True;

MyObject.ReadOnly:=False; // True;
MyObject.Enabled:=False; // True;
MyObject.Visible:=False; // True;
...

а как в интерфейсе сделать так щоб касиво было
не заставишь же ты Админа писать нужную инфу РУЧКАМИ в базу,
и щоб централизованно было (сделать компонент типа ApplicationEvents)
1. - ловит правый клик
2. - узнаёнт какому (Форм.Обьекту) принадлежит клик
3. - показывает ПопапМеню есль нету, есль есть
4. добавляет соответствующий пункт...
5. - в соотвтствующем диалоге редактируем свойства (Форм.Обьекта)
6. - пишим изменения в базу
7. - при логине читаем из базы...


Пример: Security WinNT/2k
а тут в место папок и фаилов обьекты
- Обьекты
- MenuItems
- Columns (DBGrid)
- TabSeet
... т.е. - (TComponent, TControl, TMenuItem, TTabSheet,...)


P.S. Для мэнья, БОЛШОЙ проблЭм, понимаш, это пункт ( 2. ) :(((


 
Anatoly Podgoretsky   (2003-02-20 15:35) [12]

где эти данные хранить, и.т.д.
Я храню ы базе, но это не существенно.

не заставишь же ты Админа писать нужную инфу РУЧКАМИ в базу

Заставляю, но не ручками, а нажатием клавиши ОК

Остальное тебе еще долго будет не по зубам, для начала научись простому, может мотом On Fly сможешь реализоватью


 
Silver_   (2003-02-20 15:48) [13]


> Остальное тебе еще долго будет не по зубам


пункт № 2. не получается тока когда открыто окошечко меню,
в остально тьфу-тьфу, есль с етим помог бы был бы благодарен


 
Silver_   (2003-02-20 16:17) [14]

а можа кто скажет как ловить пункт меню который становится синим
тожа было бы неплохо


 
Anatoly Podgoretsky   (2003-02-20 16:34) [15]

Пункт два, в обработчик OnClick передается адрес объекта, в данном случае пункт меню.


 
Silver_   (2003-02-20 16:43) [16]

так вот имно кочу

> щоб централизованно было


каждому пункту ставить OnClick а попапы могут быть и не в моих формах как им определить OnClick и не трогать собственный

если по OnClick то почти со всеми обьектами мона сдружиться
но ето зэ такой геморрой звеняюсь за словцо.


 
Anatoly Podgoretsky   (2003-02-20 16:47) [17]

Естесвенно со всеми у поторых возможе клик


 
Silver_   (2003-02-20 16:52) [18]

так вот имно вопрос в том чтобы централизованно
1. ловить клики
2. Определять на ком кликнул (трабл с менюшками)
3. ну а ..., а даллее мы умеем


 
Anatoly Podgoretsky   (2003-02-20 16:57) [19]

Ну так делай централизованно
1. Обработчик
2. Sender
3. ну и


 
oomneeq   (2003-02-20 18:34) [20]

Хочешь централизовано делай череза Action"ы
Подели логически на ActionList"ы
А в тамошних OnUpdate делай какие надо проверки и выставляй
Энейблы.
Action автоматически будет дизэйблить-енэйблить ВСЕ повязаные с ним контролы будь то меню айтем, кнопка и т.д.
А вот саму повязку хорошо продумай. ее ведь можно и динамически
дделать
такой простор для творчества, а ты завис на "синем" пункте меню :)
не тормози, сникерсни... :)


 
Silver_   (2003-02-21 15:40) [21]

казалось на русском пишу, но почему-то понимають не так :о(
Допустим бос (забывчатый очень :) ) хранит инфу про своих любовниц :)
знать о существовании такой инфы имеет право знать тока ...(юзер - член группы прав)

Описание ситуации:
ссылка на эту форму (с инфой) стоит в пункте меню на TActionMenuBar и на TActionToolBar
сам TАction хранится в TActionManager

Действия для определения прав (группе(ам) ):
1. Видет пункт меню (или ссылку на TActionToolBar)
2. Правый клик
3. Попап с пунктом Properties
4. Выбираем
а) права тока этому обьекту
б) права всему TAction
5. Форма редактирования прав (группам)
6. ...


> Подели логически на ActionList"ы
> А в тамошних OnUpdate делай какие надо проверки и выставляй
> Энейблы.


потом делать список этих ActionList чтоб им свойства редактировать
а если бос одному TAction из TActionList кочет независимые от других
TAction из этой жэ TActionList права задать так че перегруппировать прикажешь,
а если сегодня так завтра эдак че вечно в код лазить для логической перегруппировки :((


> такой простор для творчества, а ты завис на "синем" пункте меню :)


нада знать на ком ты кликнул иль тебе это не нуна

Работаем далее :)

Текущие проблемы:
1. для определения пункта меню сказали лови WM_MENUSELECT
- работает тока с TMainMenu мне нуна с TActionMenuBar
2. чего ловить чтоб знать на кого наехали в TActionToolBar


 
Silver_   (2003-02-22 17:45) [22]


> Работаем далее :)


неужели напугали ети безобидные лова
ладно тогда

...думаем еще...


 
oomneeq   (2003-02-23 02:09) [23]

>Ребята кто занимался ограничением Прав пользователей в своеи проге.
..
>Действия для определения прав (группе(ам) ):
>1. Видет пункт меню (или ссылку на TActionToolBar)
>2. Правый клик
>3. Попап с пунктом Properties
>4. Выбираем
> а) права тока этому обьекту
> б) права всему TAction
..

>потом делать список этих ActionList чтоб им свойства редактировать


Дорогой силвер_, ты бы сразу уточнял,
тебе нужно ограничение прав в своей проге или программа для ограничения прав в своей проге? (1)


хотя и в том и в другом случае сначала продумывается набор экшенов.
(а это на самом деле не так уж и тривиально)
следующим этапом увязка экшенов с контролами

>> Подели логически на ActionList"ы
>> А в тамошних OnUpdate делай какие надо проверки и выставляй
>> Энейблы.

>потом делать список этих ActionList чтоб им свойства редактировать
>а если бос одному TAction из TActionList кочет независимые от других

А что я опять не пойму, твой босс знает что такое TAction,TActionList ?!
[offtopic]ты вроде говорил что он любовниц каталогизирует. :)[/offtopic]

>TAction из этой жэ TActionList права задать так че перегруппировать прикажешь,
>а если сегодня так завтра эдак че вечно в код лазить для логической перегруппировки :((

ответ на этот вопрос как я понимаю слегка зависит от ответа на мой (1)
Но одному тебе известно, насколько хитро ты собрался ветвить свои зависимости прав от прав
ты на это даже не намекал.

В своей рекомендации тебе я исходил из простого :
список действий по вертикали
список юзеров по горизонтали
внутри плюсы и минусы.
(где и в какой форме весь этот морской бой хранится - тебе я думаю хватит фантазии решить)

в Onupdate всех акшнлистов сканируется эта таблица на предмет конкретного юзера.
и соответственно энаблятся \ дизаблятся экшены

>> такой простор для творчества, а ты завис на "синем" пункте меню :)

>нада знать на ком ты кликнул иль тебе это не нуна
да зачем тебе знать?
если ты "правильный" юзер - дадено тебе будет нажать

ПРАВА РАЗДАЮТСЯ ДО ТОГО КАК ДЕЛАЮТСЯ ДЕЙСТВИЯ, А НЕ ВО ВРЕМЯ ТОГО
[offtopic]или еще хуже, после того - так нам никогда правовое государство не построить:) [/offtopic]

Эпилог
такой подход я тебе не навязываю, я его применял, он меня устраивает.
надо мне будет его покритиковать - я сам попрошу, ОК?

Желаю творческих узбеков!


 
Silver_   (2003-02-24 11:36) [24]


> надо мне будет его покритиковать - я сам попрошу, ОК?


и вовсе не критикую просто хотел пояснить думая что не правильно поняли


> А что я опять не пойму, твой босс знает что такое TAction,TActionList
> ?!


само сабой и понятия не имеет
может неудачно выразился
TAction - ссылка на действие (вызаваемая из меню, ТоолБутона,...)
( бос видит как пункт меню, ТоолБутон,...) - я как TAction TActionList - группа TAction


> тебе нужно ограничение прав в своей проге или программа
> для ограничения прав в своей проге?


в своей проге тока пишу не один (т.е. в мою прогу добавляю
чужие модули (не очень корошо чтоб все участники проекта были в курсе как раздаются права, иные подробности о доступе...), да и вобще если мона ( пользователем с правами администратора) в MainForm отлавливать обьекты по всему проекту и ставить права, то почему бы не применить) :)

плюс к етому хотелось бы сделать компонент типа (TApplicationEvents) чтоб... :))


> ПРАВА РАЗДАЮТСЯ ДО ТОГО КАК ДЕЛАЮТСЯ ДЕЙСТВИЯ, А НЕ ВО ВРЕМЯ
> ТОГО


само сабой Админ ставит для юзеру некие ограничения
при логине у юзера будут данные ограничения
но ни как не во время работы юзера :)

в WinNT,...
1.правый клик по папке
2. Properties, Security
...Думаешь ОС не в курсе куда кликнул (щоб знать какой имно папке ставить ограничения то)
... А у нас вместо папок компоненты

ждемс ещё идей :))
вопрос то актуальный и всем необходимый :)))


 
oomneeq   (2003-02-24 12:11) [25]

>...Думаешь ОС не в курсе куда кликнул
Ну я гляжу, сильно это тебе надо! :)

Начиная кажись с D6 (уD7 точно есть) у TAction есть
property ActionComponent
по которому можно узнать, кто конкретно эту акцию затеял

Надеюсь, поможет тебе.


 
Silver_   (2003-02-26 11:29) [26]


> >...Думаешь ОС не в курсе куда кликнул
> Ну я гляжу, сильно это тебе надо! :)

это касается примера с WinNT

а за property ActionComponent пасиба
нет времени особо капаться от того и спрашиваю тута
(на данный момент у меня "права" работают нормально, только вот в базу приходится писать мене причем вручную, кочу поправить это недоразумение)

P.S. Тоже надеюсь



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

Форум: "Основная";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.009 c
3-29746
Wowa-K
2003-02-19 13:38
2003.03.10
StoredProc


3-29701
UnDISCOvery
2003-02-18 13:42
2003.03.10
IBEvents. Как его юзать ?


1-29867
hooch
2003-02-26 09:21
2003.03.10
scroll


14-30044
Vladimir
2003-02-20 11:02
2003.03.10
delphi обфускатор


4-30179
viper
2003-01-20 21:27
2003.03.10
Запущено ли приложение...





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