Форум: "Основная";
Текущий архив: 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