Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Вт Мар 13, 2018 15:48  не могу программно выдать доступ |
|
Полезность: Нет оценки
|
Всем привет!
На операцию "Изменить" которая запускается из родительского ТБП "Клиенты" пытаюсь выдать доступ пользователю в типе "Организации"
Код: |
class_name := 'CLIENT';
SECADMIN.SetClassRights(class_name,usr.[USERNAME], 0);
select x(to_char(x.id)) in criteria%rowtype where x.[SHORT_NAME] = 'VW_CRIT_CLIENT' into obj_id;
SECADMIN.SetCriteriaRights(class_name, obj_id,usr.[USERNAME]);
select x(to_char(x.id)) in methods%rowtype where x.[CLASS_ID] = class_name and x.[SHORT_NAME] = 'EDIT#AUTO' into obj_id;
SECADMIN.SetMethodRights(class_name, obj_id,usr.[USERNAME]);
class_name := 'CL_ORG';
SECADMIN.SetClassRights(class_name,usr.[USERNAME], 0);
select x(to_char(x.id)) in criteria%rowtype where x.[SHORT_NAME] = 'VW_CRIT_CL_ORG' into obj_id;
SECADMIN.SetCriteriaRights(class_name, obj_id,usr.[USERNAME]);
select x(to_char(x.id)) in methods%rowtype where x.[CLASS_ID] = class_name and x.[SHORT_NAME] = 'EDIT#AUTO' into obj_id;
SECADMIN.SetMethodRights(class_name, obj_id,usr.[USERNAME]); |
В навигаторе операция недоступна.
Операция "Добавить" ( которая NEW_AUTO) из дочернего ТБП таким методом становится доступна.
Кто может помочь ? |
|
 |
lexus Профи
Вступление в Клуб: 28.09.2007
|
Ср Мар 14, 2018 22:54   |
|
Полезность: Нет оценки
|
Мысли для проверки:
1. В CL_ORG есть своя EDIT#AUTO. Доступ даешь на нее, получается. Но, она, например, недоступна для вызова в Навигаторе.
2. Между CL_ORG и CLIENT есть еще CL_CORP. Может и в нем ее надо доступной сделать
3. Эта операция (именно эта, а не перекрывающая ее из дочерних типов) видна IBS'у в CL_ORG? |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Чт Мар 15, 2018 02:37   |
|
Полезность: Нет оценки
|
--SECADMIN.SetClassRights(class_name,usr.[USERNAME], 0);
а если тут без третьего параметра попробовать:
SECADMIN.SetClassRights(class_name,usr.[USERNAME]); ? |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Мар 15, 2018 09:47   |
|
Полезность: Нет оценки
|
lexus пишет: | Мысли для проверки:
1. В CL_ORG есть своя EDIT#AUTO. Доступ даешь на нее, получается. Но, она, например, недоступна для вызова в Навигаторе.
2. Между CL_ORG и CLIENT есть еще CL_CORP. Может и в нем ее надо доступной сделать
3. Эта операция (именно эта, а не перекрывающая ее из дочерних типов) видна IBS'у в CL_ORG? |
в CORP нету, в ORG см. код вверху, раздал уже  |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Мар 15, 2018 09:49   |
|
Полезность: Нет оценки
|
Alkov пишет: | --SECADMIN.SetClassRights(class_name,usr.[USERNAME], 0);
а если тут без третьего параметра попробовать:
SECADMIN.SetClassRights(class_name,usr.[USERNAME]); ? |
да пробовал и с параметром и без , все равно не работает
Причем самое смешное что когда заходишь в Админ доступа там операшка EDIT#AUTO отображается в CL_ORG как доступная пользаку , а в Навигаторе ее не видно  |
|
 |
lexus Профи
Вступление в Клуб: 28.09.2007
|
Чт Мар 15, 2018 11:28   |
|
Полезность: Нет оценки
|
А может во вьюхе включен ограниченный список операций? Там же в свойствах вьюхи можно выбрать, чтобы не все операции отображались... |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Мар 15, 2018 11:38   |
|
Полезность: Нет оценки
|
lexus пишет: | А может во вьюхе включен ограниченный список операций? Там же в свойствах вьюхи можно выбрать, чтобы не все операции отображались... |
тоже смотрел, там они доступны |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Чт Мар 15, 2018 14:13   |
|
Полезность: Нет оценки
|
vtar пишет: | lexus пишет: | А может во вьюхе включен ограниченный список операций? Там же в свойствах вьюхи можно выбрать, чтобы не все операции отображались... |
тоже смотрел, там они доступны |
С лицензией не может быть связано? |
|
 |
lexus Профи
Вступление в Клуб: 28.09.2007
|
Чт Мар 15, 2018 15:01   |
|
Полезность: Нет оценки
|
Проверь на другой операции в другом типе таким кодом получится доступ дать или нет. Чтобы понять - проблема в системе доступа или в операциях этого типа. |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Мар 15, 2018 15:39   |
|
Полезность: Нет оценки
|
lexus пишет: | Проверь на другой операции в другом типе таким кодом получится доступ дать или нет. Чтобы понять - проблема в системе доступа или в операциях этого типа. |
выше писал - для другой, родной операции в том же типе (которая без перекрытия) у меня получилось выдать. |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Мар 15, 2018 15:40   |
|
Полезность: Нет оценки
|
Эмиралька пишет: | vtar пишет: | lexus пишет: | А может во вьюхе включен ограниченный список операций? Там же в свойствах вьюхи можно выбрать, чтобы не все операции отображались... |
тоже смотрел, там они доступны |
С лицензией не может быть связано? |
тогда бы IBS наверно тоже не имел доступа, не ? |
|
 |
lexus Профи
Вступление в Клуб: 28.09.2007
|
Чт Мар 15, 2018 15:51   |
|
Полезность: 3
|
vtar пишет: | lexus пишет: | Проверь на другой операции в другом типе таким кодом получится доступ дать или нет. Чтобы понять - проблема в системе доступа или в операциях этого типа. |
выше писал - для другой, родной операции в том же типе (которая без перекрытия) у меня получилось выдать. |
Кстати да, получается проблема в том, что перекрыта операция...
Судя по коду - сначала берешь класс CLIENT, операцию EDIT#AUTO из этого класса и даешь доступ к этой операции в том же классе CLIENT.
А дальше берешь CL_ORG, операцию EDIT#AUTO из этого класса и даешь доступ к ней, а не к операции из родителя, в том же типе CL_ORG.
Но, ведь надо взять операцию из CLIENT и дать к ней доступ в CL_ORG ? |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Мар 15, 2018 16:09   |
|
Полезность: Нет оценки
|
lexus пишет: | Но, ведь надо взять операцию из CLIENT и дать к ней доступ в CL_ORG ? |
Ура !!! Заработало!
респект и уважуха. |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Пт Мар 16, 2018 06:06   |
|
Полезность: Нет оценки
|
vtar пишет: | lexus пишет: | Но, ведь надо взять операцию из CLIENT и дать к ней доступ в CL_ORG ? |
Ура !!! Заработало!
респект и уважуха. |
Очень рада, что у вас всё заработало
lexus, ваш совет замечательный!
Постараюсь запомнить. |
|
 |
|