Перейти к основному содержимому

Настройка прав доступа

При создании SOAP-сервиса вы можете настроить права доступа на двух уровнях:

При вызове конкретной операции проверка разрешений доступа в SOAP-сервисе будет производиться следующим образом:

  • Если для операции задана группа свойств КонтрольДоступа, то будет выполнена проверка по заранее рассчитанным разрешениям доступа для данной операции. Дальнейшие пункты не выполняются.
  • Если вышеупомянутая группа свойств не задана, то проверяются общие разрешения доступа для SOAP-сервиса, заданные группой свойств КонтрольДоступа SOAP-сервиса.
дополнительно

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

Настройка прав доступа для SOAP-сервиса​

Чтобы настроить права доступа для вызова SOAP-сервиса в целом, следует в группе свойств SOAP-сервиса КонтрольДоступа задать необходимые настройки прав доступа.

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

Пример модуля SOAP-сервиса:

@Обработчик
метод ВычислитьРазрешенияДоступа() : Массив<РазрешениеДоступа>

знч Разрешения: Массив<РазрешениеДоступа> // массив для возврата разрешений доступа

// Получить экземпляры ключей доступа
знч КлючМенеджеров = новый КлючиГруппСотрудников.Объект(ГруппыСотрудников.Менеджеры)
знч КлючРуководителей = новый КлючиГруппСотрудников.Объект(ГруппыСотрудников.Руководители)

// Создать разрешение доступа
Разрешения.Добавить(новый РазрешениеДоступа([КлючМенеджеров, КлючРуководителей], [SoapСервисПраво.Вызов]))

возврат Разрешения
;

Настройка прав доступа для отдельной операции сервиса​

Чтобы настроить права доступа для отдельной операции, следует добавить группу свойств КонтрольДоступа у нужного обработчика в описании SOAP-сервиса.

Если необходимо настроить нестандартный расчет прав доступа, то в группе свойств КонтрольДоступа у нужного обработчика, в свойстве Вызов, следует задать значение РазрешенияВычисляются, а в свойстве Обработчик указать имя обработчика, который будет выполнять расчет прав доступа для вызова данной операции. Код обработчика следует расположить в модуле SOAP-сервиса.

Пример модуля SOAP-сервиса:

метод ВычислитьРазрешенияДляОперации(): ЧитаемаяКоллекция<КлючДоступа.Объект>
возврат [новый МойКлючДоступа.Объект()]
;

См. также​