Права доступа!

Здесь обсуждаем систему TDM/PDM/Workflow Lotsia PDM PLUS (PartY PLUS).
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Re: Права доступа!

Сообщение Disillusioned »

Написал в базе процедуру, удаляющую строку с правами создателя документа!
Настоятельно не рекомендую самостоятельно заниматься правкой таблиц Lotsia PDM. Это самый крайний способ - когда ну очень очень очень нужно, а иначе нельзя никак никак никак... И даже если все так серьезно, подумайте еще раз, прежде чем напрямую править данные в таблицах Lotsia PDM...
как вызвать процедуру из базы через Lotsia
Алексей, у меня сложилось впечатление что документацию по системе вы не особо внимательно изучали, если изучали вовсе... В противном случае, такого вопроса вы бы не задали... RTFM!
Ах и с ними невозможно
И без них никак нельзя
Aleksey
Новый участник
Сообщения: 17
Зарегистрирован: 11 апр 2012, 12:00
Используемое ПО: Lotsia PDM PLUS

Re: Права доступа!

Сообщение Aleksey »

Disillusioned писал(а):
Написал в базе процедуру, удаляющую строку с правами создателя документа!
Настоятельно не рекомендую самостоятельно заниматься правкой таблиц Lotsia PDM. Это самый крайний способ - когда ну очень очень очень нужно, а иначе нельзя никак никак никак... И даже если все так серьезно, подумайте еще раз, прежде чем напрямую править данные в таблицах Lotsia PDM...
как вызвать процедуру из базы через Lotsia
Алексей, у меня сложилось впечатление что документацию по системе вы не особо внимательно изучали, если изучали вовсе... В противном случае, такого вопроса вы бы не задали... RTFM!
У меня процедура работает также как и кнопка "Удаление" на форме с правами!
Лишнее удалится не должно!
Сейчас читаю про f_ExecSQLSelect, но что то пока не слишком понятно, как мне туда запихать свою процедуру...
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

Re: Права доступа!

Сообщение Старик Крупский »

Алексей, что-то как-то Вы быстро взялись осваивать таблицы БД. Последствия могут быть самыми непредсказуемыми. Категорически не рекомендую!!! Есть API, есть действия в конце-концов.
"Лучше меньше, да лучше" (C)
Aleksey
Новый участник
Сообщения: 17
Зарегистрирован: 11 апр 2012, 12:00
Используемое ПО: Lotsia PDM PLUS

Re: Права доступа!

Сообщение Aleksey »

Старик Крупский писал(а):Алексей, что-то как-то Вы быстро взялись осваивать таблицы БД. Последствия могут быть самыми непредсказуемыми. Категорически не рекомендую!!! Есть API, есть действия в конце-концов.
Дак я и хочу через действия вызвать запрос!

Через действия не получается сделать без обращения к таблице!
Есть документ, у документа есть список "правообладателей"
например такой: Все, Отдел1, Отдел2, Отдел3, Иванов (Автор документа)
По умолчанию есть права (E E ) просмотр и изменение!
Есть действие, которое переназначает права на отделы и на Все, т.е. ставит права (E D )!
Т.е. права изменяются так скажем явно!
А автор документа может быть разный, Иванов, Петров или ещё кто нибудь, т.е. явно отловить его нельзя, а если и найдем, то запрет ему ставить тоже нельзя, можем только полностью отобрать права, т.е. убрать из этого списка "правообладателей"!
Что, собственно говоря, я и хотел сделать через SQl запрос!
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Re: Права доступа!

Сообщение Disillusioned »

Лишнее удалится не должно!
Хотите побывать в шкуре сапера, который ошибается только один раз? Дело хозяйское, особенно учитывая, что вас предупредили... Только внимательно прочитайте про f_ExecSQLSelect и особенности его поведения...
Сейчас читаю про f_ExecSQLSelect, но что то пока не слишком понятно, как мне туда запихать свою процедуру...
f_ExecSQLSelect oбязательно должна что-нибудь возвращать, иначе будет ошибка. Т.е. если у вас процедура не возвращающая набора данных, добавьте в конце строчку типа SELECT 1 as res. И учтите, f_ExecSQLSelect и f_ExecSQLSelect_2 всегда выполняют запрос дважды, а f_ExecSQLSelect_3 если не задать описание возвращаемых запросом столбцов, также будет дважды выполнять указанный SQL-запрос.
Последний раз редактировалось Disillusioned 21 июн 2012, 14:01, всего редактировалось 2 раза.
Ах и с ними невозможно
И без них никак нельзя
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Re: Права доступа!

Сообщение Disillusioned »

А автор документа может быть разный, Иванов, Петров или ещё кто нибудь, т.е. явно отловить его нельзя, а если и найдем, то запрет ему ставить тоже нельзя, можем только полностью отобрать права, т.е. убрать из этого списка "правообладателей"!
Что, собственно говоря, я и хотел сделать через SQl запрос!
Так получить список правообладателей через SQL - это милое дело. А вот назначение/удаление прав через SQL - это не есть хорошо!
И почему бы не посмотреть описание объекта DObjectRights (скрипты и API)?
Ах и с ними невозможно
И без них никак нельзя
Aleksey
Новый участник
Сообщения: 17
Зарегистрирован: 11 апр 2012, 12:00
Используемое ПО: Lotsia PDM PLUS

Re: Права доступа!

