Встречайте новый видеурок по работе с группами в bpm'online!

Узнайте, как сформировать в bpm'online дерево групп, распределить права доступа к группам и работать с ними. В видеоуроке демонстрируется, как создать структуру групп и настроить необходимые условия фильтрации, от простых к сложным.

Видео доступно по ссылке: Работа с группами в bpm'online

Больше видеоуроков смотрите на сайте академии Terrasoft.

Нравится

Поделиться

0 комментариев
Показать все комментарии
На странице настройки прав показывать источник прав, хотя бы для администраторов. В идеале завязать отображение на операцию.Требуется для администраторов системы, разработчиков при отладке кастомной логики раздачи прав (на он-деманд или при отсутствии доступа к БД совсем не удобно) и даже для продвинутых пользователей, которым иногд интересно а почему Петров имеет такие-то права на эту запись?"
0 комментариев
Показать все комментарии

Здравствуйте!

1) Добавила новое действие.
Требуется реализовать переход на другую страницу при нажатии на данное действие.
Не могли бы вы подсказать как это сделать?

2) Не могу найти какая страница отвечает стандартному действию "Права доступа"

Спасибо большое!

Нравится

19 комментариев

Здравствуйте!

1) Правильно ли я понимаю, что Вы используете версию 5.X?
Примеры есть в темах:
http://www.community.terrasoft.ru/forum/topic/9471
http://www.community.terrasoft.ru/forum/topic/8691
2) Деталь "Права доступа" в разделе (если речь идет о 5.X) отображается в том случае, если объект раздела администрируется по записям.

1) Спасибо большое, Андрей!!
2) Нет, деталь я вижу , я не могу найти его исходный код.

Сабина, посмотрите BaseObjectRecordRightsGridPage.

Другой вопрос, для чего Вам это нужно:)

Мы не рекомендуем вносить изменения в данную деталь, т.к. это может повлиять на работу системы.

Спасибо!

Хочу создать аналогичную страницу для редактирования прав доступа для выделенных активностей.

"Безродный Андрей" написал:

Здравствуйте!

1) Правильно ли я понимаю, что Вы используете версию 5.X?

Примеры есть в темах:

http://www.community.terrasoft.ru/forum/topic/9471

http://www.community.terrasoft.ru/forum/topic/8691

2) Деталь "Права доступа" в разделе (если речь идет о 5.X) отображается в том случае, если объект раздела администрируется по записям.


Я очень извиняюсь, здесь как я понимаю редактируется карточка. При редактировании раздела надо поступать аналогично? Просто при изменении раздела открывается окно для написания javascript кода, а для карточки c#.

Спасибо.

1. Как сделать по кнопке переход в другой раздел — описано здесь.
2. В линейке 5.Х код всех окнон: карточек, реестров, разделов написан на C#. На JS есть только отдельные вкрапления внутри C#. Пожалуйста, покажите скриншот, чтобы понять, что Вы хотите изменить.

"Смена прав" в разделе "Мои активности". (1я картинка)
Исходный код на 2й картинке.

Мне надо чтобы при нажатии открывалась некая страница .

Сабина, для добавления действия в раздел достаточно переопределить метод getSectionActions. Например, как это сделано в разделе «Контакты» (ContactSectionV2).

"Вильшанский Дмитрий" написал:

Сабина, для добавления действия в раздел достаточно переопределить метод getSectionActions. Например, как это сделано в разделе «Контакты» (ContactSectionV2).


Спасибо, но вопрос ведь не в добавлении, а в реализации перехода на другую страницу.
Или там что-то подобное реализовано?

Сабина, данное действие реализовано аналогично. Вы можете посмотреть как это реализовано в базовом функционале любого раздела (см. предыдущий комментарий).

"Вильшанский Дмитрий" написал:

Сабина, данное действие реализовано аналогично. Вы можете посмотреть как это реализовано в базовом функционале любого раздела (см. предыдущий комментарий).


