Добрый всем день!
Столкнулся с задачей - есть несколько групп пользователей - больше 10 со сходными правами, было бы интересно настроить права одной группы, а потом скопировать такие права остальным, местами подкорректировав. Не хочется сидеть и заниматься рутиной?

Нравится

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

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

Для реализации необходимой Вам функциональности требуется внести изменения в конфигурацию Terrasoft CRM.
Как Вы знаете, все группы и пользователи хранятся в таблице tbl_AdminUnit. В свою очередь все права, например для группы таблиц, хранятся в таблице tbl_TableGroup.
Чтобы реализовать копирование прав, Вы можете добавить в раздел "Администрирование" новую кнопку, по нажатию которой будет открываться окно с несколькими полями. В одном поле Вы можете выбрать существующую группу, которой необходимо раздать права доступа, а в другом - родительскую группу, от которой наследовать права.
Затем в обработчике события нажатия на кнопку необходимо прописать это копирование прав: проверку родительской и дочерней групп (используя таблицу tbl_AdminUnit), проверку прав доступа для родительской группы в таблице tbl_TableGroup, а затем копирование этих прав в эту же таблицу, но для другой группы (дочерней).

Terrasoft Support Team

Спасибо, я так и думал, попробую реализовать...

Смотрю я на на таблицы tbl_AdminUnit и tbl_TableGroup, если с таблицей tbl_AdminUnit, все более менее понятно, то tbl_TableGroup - загадка?

"support" написал: В свою очередь все права, например для группы таблиц, хранятся в таблице tbl_TableGroup.

А в каком поле содержится ссылка на ID группы из таблицы tbl_AdminUnit? Наблюдая за этой таблицей я понял, что там содержатся группы таблиц, варианты прав доступа, но ссылку на группу я не нашел, объясните пожалуйста...

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

Вам необходимо использовать не таблицу tbl_TableGroup, а tbl_UserInGroup, где идет связка по полям ID таблицы tbl_AdminUnit и GroupID таблицы tbl_UserInGroup.

Terrasoft Support Team

Опять мы друг друга не поняли....
1. Задача в копировании прав на группы таблиц из Одной группы пользователей на другую
2. В таблице tbl_UserInGroup связь между пользователем и группой, т.к. пользователь может входить в несколько групп это логично.
НО мне нужна таблица, где описаны связи между Группой пользователей и ПРавами на
- Группы таблиц
- Поля
- По умолчанию.
С таблицей tbl_AdminUnit понятно - список групп и пользователей в системе
Таблица tbl_TableGroup - виды прав доступа по группам таблиц
А где связь между Группой пользователей и видом прав, которая отображена на закладке "Права на Группы таблиц"???
А вообще хотя бы в администраторе давать описание таблиц и полей, очень пользительная штука...

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

На самом деле в конфигурации приложения Terrasoft CRM не существует такой таблицы, в которой отображались бы все права доступа пользователей и групп пользователей на разделы. Права доступа пользвателям и группам пользователей определяются их ролями. Вы можете и сами в этом убедиться, если запустите MS Profiler и проследите, что происходит в момент установки прав доступа в разделе "Администрирование" на закладке "Права доступа на группы таблиц", например для раздела библиотеки. В результате Вы получите примерно следующее:

exec sp_executesql N'declare @RoleName sysname
declare @UserName sysname
set @RoleName = @P1
set @UserName = @P2
exec(N''exec sp_droprolemember ['' + @RoleName + N''], ['' + @UserName + N'']'')',N'@P1 nvarchar(13),@P2 nvarchar(16)',N'TG_LIBRARY_CU',N'ВСЕ ПОЛЬЗОВАТЕЛИ'

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

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

Terrasoft Support Team

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