Sql -запрос для раздачи прав доступа пользователям только на те записи, в которых они являются ответственными
Нередко компаниям, в результате реструктуризации или каких-либо видимых причин необходимо перераздать права доступа на записи в приложении Terrasoft CRM.
В том случае, если база достаточно велика, раздача прав доступа превращается в рутинную работу.
Предлагаю для пользователей sql-запрос, который "перераспределит" права доступа пользователям таким образом, чтобы они видели только те записи, в которых являются ответственными.
Что нужно сделать:
1. Перед выполнением нижеуказанных действий настоятельно рекомендую сделать резервную копию Вашей базы данных во избежание нарушения работоспособности системы и потери данных!
2. Запустите менеджер по управлению базой данных, в зависимости от используемой Вами СУБД (для SQL - например, Enterprise Manager). Выберите базу, на которой необходимо выполнить Sql-запрос. Откройте окно для нового запроса и вставьте запрос следующего содержания:
INSERT INTO tbl_AccountRight (ID, RecordID, AdminUnitID, CanRead, CanWrite, CanDelete, CanChangeAccess)
SELECT newid(), A.ID, AU.ID, 1, 1, 1, 1
FROM tbl_Account A
JOIN tbl_AdminUnit AU ON AU.UserContactID = A.[OwnerID]
3. Запустите на выполнение.
4. Данный запрос предназначен для раздачи прав доступа для раздела контрагентов. Вы также можете раздать аналогичные права доступа пользователям на записи путем замены в запросе tbl_Account на название соответствующей таблицы.
5. Затем необходимо запустить рабочее приложение Terrasoft CRM под пользователем с правами администратора. Зайти в раздел «Контакты», выбрать записи тех контактов, которые являются пользователями системы и добавить этих пользователей на закладку «Доступ» менеджера деталей. То есть раздать пользователям права доступа на записи контактов самих себя. Это делается с той целью, чтобы пользователь в поле «Ответственный» мог видеть запись себя.
6. Затем Вы можете зайти в приложение под обычным пользователем и протестировать работоспособность системы.
Желаю удачи!
С уважением,
Мельникова Екатерина
Если уж делать что-то такое, то скрипт должен учитывать и права доступа по-умолчанию.
К тому же нужно отдавать себе отчет, что права доступа могут содержать какие угодно настройки, которые при таком подходе будут утрачены.
В том то и дело, что этот скрипт не учитывает прав доступа по умолчанию. Это учитывают другие скрипты http://community.terrasoft.ua/blogs/3277
Дело в том, что клиенты нередко обращаются с просьбой предоставить что-то подобное, поскольку регламенты работы в их компаниях предусматривают именно такой функционал.
Мельникова Екатерина
Если у клиента права доступа по-умолчанию настроены каким-то образом, то это, скорее всего, соответствует его регламентам.
Впрочем, для раздачи прав доступа только ответственным этот скрипт как раз то что нужно. Я просто уточнил, на какие нюансы следует обратить внимание при использовании.
Думаю что задача "раздать права только ответственным" смысла не имеет. В отличии от задачи "добавить права всем ответственным, которые их еще не имеют".
Прицитирую одного из наших клиентов: "К нам пришел новый руководитель, пытается изменить регламент работы нашего отдела. В результате этого нам необходимо, чтобы все пользователи системы видели только свои записи, в отличие от того, как было до этого".
Это вполне жизненная задача, также как и остальные требует решения.
Мельникова Екатерина
Так тогда начальник отдела не сможет посмотреть статистику по своим подчиненным.
То что поставили такую задачу, не означает что она имеет смысл :)
Так сделали бы отдельный раздел "База знаний". Ато вытаскивание оттуда кусков в блоги смотрится как-то странно.
"Underscore a.k.a. _" написал:Так тогда начальник отдела не сможет посмотреть статистику по своим подчиненнымЕсли он конечно не администратор.
В общем, у решения есть нюансы, о них написали, так что все, кто захотят воспользоваться, будут в курсе. Думаю, на этом обсуждение можно закрывать.