this.methods.onSchedulerView = function() {
var tag = prepareEdit(this);
var recordId = this.get('activeRow');
this.view(tag, recordId);

это оно?

Можно создать для одного раздела две разные страницы вида?(одна уже реализована в базовом)

"Исаева Сабина" написал:
Вильшанский Дмитрий пишет:

Сабина, данное действие реализовано аналогично. Вы можете посмотреть как это реализовано в базовом функционале любого раздела (см. предыдущий комментарий).

this.methods.onSchedulerView = function() {

var tag = prepareEdit(this);

var recordId = this.get('activeRow');

this.view(tag, recordId);

это оно?

Можно создать для одного раздела две разные страницы вида?(одна уже реализована в базовом)

Вам нужен метод getSectionActions.
Конечно можно, у раздела может быть несколько страниц редактирования.
Посмотрите базовый функционал в разделе «Активности». Например, в разделе есть страницы с типом «Задача», «E-mail».

"Исаева Сабина" написал:
Вильшанский Дмитрий пишет:

Сабина, данное действие реализовано аналогично. Вы можете посмотреть как это реализовано в базовом функционале любого раздела (см. предыдущий комментарий).

this.methods.onSchedulerView = function() {

var tag = prepareEdit(this);

var recordId = this.get('activeRow');

this.view(tag, recordId);

это оно?

Можно создать для одного раздела две разные страницы вида?(одна уже реализована в базовом)

Вам нужен метод getSectionActions.
Конечно можно, у раздела может быть несколько страниц редактирования.
Посмотрите базовый функционал в разделе «Активности». Например, в разделе есть страницы с типом «Задача», «E-mail».

"Александр Зубков" написал:Задача

this.methods.onSchedulerCopy = function() {
var tag = prepareEdit(this);
var recordId = this.get('activeRow');
this.copy(tag, recordId);
};
this.methods.onSchedulerDelete = function() {
prepareEdit(this);
this.onDelete();
};

вот они они как я понимаю.
А как они связываются?
т.е как система понимает что вызывать при данной операции? (в каком месте эта привязка осуществляется? )

Сабина, добрый день!

Конкретно эти методы связываются с соответствующими кнопками в функции generateEditButtons схемы ActivitySection (обработчик события click):

buttonsConfig.push({
	className: 'Terrasoft.Button',
	enabled: {
		bindTo: 'getEditButtonsEnabled'
	},
	click: {
		bindTo: 'onSchedulerCopy'
	},
	styles: {
		textStyle: {
			margin: '0px 10px 0px 0px'
		}
	},
	style: Terrasoft.controls.ButtonEnums.style.DEFAULT,
	caption: resources.localizableStrings.CopyButtonCaption,
	tag: ConfigurationEnums.CardState.Copy
});

"Лабьяк Олег Игоревич" написал:

Сабина, добрый день!

Конкретно эти методы связываются с соответствующими кнопками в функции generateEditButtons схемы ActivitySection (обработчик события click):

buttonsConfig.push({

        className: 'Terrasoft.Button',

        enabled: {

                bindTo: 'getEditButtonsEnabled'

        },

        click: {

                bindTo: 'onSchedulerCopy'

        },

        styles: {

                textStyle: {

                        margin: '0px 10px 0px 0px'

                }

        },

        style: Terrasoft.controls.ButtonEnums.style.DEFAULT,

        caption: resources.localizableStrings.CopyButtonCaption,

        tag: ConfigurationEnums.CardState.Copy

});

С уважением,

Олег Лабьяк,

инженер-программист,

группа компаний Terrasoft.

Добрый день, Олег!
Нет , вопрос в последующем действии, как программа понимает какую страницу открывать при вызове this.copy?

Страница определяется в результате вызова функции prepareEdit(this). Внутри этой функции происходит поиск карточки редактирования, соответствующей текущему модулю. Если страница найдена, она сохраняется в переменную tag, которая используется в вызове this.copy.

this.methods.onSchedulerView = function() {
var tag = prepareEdit(this);
var recordId = this.get('activeRow');
this.view(tag, recordId);
};
this.methods.onSchedulerEdit = function() {
var tag = prepareEdit(this);
var recordId = this.get('activeRow');
this.edit(tag, recordId);
};
this.methods.onSchedulerCopy = function() {
var tag = prepareEdit(this);
var recordId = this.get('activeRow');
this.copy(tag, recordId);
};

this.methods.onSchedulerDelete = function() {
prepareEdit(this);
this.onDelete();
};

Что бы ни передавали в эти edit, copy view , для каждого открываются одинаковые страницы. Может они как то по умолчанию прикреплены?

Сабина, посмотрите, пожалуйста, реализацию функции prepareEdit. В ней происходит поиск карточек редактирования, соответствующих текущему разделу. Сами карточки регистрируются в системной таблице SysModuleEdit, но при старте системы информация о них сохраняется в отдельную коллекцию для каждого раздела. Сами разделы сохраняются в Terrasoft.configuration.ModuleStructure, а получить карточки редактирования, соответствующие модулю, можно следующим образом (пример для раздела "Активности"):

var pages = Terrasoft.configuration.ModuleStructure[Activity.name].pages;

Далее в зависимости от типа выбранной активности определяется соответствующая ей карточка редактирования.

Если карточка не зарегистрирована в SysModuleEdit, система не сможет получить к ней доступ.

Показать все комментарии

Мне необходимо конкретному пользователю дать права на редактирование контрагентов. Как своих, так и не своих. Я зашёл в "Администрирование" -> слева вкладка "Пользователи", выбрал пользователя, затем вкладку "Права доступа к группам таблиц". Там установил все галочки напротив поля "Контрагенты". Тем не менее, пользователь так и не может редактировать информацию в контрагентах.
Как быть?

Нравится

2 комментария

Мне кажется, тут нужно использовать «Права доступа по умолчанию». Прописать там для контрагентов кроме группы «Все пользователи» ещё и того пользователя с правом чтения и редактирования. При этом для всех новых контрагентов право будет выдаваться автоматически, а для старых записей нужно единоразово выполнить SQL-запрос:

insert into tbl_AccountRight (RecordID, AdminUnitID, CanRead, CanWrite, CanDelete, CanChangeAccess)
select 
a.ID, 
(select ID from tbl_AdminUnit where Name = 'Василий Пупкин'), --вместо Пупкина необходимо поставить Имя пользователя или группы, которой нужно дать доступ
1, --добавить право на чтение записи (0 - запретить)
1, --добавить право на изменение записи
0, --добавить право на удаление записи
0  --добавить право на управление доступом для этой записи
from tbl_Account a where not exists
(select id from tbl_AccountRight ir
 where AdminUnitID = (select ID from tbl_AdminUnit where Name = 'Василий Пупкин')
and ir.RecordID = a.id
)

Потом, когда появится второй такой пользователь, дать ему права будет намного легче, если всё это проделать не для пользователя, а для группы. Создать группу с названием вроде «Имеют право редактировать контрагентов», настроить для неё права по умолчанию, запустить скрипт. И в конце пользователей включить в эту группу.

Огромное спасибо! Помогло.

Показать все комментарии

Вся процедура по настройке прав доступа в bpm'online в одном видеоролике! Узнайте, как выполнить настройку прав доступа к полям записей, самим записям, объектам системы и операциям с помощью простых пошаговых инструкций.
В ролике демонстрируются результаты настройки для наглядной презентации того, как в приложении функционируют права доступа.

Видео доступно по ссылке: Настройка прав доступа

Больше обучающих видеороликов смотрите на сайте академии Terrasoft.

Нравится

Поделиться

0 комментариев
Показать все комментарии

Добрый день,

каким образом можно организовать деталь, аналогичную Ленте в разделе Обращения, но изначально настроить так, чтобы все комментарии в данной ленте обращения были бы доступны только сотрудникам компании?

Нравится

3 комментария

Маргарита, добрый день!

В текущей реализации детали Лента в разделах нет возможности управлять правами доступа на отдельные сообщения. Поэтому для реализации подобного функционала необходимо создать отдельную деталь по аналогии с деталью Лента, которая бы работала с отдельной таблицей. Деталь можно отображать/скрывать в зависимости от того, является ли текущий пользователь сотрудником компании.

Добрый день,
Не могли бы вы в краце рассказть нам об основных этапах при создании подобной Детали.
Особенно в части того, как настроить отображение/скрытие данной детали отдельным пользователям или группам.

Деталь Лента является специфической. К сожалению, у нас нет подробной инструкции по ее созданию, ориентироваться следует на существующую логику, реализованную в системе.
Для того, чтобы отображать/скрывать деталь, следует:
1) на странице редактирования раздела, в блоке diff в элементе детали добавить атрибут «visible», отвечающий за отображение/скрытие детали;
2) создать метод, который будет выполнять проверку видимости согласно Вашей бизнес-логике;
3) связать метод с атрибутом.

