Страница 1 из 3
Права доступа!
Добавлено: 11 апр 2012, 13:07
Aleksey
Добрый день!
У меня вот такой вопрос!
На документ в лоции имеют права все пользователи, группы и собственно тот кто создал документ!
Все пользователи в организации относятся к какой либо группе!
Я меняю права на все группы (кроме одной), т.е. запрещаю им изменение документа!
Мне необходимо изменить права и тому кто создал документ (создателя нужно ещё и вычислить, т.к. мы не знаем кто это) так, чтобы можно было ему их вернуть при необходимости!
И ещё небольшой вопрос!
У документа есть список тех, кому назначены какие либо права доступа на этот документ!
Можно ли его программно оттуда удалить, точнее как его оттуда удалить (есть кнопка удаления, но это вручную)!
Re: Права доступа!
Добавлено: 11 апр 2012, 23:06
Старик Крупский
Не на "раз-два", но задачи вполне решаемы!
Для начала: "документ" - это объект или именно документ? От этого и пляшем!
Вычислить автора несложно! Там в таблице с объектами (документами) должна быть колонка с автором! f_ExecSQLSelect_3 в данном случае рулит, айдишник объекта (документа) ведь известен...
Вторая задача сложнее, но не намного! Той же f_ExecSQLSelect_3 вытаскиваем правообладателей, организуем цикл и удаляем права! Есть еще функция в действиях "Отобрать права у всех пользователей"! Только надо проверить, что в данном случае "Все пользователи" - одноименная группа или все правообладатели!
Re: Права доступа!
Добавлено: 12 апр 2012, 09:29
Aleksey
Старик Крупский, спасибо за толчок в нужное направление!
У меня ещё глупый вопрос! (Я с Lotsia работаю всего пол года и то сильно глубоко пока не лез)
В Lotsia есть дерево проектов, как узнать, в какой таблице базы, хранится тот или иной объект?
Re: Права доступа!
Добавлено: 12 апр 2012, 18:22
Старик Крупский
Это проще всего - объекты хранятся в одной таблице (object_reference), документы в другой, типы объектов в третьей, атрибуты, значения атрибутов - все отдельно и очень удобно и компактно. В документации есть файл, описывающий структуру БД.
Re: Права доступа!
Добавлено: 13 апр 2012, 05:39
Aleksey
Старик Крупский писал(а):Это проще всего - объекты хранятся в одной таблице (object_reference), документы в другой, типы объектов в третьей, атрибуты, значения атрибутов - все отдельно и очень удобно и компактно. В документации есть файл, описывающий структуру БД.
Ок! Спасибо! Сегодня посмотрю!
Re: Права доступа!
Добавлено: 14 июн 2012, 11:46
Aleksey
Наконец то добрался снова до Лоции!
Но что то плохо пока воспринимается она!
Старик Крупский, помоги строчкой кода, как в действии прописать поиск по базе?
Что то я совсем запутался

