Коллеги, здравствуйте!

Возможно ли закрытие всех полей карточки для пользователя (не создателя) для изменения?

Речь идет о невозможности в том числе изменения данных до сохранения.

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

Хотелось бы для такого пользователя в принципе закрыть доступ на поля (сделать их неактивными, например, повесить "замок").

Возможно ли подобное в стандартном функционале?

Заранее спасибо!

 

Нравится

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

Здравствуйте, Эрнст!

В базовой логике приложения данная функциональность отсутствует.

Задача по доработке указаного функционала в последующих релизах, стоит на ответственной команде разработки. 

 

можно использовать вот такой "трюк"

Ext.ComponentMgr.all.each(function(c){
	var cmp = Ext.ComponentMgr.all.map[c];
	if(cmp.className){
		if(cmp.className.indexOf("Edit") !== -1){
			if(cmp.setEnabled){
				cmp.setEnabled(false);
			}
		}
	}
})

выполнение этого кода, сделает все поля карточки недоступными (замок)

можете разместить его например в onEntityInitialized методе схемы

но для какого пользователя выполнять, а для какого нет - это так же задача логики, BPM не предоставляет какой-либо штатной логики для работы с такой информацией в карточках схем, но если плоскость определения кому доступно а кому нет, лежит например в ракурсе, является ли текущий пользователь, пользователем установленным в поле Owner (или другом справочном поле ссылающимся на контакт) то это не составляет труда, если же этот же вопрос рассматривать в ракурсе, является ли текущий пользователь членом какой либо функциональной роли или организационного юнита, то Вам помогут вот эти утилиты  https://community.terrasoft.ru/questions/userutilsmixin-utility-dla-raboty-s-informaciei-o-organizacionnyh-edinicah-roliunity

(только обратите внимание на комментарии в теме)



что касается является ли пользователь создателем или нет, и как это можно установить в логике схемы - не подскажу, если кто-то из пользователей сообщества знает как - поделитесь этим способом здесь это будет весьма кстати.

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

При установке прав на запись, наследовать их на записи подчиненных деталей.Так как почти во всех проектах приходится выполнять данные настройки, предлагаю вынести это на уровень системы и конфигурации. Например, если у конкретной записи контрагента установлены права Read-only, то очень логично запрещать редактировать, добавлять и удалять записи в следующих деталях: средства связи, адреса, банковские реквизиты, файлы и т.п. При этом активности, продажи и прочие (не подчиненные, а связанные) детали могут быть доступны для этого пользователя.

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

Добрый день, Владимир!

Согласно Вашего комментария зарегистрирована идея/пожелание на команду разработки платформы для реализации в следующих релизах системы. Номер проблемы 6463

Добрый день!

Хотелось бы узнать статус проблемы 6463

Добрый день, Владимир!

 

Идея принята и реализована в базовой конфигурации системы. В функционале настройки прав доступа есть чекбокс "Права на связанные объекты" по факту включения которого можно применять или не применять права объекта на детали в нем. Данный функционал будет доступен для общего пользования ориентировочно в версиях линейки 7.12 (но возможны изменения ввиду проведения тестирования данного функционала и возможной необходимости его доработки или исправления найденных ошибок)

Добрый день!

В версии 7.12.0 реализовано наследование прав доступа. Например, средства связи контакта будут наследовать права доступа родительского контакта. В дизайнере объектов для подчиненного объекта можно указать родительский объект, от которого наследовать права доступа

Это прекрасная новость!

Добрый день!



Наконец попробовал в деле новый CheckBox в версии 7.12.3.

Для объекта "Адрес контрагента" установил администрирование по записям и указал в "Наследовать права доступа от объекта" объект "Контрагент".



Далее попробовал изменить права на конкретную запись Контрагента. В существующих адресах не поменялось ничего!



Попробовал добавить новый адрес. И тоже в нём ничего от прав Контрагента.



Вообщем, очень непонятно, как данный CheckBox должен влиять на поведение системы

Если проверяете по наличию записей в таблице прав, то должно работать и без них. Набор прав не будет создаваться для записи адресов, но доступ будет.

Зверев Александр пишет:

Если проверяете по наличию записей в таблице прав, то должно работать и без них. Набор прав не будет создаваться для записи адресов, но доступ будет.

Да, удалось поймать ситуацию, когда система запрещает добавить и отредактировать адрес.

Но не всегда. На одном и том же контрагенте иногда запрещает, иногда разрешает.

Ещё интереснее ситуация с удалением. Тут никакого запрета система не выдала и удалила запись. Однако, когда я зашёл под Supervisor, то "удаленный" адрес был на месте. А тестовый пользователь его не видел.



Вообщем, такое ощущение, что очень сырая функциональность пока что :(

Владимир Соколов пишет:

Ещё интереснее ситуация с удалением. Тут никакого запрета система не выдала и удалила запись. Однако, когда я зашёл под Supervisor, то "удаленный" адрес был на месте. А тестовый пользователь его не видел.

Значит, это было не удаление, а таки снятие прав.

Чтобы окончательно убедиться, попробуйте поднять чистую демку актуальной версии и воспроизвести на ней, сделав скриншоты шагов. Тогда, следуя им, разработчики системы смогут воспроизвести это и исправить функциональность.

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

Добрый день, добавили в црм новых менеджеров.
Однако менеджерам в пользовательском разделе видна лишь часть записей и при сохранении появляется окошко, уведомляющее, что недостаточно прав для изменения записи.
Как я понимаю необходимо изменить правда доступа в “Права доступа на объекты”, пытались снять галочку для раздела на пункте “Администрируется по записям”, но появляется предупреждение: “Невозможно понизить права, которые установлены на уровне схемы объекта в дизайнере”, кнопка добавить также неактивна. Подскажите, пожалуйста, как можно решить данную проблему?

Нравится

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

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

Пример решения типовой задачи со скриншотами прикрепил вложением.

Адасюк Валерий Викторович Можете выслать и мне вложение, та же проблема

 

Добрый день!

так как функционал нового community не позволяет выкладывать вложения (кроме скриншотов), то пошаговое решение выложил архивом по ссылке http://tsrdp.tscrm.com/support/pub/Adasyuk/Zip.zip

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

Может кто сталкивался. Прошу прокомментировать или помочь

5 версия Сервис деск.

В реестре, для всех ролей, кроме "системный администратор" появляются надписи нет доступа>.
На самом деле, доступ к объектам, колонкам и всему, что только возможно - предоставлен группе "Все сотрудники".

Снятие администрирования к колонкам и прочему - ни к чему не приводит. куки и редис - чистили.
Странно, что эта надпись не появляется для полей с типом "справочник". Б
Буду очень благодарна :)

Нравится

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

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

Нашла что-то подобное, но предложенный вариант не сработал
http://www.community.terrasoft.ru/forum/topic/9817

В стандартном разделе контактов таких полей нет. Возможно, все эти поля пустые в базе и таким образом отображаются в окне. По ссылке выше дан ряд рекомендаций, в том числе пересоздание колонок и перезапуск пула.

Александр, это не новый раздел.
Это я сама создала новое окно, куда вывела отфильтрованные данные из объекта Контакты
там, где есть значения в карточке раздела КОНТАКТЫ- они отображаются. Если значения отсутствуют, то пишется - нет доступа
Например, Имя и Фамилия - есть в карточках. они отображаются в окне
А поле Отчество - не отображается. Хотя я могу войти в карточку Контакта и внести Отчество.

не поняла: в КОНТАКТАХ нет Фамилия, имя, отчество?

Поля Тип, серия, номер - это поля паспотра - ест старый паспорт и новый(если замуж кто вышел. Я создала эти поля в карточке Контакта (и деталь есть)

Нет, в коробке есть единое поле ФИО. Возможно, новые поля создавались после раздачи прав и для них что-то не раздалось.

Вот как раз у меня вопрос: что не раздалось? если войдя в карточку КОНТАКТЫ, я могу всё редактировать.
Александр, это вот Вы зачем мне написали, что что-то не раздалось, хотя у меня был вопрос: коллеги, что могло не раздаться?

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

"Милова Марина Федоровна" написал:На самом деле, доступ к объектам, колонкам и всему, что только возможно - предоставлен группе "Все сотрудники".

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

так в результате, где искать деффект?

К сожалению, поскольку это окно, колонки и прочее не являются стандартными, по одному скриншоту сложно понять причину такого поведения.
Вы можете провести отладку и посмотреть, что реально находится в полях Entity текущей строки реестра при работе под администратором и под пользователем.

Марина, попробуйте в администрировании объекта КОНТАКТЫ раздать права по данным колонкам для конкретной роли, а также дать полный доступ к записям.

Дмитрий, спасибо.
Всё получилось

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

Коллеги, доброе утро! Возникла проблема с добавлением записи в раздел https://yadi.sk/d/ne2LkUft3FRdDw под администратором. В конфигурации проверили все настройки администрирования, также проверили все настройки в разделе "Права доступа на операции". С чем может быть связана данная ошибка?

Нравится

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

Коллеги, здравствуйте!
Необходимо настроить права для поиска дублей для bpm 7.9.0. В документации этого не нашла, попался небольшой документ для версий 3.х https://community.terrasoft.ru/system/files/duplicates_search_setting...
Подскажите, пожалуйста, какие-либо материалы по данному вопросу, либо может, кто-то с этим сталкивался?

Нравится

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

Добрый день, Елена!

Права доступа на работу с функционалом дедупликации настраиваются в соответствующих правах доступа на операции: 1. Доступ к правилам поиска дублей; 2. Обработка дублей; 3. Поиск дублей.
Во вложении прикреплен скриншот для наглядности. Для каждой из вышеуказанных операций можно дать права определенной роли или конкретному пользователю.
Базовый функционал и логика поиска дублей описана в руководстве пользователя (+ статьи см. также): https://academy.terrasoft.ru/documents/sales-commerce/7-9/globalnyy-poi…

Валерий, спасибо большое!

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

Задача следующая: при настройке прав доступа на группу статей в базе знаний, раздавать те же права на все подгруппы в ней (а так же все статьи им соответствующие).
Замещать модуль Rights или RightUtilities (и создать свой сервис, унаследовавшись от RightsHelper) не хочется, т.к. при его изменении в последующих обновлениях пришлось бы постоянно переписывать замещающий модуль.
Лучшим решением казались триггеры в БД на INSERT для таблицы [SysKnowledgeBaseFolderRight]. Я использовал два курсора (один вложен в другой) для перебора записанных строк, и подгрупп для каждой группы. Но если уровень подгрупп больше 1, триггер не отработает т.к. пытается по сути объявить курсор, который уже объявлен.
Да и каким образом с помощью триггера раздавать права на статьи в группах не имею представления.
Есть ли еще варианты, или все-таки придется замещать модуль Rights (RightUtilities)?

Нравится

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

Примерный(костыльный вариант):
1) расковырять схему Rights. В методе onSaveClick

RightUtilities.applyChanges({
	"recordRights": changedRights,
	"record": {
		entitySchemaName: this.get("entitySchemaName"),
		primaryColumnValue: this.get("primaryColumnValue")
	}
}, this.onChangesApplied, this);

т.е у нас есть список прав, название схемы с фильтрами в entitySchemaName, id фильтра в primaryColumnValue.
По идее, если entitySchemaName === "KnowledgeBaseFolder", то запускаем свою логику по изменению прав записей
2) Выбираем из KnowledgeBaseFolder вложенные папки, где ParentId = Id главной папки, получаем коллекцию, бежим по каждой записи
3) Для каждого элемента вставляем/удаляем запись в таблицу SysKnowledgeBaseFolderRight. Значения берем из переменной changedRights с п1.

Для записей еще жестче:
п1. такой же
2) Выбираем из KnowledgeBaseFolder фильтр по id, который мы знаем из предыдущего пункта, нужна колонка SearchData. Там лежит мусор) Весь вопрос как этот хлам преобразовать в сериализованый(или нет) фильтр.
3) Выбираем из KnowledgeBase все записи с фильтром из п2, получаем коллекцию, бежим по каждому элементу коллекции.
4) Для каждого элемента из базы знаний вставляем/удаляем запись в таблицу SysKnowledgeBaseRight. Значения берем из переменной changedRights с п1.

как-то так :smile:

upd. Только что проверил, в п2. берем entity по id, потом

var folderFilter = Terrasoft.deserialize(result.entity.values.SearchData);

все. получаем фильтр, который надо наложить на выборку из KnowledgeBase

Спасибо за ответ :smile:
В принципе я, не найдя другого решения, делаю примерно тоже самое. Заместил модуль RightUtilities, в котором меняю вызываемый сервис на свой в методе callServiceMethod, если вызывается метод "ApplyChanges".
Далее уже на сервере проверяю имя схемы, и если это KnowledgeBaseFolder - рекурсивно прохожусь по всем подпапкам раздавая права, а также выбираю фильтры у каждой, десериализуя их и раздавая права на статьи.
Старался максимально вынести функционал на сервер. Таким образом при обновлении версии/билда если изменится RightUtilities - придется добавить в него всего одну строку. А на сервере я создаю экземпляр класса RightsHelper и вызываю у него метод ApplyChanges, как это делается в базовом RightsService (что в принципе устойчиво к обновлениям).

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

Добрый день!

Можно ли открыть доступ к справочникам другим группам пользователей, а не только системным администраторам?

Нравится

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

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

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

Подробно с системными операциями можно ознакомиться по ссылке.

"Демьяник Алексей" написал:

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

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

Подробно с системными операциями можно ознакомиться по ссылке.

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

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

Добрый день!

А можно ли узнать, кто выдал права доступа на запись - пользователь вручную, создана по умолчанию или добавлена в бизнес-процессе?

При смене прав доступа в БП необходимо удалять автоматические, но не трогать добавленные вручную

Нравится

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

Здравствуйте, Владимир!

Права доступа на записи хранятся в таблице Sys[Имя_объекта]Right. Для каждой записи о правах есть колонки создал(CreatedbyID) и Изменил(ModifiedbyID).

"Павел Баштовой" написал:Для каждой записи о правах есть колонки создал(CreatedbyID) и Изменил(ModifiedbyID).

И как из них узнать, что поменялось автоматически по предыдущему БП, а что вручную?

"Владимир Соколов" написал:
Павел Баштовой пишет:

Для каждой записи о правах есть колонки создал(CreatedbyID) и Изменил(ModifiedbyID).

И как из них узнать, что поменялось автоматически по предыдущему БП, а что вручную?

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

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

Здравствуйте!
В sales enterprice 7.8 в организационной структуре добавляю на деталь Руководители руководителей для подразделения (перед этим проставив галку "Существует роль руководителей") https://yadi.sk/i/4h8HGHABykvEL, но пользователи, которых добавляю на эту деталь, после этого не могут войти в систему, возникает ошибка: https://yadi.sk/i/jddtLtGrykugX

Нравится

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

Добрый день, Анастасия!

Просьба уточнить:
1. Вы используете сборку с демо-наполнением или softkey версию, т.к. судя по 1 скриншоту это демка с ограничением на создание пользователей и работу с лицензированием пользователей?
Рекомендации:
1. Выполнить действие по актуализации ролей после любой работы в организационной структуре;
2. Скомпилировать конфигурацию и обновить структуру БД;
Если рекомендованные действия не помогут, то просьба указать ссылку на сайт, о котором идет речь для более детального анализа.

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