Пример:

{
"operation": "insert",
"name": "TabsContainer",
"parentName": "CardContentContainer",
"propertyName": "items",
"values": {
"itemType": Terrasoft.ViewItemType.CONTAINER,
"visible": {"bindTo": "getTabsContainerVisible"},
"items": []
}
}

Также следует отметить, что Вы можете разграничить доступ к детали в меню Управление конфигурацией – Администрирование: доступ к объектам.

Показать все комментарии

Добрый день.

В разделе "Администрирование. Доступ к объектам. Доступ к записям по умолчанию" указано, что пользователи определенной группы имеют право на чтение Обращения созданных только членами этой группы.

Данное правило работает только в том случае, если обращение создавалось членами данной группы через портал.
Если же оно приходит на электронную почту (Контакт и Контрагент распознаются и он входит в группу), то правило Доступа к записям по умолчанию для такого Обращения не работает.

Возможно решить данную проблему средствами конфигурирования, или необходимо задействовать бизнес-процесс?

Нравится

2 комментария

Добрый день, Маргарита!

В данном случае Ваш процесс должен содержать подобные элементы:

1. Стартовый сигнал (создано Обращение, с происхождением <> Портал).
2. Чтение данных Обращения.
3. Чтение данных Заявителя.
4. Скрипт (который будет формировать выборку Контактов по Контрагенту Заявителя и раздавать им права на Обращение, по которому стартовал данный процесс).

