2 / 2 / 2
Регистрация: 30.04.2011
Сообщений: 108
|
|||||||||||
1 | |||||||||||
Разграничение прав на уровне приложения05.08.2013, 14:47. Показов 2921. Ответов 6
Метки нет (Все метки)
Доброго времени суток!
Стоит задача - разграничить права пользователей (по группам) на уровне приложения Delphi. Решаю следующим образом: 1. В БД (Firebird 2.0) создана таблица:
Необходимо перебрать все компоненты в форме и при совпадении имени компонента в форме и таблице присвоить свойству каждого компонента (из таблицы PERMISSIONS) значение (из PERMISSIONS). Компоненты формы перебираю следующим образом:
0
|
05.08.2013, 14:47 | |
Ответы с готовыми решениями:
6
Разграничение прав в delphi Как делается разграничение прав? Разграничение прав доступа пользователей Настроить разграничение прав для БД |
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
05.08.2013, 15:05 | 2 |
Если свойство не опубликовано, то никак.
0
|
36 / 36 / 7
Регистрация: 15.01.2013
Сообщений: 161
|
|
05.08.2013, 15:27 | 3 |
PunK_HS,не до конца понял, что требуется сделать -
но для записи вспомогательной числовой информации почти у всех Delphi-компонентов есть свойство Tag.
0
|
2 / 2 / 2
Регистрация: 30.04.2011
Сообщений: 108
|
|
05.08.2013, 15:42 [ТС] | 4 |
В таблице PERMISSIONS описаны все компоненты, для которых должен проверяться доступ
Пример: имя_формы='Form_registration', имя_компонента='Button_do_something', свойство='Enabled', значение='False', id_группы=№. Необходимо каждый раз при создании формы (путем передачи имени формы, списка доступных компонентов и номера группы) проверять значение свойства в таблице PERMISSIONS. Например, если chk_box.Enabled = : True, то для этой группы этот компонент является доступным и так далее.
0
|
36 / 36 / 7
Регистрация: 15.01.2013
Сообщений: 161
|
||||||
05.08.2013, 17:29 | 5 | |||||
PunK_HS , похоже, как уже говорил mss что никак.
Как обходной вариант, если всего лишь несколько свойств у компонетов нужно менять,то можно написать функцию, например как-то так:
приводить к какому-то определенному типу aComponent as TButton например
0
|
2 / 2 / 2
Регистрация: 30.04.2011
Сообщений: 108
|
|
05.08.2013, 20:10 [ТС] | 6 |
0
|
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
05.08.2013, 20:59 | 7 |
Никаких "обычных" правил не существует - каждый разработчик городит свой огород.
Но конкретно в твоем огороде следует отчетливо понимать, что для обращения к свойству дельфийского объекта по известному имени свойства необходимо чтобы это свойство было объявлено как published - тогда оно будет зарегистрировано в RTTI-таблице и его чтение/запись станет возможна даже без знания фактического класса этого объекта. http://docs.embarcadero.com/pr... riant.html
1
|
05.08.2013, 20:59 | |
05.08.2013, 20:59 | |
Помогаю со студенческими работами здесь
7
Разграничение прав Delphi БД Access Разграничение прав, админ и юзер Сделать разграничение прав доступа к таблицам и кнопкам в проекте Delphi через данные из Access Разграничение прав доступа. Разграничение прав разграничение прав Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |