Вопрос

Ограничение прав для контактов с типом "Сотрудник"

Добрый день!

Подскажите, пожалуйста, как можно ограничить права на редактирование и удаление по только контакта с типом сотрудник для всех кроме администратора. Контакты с типом не "сотрудник" могут редактировать все. Автор таких контактов "системный администратор"

Пробовал следующий БП:

старт по созданию нового контакта с типом сотрудник и блок настроек прав доступа отнимает права Р/У у роли "торговый агент" (это функциональная роль, взял для тренировки)

Проблема в том, что права остаются у стандартно присваиваемой роли "all employees" и это позволяет торговым агентам редактировать т.к. они по умолчанию входят в эту группу. Складывается впечатление что мне нужно строить БП с десятком блоков ограничивающих права для каждой роли отдельно. А если добавится роль, снова редактировать БП?

 

Нравится

10 комментариев
Лучший ответ

А отнимайте в БП для "сотрудников" все права у всех ролей. А затем добавляйте права read - для всех, а edit/delete - для System administrators

И заодно, этот БП запускайте при смене типа контакта.

А отнимайте в БП для "сотрудников" все права у всех ролей. А затем добавляйте права read - для всех, а edit/delete - для System administrators

И заодно, этот БП запускайте при смене типа контакта.

Владимир Соколов,

Благодарю. Дополнительно родилась потребность запретить вообще создание контактов с типом "сотрудник" для всех кроме админа, но хотелось бы без лишнего БП реализовать, а чтобы для конкретных пользователей в принципе невозможно было выбрать тип "сотрудник" еще до сохранения записи. Так возможно без сложного программирования?

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

Зверев Александр,

 

что-то я не понимаю логики как нужно правильно раздать права поскольку в моем случае у записей справочника "тип контакта" нету автора (на скрине видно) а права присваиваются на записи создаваемые кем-то.

Я добавил запись в справочник и настроил правило (сначала правило, потом - запись тоже пробовал):

И у других ролей пропали вообще все значения для выбора типа контакта. Пробовал разные варианты, например, созданные админом дано читать всем + созданные мной только я могу.

Даже для чистоты эксперимента делал правило (правда не добавлял записи): созданные мной доступны для всех.

И всегда выбор типа контакта был вообще пустой для всех, кроме меня.

Подскажите, в чем может быть моя ошибка. 

Спасибо

 

 

Права на записи определяются не по полю «Создал», а по записям в отдельной системной таблице базы. Когда Вы сверху поставили галочку, в базе создалась таблица вроде SysContactTypeRight, и в неё нужно добавить записи для каждого типа. Такой-то видит группа «Все пользователи», а такой-то — другая группа. Если у какого-то из типов никаких прав не будет, как у Вас для всех типов сейчас, то этот тип увидит только админ, что Вам и нужно.

Доступ по умолчанию тут не при делах, это для случаев, когда пользователь создал новую запись в таблице «Тип контакта». А типы уже существуют, их создаёт только админ.

А можно немного подробнее как мне это сделать?

Если есть доступ, то через базу.

Зверев Александр,

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

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

Зверев Александр,

спасибо, хорошо получилось. Раздал права на справочник, создал новые записи кроме "сотрудник" и в существующих контактах через БП заменил старые типы на новые. 

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