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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.012 c
3-29723
Шоломицкий
2003-02-19 09:59
2003.03.10
Соединение с sql


1-29845
esa
2003-02-28 12:52
2003.03.10
Конвертор из DOC в HTML


7-30154
SeF
2003-01-13 03:39
2003.03.10
завершение процесса


1-29798
Adolf
2003-02-27 17:53
2003.03.10
Граница


14-30132
michael_b
2003-02-23 20:54
2003.03.10
Что делают на подобных сайтах профессионалы???