CftClub.ru
Клуб специалистов ЦФТ-Банк

Проверка доступности метода

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
sbk755
Участник


Вступление в Клуб: 27.04.2013
СообщениеСр Дек 11, 2013 13:21   Проверка доступности метода Ответить с цитатой
Полезность: Нет оценки
Уважаемые форумчане,

есть групповая операция "GRP_OPER_TMP" тело которой содержит блок проверки доступности метода следующего вида:
...
if [RUNTIME].SECURITY.Is_Method_Accessible(p_ClassId%class, 'OPER_GRP_TMP', stdlib.user_id.[USERNAME]) then
....

Пользователю, который пытается запустить операцию "OPER_GRP_TMP" дан доступ (через роль) на "OPER_GRP_TMP". Права действительно у пользователя есть - это подтверждается тем, что данный пользователь видит и может ее запустить черезе Навигатор.
Однако отладка показывает, что функция "Is_Method_Access" возвращает все время "false".
Что не так? К сожалению пакет SECURITY завраплен и посмотреть что фактически в нем происходит невозможно...
sbk755
Участник


Вступление в Клуб: 27.04.2013
СообщениеСр Дек 11, 2013 13:23    Ответить с цитатой
Полезность: Нет оценки
Прошу прощения - название операции указал не корректно в предыдущем посте "OPER_GRP_TMP", то есть причина не в том что название операции при обращении к IS_ACCESSIBLE_METHOD не корректное.
Может права должны делегироваться как-то иначе на операцию в Администраторе доступа?
maestro
Профи


Вступление в Клуб: 12.10.2010
СообщениеСр Дек 11, 2013 13:54    Ответить с цитатой
Полезность: Нет оценки
Код:

[RUNTIME].SECURITY.Is_Method_Accessible(p_ClassId%class, 'OPER_GRP_TMP', stdlib.user_id.[USERNAME])


Проверьте значение P_CLASSID%class. Если имя операции захардкодено, то и класс можно захардкодить.

Накрайняк, если пришлете имейл, могу кинуть исходник пакета.
devor
Профи


Вступление в Клуб: 13.02.2012
СообщениеСр Дек 11, 2013 14:24   Re: Проверка доступности метода Ответить с цитатой
Полезность: Нет оценки
sbk755 пишет:

if [RUNTIME].SECURITY.Is_Method_Accessible(p_ClassId%class, 'OPER_GRP_TMP', stdlib.user_id.[USERNAME]) then
....
.

Функция проверяет доступность пользователю операции 'OPER_GRP_TMP' в классе p_ClassId%class.
Если указан неправильный класс ну или права выдали в отличном от p_ClassId классе, то Is_Method_Accessible ожидаемо вернет false
lexus
Профи


Вступление в Клуб: 28.09.2007
СообщениеСр Дек 11, 2013 16:32    Ответить с цитатой
Полезность: Нет оценки
попробуйте дать пользователю доступ напрямую, не через группу. Что вернет функция?
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru