Разделяемые поля

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

Список этих полей зависит от уровня доступа пользователя, запрашивающего информацию.

Поля для администраторов

Пользователи с ролью admin и «ниже» будут получать ключи editable, readable и accessible.

Поле

Тип

Описание

editable

bool

Флаг возможности редактирования

readable

bool

Флаг возможности просмотра

accessible

bool

Флаг общей доступности

Смысловое значение полей на примере точки продаж:

  • editable - возможность внесения изменений пользователем в точку.

  • readable - возможность просмотра информации о точке. false в большинстве случаев означает неправильную настройку системы

  • accessible - наличие точки в списке доступных (не удаленных)

Структура поля permissions

Пользователи-франчайзеры вместо описанных ранее полей получают ключ permissions, определяющий права франчайзи на доступ к документу.

В общем случае, все документы делятся на два типа - приватные и общие. Приватные документы видны и доступны для редактирования только одному франчайзи (и франчайзеру системы). Общие документы видны всем франчайзи, у которых есть доступ к этим документам, но редактировать их может только франчайзер.

Приватность документа определяется значением ключа shared (bool).

Информация о франчайзи, имеющих доступ к документу, передается в ключе franchisee, тип которого зависит от ключа shared.

Если shared = false (приватный документ), то значение ключа - объект с краткой информацией о франчайзи (id и name).

Если shared = true, то в ключе передается список из объектов с информацией о франчайзи. При этом пустой список соответствует наличию доступа к документу у всех франчайзи.

Приватный документ

{
  "shared": false,
  "franchisee": {
    "id": "59e4a16d6f472902958b3475",
    "name": "Моя компания"
  }
}

Общий документ

{
  "shared": true,
  "franchisee": [
    {
      "id": "59e4a16d6f472902958b3475",
      "name": "Моя компания"
    }
  ]
}