10.2.2. Ресурсы

Универсальные наборы прав доступа

class nextgisweb.resource.scope.ResourceScope[исходный код]

Базовый набор прав ресурса

read = <Permission „read“ in scope „resource“>

Чтение: возможность прочитать атрибуты класс, наименование и ключ ресурса. Так же от этого права зависит большинство других прав ресурса, например изменение, таким образом нельзя изменить ресурс не имея возможности его прочитать.

create = <Permission „create“ in scope „resource“>

Создание: довольно туманное право, сейчас не используется. Идея была в том, что при создании нового ресурса проверялось наличие в нем права на создание, но сейчас проверяется только право manage_children для дочернего ресурса. Возможно потом стоит к этому вернуться, без этого права невозможно ограничить создание новых ресурсов определенного типа.

update = <Permission „update“ in scope „resource“>

Изменение: изменение наименования и ключа ресурса, по аналогии с правом read. На изменение остальных атрибутов это ни как не влияет.

delete = <Permission „delete“ in scope „resource“>

Удаление: право на удаление этого ресурса. Помимо этого для реального удаления ресурса необходимо наличие права manage_children у родительского ресурса.

manage_children = <Permission „manage_children“ in scope „resource“>

Управление дочерними ресурсами

change_permissions = <Permission „change_permissions“ in scope „resource“>

Управление правами доступа

class nextgisweb.resource.scope.MetadataScope[исходный код]

Набор прав метаданных ресурса. Типичный пример метаданных ресурса - его описание в свободной форме. Это описание фактически ни на что не влияет, его изменение не приводит к изменению структуры данных или чего-либо еще. Поскольку у каждого типа ресурсов есть описание, то этот набор прав включен для всех ресурсов на уровне класса Resource.

read = <Permission „read“ in scope „metadata“>

Чтение

write = <Permission „write“ in scope „metadata“>

Запись

class nextgisweb.resource.scope.DataStructureScope[исходный код]

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

read = <Permission „read“ in scope „datastruct“>

Чтение

write = <Permission „write“ in scope „datastruct“>

Запись

class nextgisweb.resource.scope.DataScope[исходный код]

Набор прав доступа к данным

read = <Permission „read“ in scope „data“>

Чтение

write = <Permission „write“ in scope „data“>

Запись

class nextgisweb.resource.scope.ConnectionScope[исходный код]

Набор прав параметров внешнего соединения. В некоторых случаях требуется хранить в ресурсе параметры доступа к внешним ресурсам. Эти параметры могут содержать чувствительные данные с точки зрения безопасности, например логины и пароли для доступа к удаленной БД.

class nextgisweb.resource.scope.ServiceScope[исходный код]

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

connect = <Permission „connect“ in scope „service“>

Подключение

configure = <Permission „configure“ in scope „service“>

Настройка

HTTP API

GET /api/resource/{id}

Получить JSON представление ресурса. Для вызова этого метода необходимо как минимум право чтения ресурса.

PUT /api/resource/{id}

Изменить ресурс в соответствии с переданным JSON. Так же необходимо право чтения ресурса.

DELETE /api/resource/{id}

Удалить ресурс.

GET /api/resource/

Выбрать ресурсы и получить JSON.

Parameters:
  • parent (integer) – Идентификатор ресурса-родителя.
POST /api/resource/

Создать ресурс в соответствии с JSON.

Parameters:
  • parent (integer) – Идентификатор ресурса-родителя, так же может быть передан в JSON.
  • cls (string) – Идентификатор класса создаваемого ресурса.