Сообщение Aleksey »

Disillusioned писал(а):
А автор документа может быть разный, Иванов, Петров или ещё кто нибудь, т.е. явно отловить его нельзя, а если и найдем, то запрет ему ставить тоже нельзя, можем только полностью отобрать права, т.е. убрать из этого списка "правообладателей"!
Что, собственно говоря, я и хотел сделать через SQl запрос!
Так получить список правообладателей через SQL - это милое дело. А вот назначение/удаление прав через SQL - это не есть хорошо!
И почему бы не посмотреть описание объекта DObjectRights (скрипты и API)?
Спасибо! Сейчас посмотрю!
Aleksey
Новый участник
Сообщения: 17
Зарегистрирован: 11 апр 2012, 12:00
Используемое ПО: Lotsia PDM PLUS

Re: Права доступа!

Сообщение Aleksey »

Disillusioned писал(а):
А автор документа может быть разный, Иванов, Петров или ещё кто нибудь, т.е. явно отловить его нельзя, а если и найдем, то запрет ему ставить тоже нельзя, можем только полностью отобрать права, т.е. убрать из этого списка "правообладателей"!
Что, собственно говоря, я и хотел сделать через SQl запрос!
Так получить список правообладателей через SQL - это милое дело. А вот назначение/удаление прав через SQL - это не есть хорошо!
И почему бы не посмотреть описание объекта DObjectRights (скрипты и API)?
а где описание объекта посмотреть?
В справке не могу найти!
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Re: Права доступа!

Сообщение Disillusioned »

а где описание объекта посмотреть?
В справке не могу найти!
Если у вас версия ниже 5.00 можно не искать, это не про вашу душу...
Ах и с ними невозможно
И без них никак нельзя
Aleksey
Новый участник
Сообщения: 17
Зарегистрирован: 11 апр 2012, 12:00
Используемое ПО: Lotsia PDM PLUS

Re: Права доступа!

Сообщение Aleksey »

Disillusioned писал(а):
а где описание объекта посмотреть?
В справке не могу найти!
Если у вас версия ниже 5.00 можно не искать, это не про вашу душу...
Да, версия ниже 5.00 :(
Как тогда быть?
Что можно ещё попробовать?
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Re: Права доступа!

Сообщение Disillusioned »

Да, версия ниже 5.00
Список правообладателей получаете в действии через SQL. Далее в цикле запускаете RightGrant, RightRevoke и т.п.
Ах и с ними невозможно
И без них никак нельзя
Aleksey
Новый участник
Сообщения: 17
Зарегистрирован: 11 апр 2012, 12:00
Используемое ПО: Lotsia PDM PLUS

Re: Права доступа!

Сообщение Aleksey »

Disillusioned писал(а):
Да, версия ниже 5.00
Список правообладателей получаете в действии через SQL. Далее в цикле запускаете RightGrant, RightRevoke и т.п.
Большое спасибо!
Сейчас попробую :)
os_cherepanova
Новый участник
Сообщения: 23
Зарегистрирован: 19 сен 2011, 15:35
Используемое ПО: Lotsia PDM PLUS
Откуда: Воронеж

Re: Права доступа!

Сообщение os_cherepanova »

В качестве личного опыта: мы все действия с правами обычно переносим в шаблон на задачу на сервере автоэтапов. Исключает в принципе появление у пользователя ошибки с приоритетом прав/отнятием прав, приятным бонусом - для пользователя "программа" работает чуточку быстрее.


А вообще, чтоб вызвать процедуру записи/изменения из бд -имхо, проще всего сделать функцию автономной транзакцией и обернуть ее в "фиктивный" запрос типа select my_function from dual (для oracle) или select my_function from our_dummy. Хотя другие варианты типа скрипта тоже есть.
Но у нас такая штука работает только для импорта куда-то в наши собственные базы: вручную в лоцийские базы править вообще нехорошо, а в случае с правами вроде бы и не нужно, это один из самых продуманных и "беспроблемных" механизмов в лоции :)
Aleksey
Новый участник
Сообщения: 17
Зарегистрирован: 11 апр 2012, 12:00
Используемое ПО: Lotsia PDM PLUS

Re: Права доступа!

Сообщение Aleksey »

Disillusioned писал(а):
Да, версия ниже 5.00
Список правообладателей получаете в действии через SQL. Далее в цикле запускаете RightGrant, RightRevoke и т.п.
Кстати, зачем список получать и зачем потом цикл, если можно сразу получить конкретно автора(создателя) через запрос ???
Aleksey
Новый участник
Сообщения: 17
Зарегистрирован: 11 апр 2012, 12:00
Используемое ПО: Lotsia PDM PLUS

Re: Права доступа!

Сообщение Aleksey »

Disillusioned писал(а):
Да, версия ниже 5.00
Список правообладателей получаете в действии через SQL. Далее в цикле запускаете RightGrant, RightRevoke и т.п.

Ещё вот такой вопрос:
Вытащил я автора, но не могу применить его в Revoke :(
Завожу переменную Author, если ставлю тип - пользователь, то выдает ошибку на строке с запросом
Author = Set ( f_ExecSQLSelect('Select DBA.TFTOT_RightRevoke('+ObjID+')','','') )

Если ставлю число, то ошибка в строке вызова Revoke
RightRevoke (a_Object , RgObjAccess$ , Author)

Подскажите, что не так?
Ответить