Показать все комментарии

Здравствуйте,

Добавила на карточку инцидент новое булево поле "проект", и хочу для запросов у которых приставлена галочка на данное поле ("проект") на разделе "Инцидент", смогли видеть лишь ограниченное количество людей (ролей). Как можно это реализовать?

Заранее большое спасибо.

Нравится

5 комментариев

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.

А могу я узнать номер запроса, что бы отслеживать его на портале?

Номер инцидента, созданнного по Вашему запросу 0220708

К сожалению не смогла найти данный запрос на http://support.bpmonline.com

Здравствуйте, Гюнель.

Предлагаю отфильтровать реестр в зависимости от того, в какой группе находится пользователь.
Примеры фильтрации есть в следующих темах:
http://www.community.terrasoft.ru/forum/topic/10764
http://www.community.terrasoft.ru/forum/topic/9758
Проверить наличие роли у пользователя можно сделав выборку из SysUserInRole

Показать все комментарии

BPM 7.2 on-site

Как сделать, чтобы пользователь Пользователь2 видел только те контакты, которые он создал?

Нравится

1 комментарий

Здравствуйте, Илья!

Для решения Вашего вопроса, необходимо настроить "Права доступа по умолчанию". Подробнее ознакомиться с настройкой прав Вы сможете в "Руководстве по настройке", параграф 2.4.3, стр. 47.
Приятного дня!

Показать все комментарии

Добрый день!

TS 3.3.2.174

Сделал новый раздел Мастером. В Администрировании указал права доступа для группы "Все пользователи", в корневой группе указал права тоже для всех пользователей.

В итоге каждый пользователь видит только свои добавленные записи.

Подскажите, пожалуйста, как можно раздел сделать общим для всех?

Спасибо!

Нравится

2 комментария

Алексей, настройте права доступа по умолчанию ("Администрирование" - "Права доступа по умолчанию").
Таким образом Вы определите уровень доступа на создаваемые записи для ролей.
Чтобы изменить права на уже созданные записи обратите внимание на эту тему

Наталия, спасибо!

То, что и нужно было)

Показать все комментарии