Re: Права доступа!
Добавлено: 14 июн 2012, 12:20
Старик Крупский
Вот это вопрос! Начать и кончить. Это от версии зависит и еще много от чего. Универсальный базовый способ найти объект - в свойствах объектной переменной нажать на Условия отбора и там задать условия по типу и атрибутам. Потом переменную вытащить на форму. Ну и все, запускаем действие и смотрим, что оно находит. Если все в порядке, начинаем с возвращенным значением переменной (с объектом) выполнять разные функции - присваивать атрибуты, связи курочить. В современных версиях действия умеют искать с помощью запросов.
ЗЫ. Поглядел Ваш сайт, Вы же из Тюмени, с anderyt (
http://www.lplm.ru/phpBB2/memberlist.ph ... ofile&u=10) случайно не знакомы?
Re: Права доступа!
Добавлено: 14 июн 2012, 13:47
Aleksey
Старик Крупский писал(а):Вот это вопрос! Начать и кончить. Это от версии зависит и еще много от чего. Универсальный базовый способ найти объект - в свойствах объектной переменной нажать на Условия отбора и там задать условия по типу и атрибутам. Потом переменную вытащить на форму. Ну и все, запускаем действие и смотрим, что оно находит. Если все в порядке, начинаем с возвращенным значением переменной (с объектом) выполнять разные функции - присваивать атрибуты, связи курочить. В современных версиях действия умеют искать с помощью запросов.
ЗЫ. Поглядел Ваш сайт, Вы же из Тюмени, с anderyt (
http://www.lplm.ru/phpBB2/memberlist.ph ... ofile&u=10) случайно не знакомы?
Ок, посижу по разбираюсь!
С этим пользователем не знаком!
Re: Права доступа!
Добавлено: 14 июн 2012, 13:56
Старик Крупский
Ничего сложного, но специфика определенная есть. Как и во всем.
Re: Права доступа!
Добавлено: 15 июн 2012, 08:50
Aleksey
Старик Крупский писал(а):Не на "раз-два", но задачи вполне решаемы!
Для начала: "документ" - это объект или именно документ? От этого и пляшем!
Вычислить автора несложно! Там в таблице с объектами (документами) должна быть колонка с автором! f_ExecSQLSelect_3 в данном случае рулит, айдишник объекта (документа) ведь известен...
Вторая задача сложнее, но не намного! Той же f_ExecSQLSelect_3 вытаскиваем правообладателей, организуем цикл и удаляем права! Есть еще функция в действиях "Отобрать права у всех пользователей"! Только надо проверить, что в данном случае "Все пользователи" - одноименная группа или все правообладатели!
Старик Крупский, а в какой табличке или в каком виде хранятся права на объект?
Если мы знаем Id документа, то мы же можем такую информацию о нем вытащить из базы? или нет???
Может какая то связующая табличка есть?
Re: Права доступа!
Добавлено: 15 июн 2012, 12:59
Старик Крупский
в какой табличке или в каком виде хранятся права на объект?
Если мы знаем Id документа, то мы же можем такую информацию о нем вытащить из базы? или нет???
Может какая то связующая табличка есть?
Про табличку с правами не знаю. Надо читать описание, это вы и сами можете сделать. Если id документа есть, то информацию можно вытащить абсолютно всю. В каждой табличке, которая касается документа, есть ссылка на его id.
Re: Права доступа!
Добавлено: 18 июн 2012, 08:29
Disillusioned
По правам описания полей таблиц вроде как нет.
Права хранятся в таблице EmplRight: ObjID_N - код объекта или документа, ObjType - тип привилегии, user_id - код пользователя, GrantS GrantI GrantU GrantD - права на доступ создание изменение удаление.
Re: Права доступа!
Добавлено: 19 июн 2012, 06:13
Aleksey
Disillusioned писал(а):По правам описания полей таблиц вроде как нет.
Права хранятся в таблице EmplRight: ObjID_N - код объекта или документа, ObjType - тип привилегии, user_id - код пользователя, GrantS GrantI GrantU GrantD - права на доступ создание изменение удаление.
Спасибо!
Да, нашел такую табличку! Уже с ней плотно работаю))
Re: Права доступа!
Добавлено: 19 июн 2012, 07:15
Disillusioned
Есть еще функция в действиях "Отобрать права у всех пользователей"! Только надо проверить, что в данном случае "Все пользователи" - одноименная группа или все правообладатели!
Отбираются ВСЕ права по указанной привилегии. Только надо помнить, что в Лоции PDM нельзя отобрать права у самого себя.
Re: Права доступа!
Добавлено: 21 июн 2012, 07:50
Aleksey
Написал в базе процедуру, удаляющую строку с правами создателя документа!
Всё работает, всё удаляет, но это в SQL!
И вот собственно говоря вопрос, как вызвать процедуру из базы через Lotsia
