В CRM-системах реализуется значительное количество программных модулей и их функций. Зачастую необходимо проводить четкое разграничение доступа к той или функции в каждом модуле.
При проектировании системы прав доступа CRM GYDEX мы максимально придерживались идеи «каждая кнопка – отдельное право». Это позволяет гибко настраивать доступ пользователей ко всем возможностям системы в соответствии с рабочими ролями пользователей. Например, пользователь Иванов может утверждать цены счета, но не может утвердить его отгрузку. А пользователь Петров – может утвердить и то, и другое.
В результате такого подхода в CRM GYDEX система прав доступа может быть наглядно представлена в виде таблицы, строки которой – виды прав, а столбцы – пользователи системы. В ячейках таблицы ставится +, если пользователю доступно данное действие, или -, если действие ему недоступно. Эта модель близка к так называемой дискреционной (или дискретной) политике безопасности и очень наглядно реализована в CRM GYDEX .
Соответственно, у каждого пользователя получается свой отдельный столбец в этой таблице, реализуемый в программе как набор доступных ему действий.
В соответствии с набором доступных пользователю действий, программа при формировании каждой веб-страницы нашей облачной CRM-системы проверяет видимость/невидимость, или доступность/недоступность каждого рабочего элемента интерфейса авторизованному пользователю, работающему в программе.
Кроме того, доступность каждого действия проверяется при обработке всех действий пользователя в CRM GYDEX
Приведем примеры:
Если пользователь пытается зайти в раздел системы CRM GYDEX , в который ему не был открыт доступ, то вместо раздела пользователь окажется на служебной странице «Доступ запрещен».
Если пользователь пытается совершить действие в CRM GYDEX , которое ему не разрешено, например – сохранить счет, не имея прав на сохранение счета, то в зависимости от контекста операции ему может быть выведено сообщение о невозможности данного действия, будет показана страница «Доступ запрещен», либо действие будет проигнорировано системой, и изменения фактически не будут внесены.
Для определенных случаев разграничения на уровне таблицы прав бывает недостаточно. Например, при необходимости разграничить доступ к папкам файлового хранилища программы. Для этого в программе предусмотрен модуль разграничения прав на уровне документа.
Для каждой папки с индивидуальным разграничением доступа в CRM GYDEX строится аналогичная таблица прав пользователей. В ней может быть определено несколько разных действий. В нашем примере это: чтение из папки, загрузка файлов в папку, удаление папки, удаление файлов в папке, правка описаний и т.п.
Фактическая доступность каждой операции при наличии разграничения на уровне документа определяется путем логического сложения прав на общем уровне программы и прав на уровне документа. Например, в случае, если пользователь Иванов имеет доступ в файловое хранилище, но не имеет доступа к папке «Договоры», то он не увидит эту папку в файловом хранилище.
Используемая модель прав доступа в CRM GYDEX позволяет вести в программе журнал событий. В этом журнале фиксируются все действия пользователей. При этом в каждой записи журнала фиксируются следующие поля:
Благодаря структуре общего журнала, в программе реализованы журналы событий для каждого документа - например, журнал событий счета. Изучив этот журнал, можно узнать, кто вносил какую информацию, когда, какие действия совершал конкретно по данному документу.
Кроме того, с помощью журнала событий CRM GYDEX созданы программные модули отчетов (в виде таблиц и графиков) о реальном времени работы сотрудников в системе. Эта функция позволяет контролировать использование рабочего времени сотрудника.
Встроенная справочная система CRM GYDEX работает с использованием системы прав. Сотруднику показаны справочные материалы только по тем разделам и функциям, к которым он имеет доступ. Сотрудник не видит справку по недоступным ему разделам, и даже может не догадываться об их существовании.
Такой подход к построению справочной системы реализован за счет разбиения материалов справки на главы, связанные с тем или иным правом из таблицы прав.
При наличии права у сотрудника защищенная глава справки автоматически встраивается в оглавление раздела «Помощь», доступна в контекстном режиме – т.е. при нажатии на кнопку «?» в соответствующем разделе программы.
При отсутствии права глава не видна сотруднику в оглавлении и не видна в разделе «Помощь», не отображается при нажатии на кнопку «?» в соответствующем разделе программы CRM GYDEX .