Перейти к содержанию

Подключение структуры организации

Назначение документа

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

В данном документе описано подключение структуры организации в случаях, когда:

Документ предназначен для использования администраторами организации.

Дополнительная документация

Инструкция по настройке и администрированию продуктов VK WorkMail, VK WorkDisk, VK Teams — в документе описано управление структурой организации в административной панели VK WorkSpace при наличии интеграции с VK WorkMail. Документ предназначен для использования администраторами организации.

Как работать в VK Teams — в документе описана работа пользователей со структурой организации в корпоративном мессенджере VK Teams — поиск сотрудников и организаций, просмотр иерархии отделов и иерархии между организациями.

Архитектура и описание системы VK Teams — в документе представлено описание сервисов, обеспечивающих работу функциональности оргструктуры. Не является частью публичной документации, обратитесь к представителю VK Tech, чтобы ознакомиться с документом.

Подключение структуры организации при наличии интеграции с VK WorkMail

Шаг 1. Подключите функциональность в административной панели

Чтобы подключить функциональность оргструктуры в административной панели VK WorkSpace, обратитесь в техническую поддержку или к вашему персональному менеджеру.

Шаг 2. Создайте структуру организации

После подключения функциональности управление оргструктурой происходит в административной панели VK WorkSpace в разделе Структура организаций.

Вы можете создать структуру организаций вручную или загрузить ее при помощи XLSX-файла. Подробные инструкции по управлению оргструктурой в административной панели VK WorkSpace представлены в документе «Инструкция по настройке и администрированию продуктов VK WorkMail, VK WorkDisk, VK Teams» в разделе Структура организаций.

Шаг 3. Подключите функциональность в мессенджере

После создания оргструктуры в административной панели VK WorkSpace подключите структуру организации в корпоративном мессенджере VK Teams:

  1. В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json произведите следующие настройки:

    • Укажите в секции orgstructure для url и url-dark webim-ссылку вида https://webim.<YOUR_DOMAIN>/webapps/orgstructure:

      "services": {
          "config": {
              "orgstructure": {
                  "external": false,
                  "needs_auth": true,
                  "url": "https://webim.<YOUR_DOMAIN>/webapps/orgstructure",
                  "url-dark": "https://webim.<YOUR_DOMAIN>/webapps/orgstructure",
                  "staff-visible-part-index": 2
                  }   
      

      , где:

      • <YOUR_DOMAIN> — ваш домен;

      • staff-visible-part-index — количество пользователей, которые будут отображаться в оргструктуре подразделения над кнопкой «Показать всех». Значение по умолчанию — 2.

    • Включите отображение вкладки оргструктуры в клиентском приложении:

      "services": {
          "disposition": {
                  "desktop": { #включаем отображение сервиса оргструктуры в десктоп-версии
                      "leftbar": [
                          "orgstructure"
                      ]
                  },
                  "mobile": { #включаем отображение сервиса оргструктуры в мобильном приложении
                      "services": [
                          "orgstructure"
                      ]
      

      Примечание

      В секциях leftbar и services могут быть подключены другие сервисы. Не удаляйте их.

  2. Пересоздайте под админ-консоли:

    kubectl delete pod -n vkteams myteam-admin-\*
    

    , где: * — уникальное имя пода. Имя пода необходимо получить с помощью вывода команды:

    kubectl get pods -A | grep myteam-admin
    

После данных настроек в разделе сервисов VK Teams появится иконка для работы со структурой организации.

Подключение структуры организации при отсутствии интеграции с VK WorkMail

При отсутствии интеграции с VK WorkMail функциональность оргструктуры в VK Teams обеспечивают сервисы:

  • Sys-org-adapt — наполняет оргструктуру мессенджера VK Teams, используя внешний источник данных о пользователях и организациях.
  • Org-nomail-adapt — заполняет поле «О себе» в профиле пользователя на основании внешнего источника данных о пользователях и организациях.

Более подробное описание сервисов представлено в документе «Архитектура и описание системы VK Teams» (не является частью публичной документации, обратитесь к представителю VK Tech, чтобы ознакомиться с документом).

API для наполнения оргструктуры в VK Teams

Сервис Sys-org-adapt работает с внешним источником данных о пользователях и организациях по описанному ниже API.

Получить подразделения

Метод позволяет получить информацию о подразделениях:

  • название подразделения;
  • уровень вложенности подразделения в иерархии оргструктуры;
  • почта руководителя.

Входные данные

Get <DOMAIN>/api/v2/units/

, где <DOMAIN> — домен внешнего источника данных о пользователях и организациях.

Ограничения

Данный метод требует авторизации.

Для авторизации сервис Sys-org-adapt передает в заголовке Authorization авторизационный токен, который можно настроить в конфигурационном файле сервиса. Чтобы сделать это, перейдите в /usr/local/etc/sys-org-adapt-1.yaml и укажите в поле api_key авторизационный токен:

sys:
  api_key: "TOKEN"

Параметры

Имя Тип Описание
page
*required
string Номер страницы
per_page
*required
string Количество подразделений на странице
exclude_hidden boolean Если в запросе передано это значение, то в ответе не передаются подразделения, которые должны быть скрыты в оргструктуре VK Teams

Пример запроса для получения подразделений

curl https://<DOMAIN>/api/v2/units/?page=1&per_page=100&exclude_hidden=true

Формат ответа

{
  "objects": [
    {
      "id": 2, # идентификатор подразделения
      "parent_id": 1, # идентификатор родительского подразделения
      "email": "i_ivanov@YOUR_DOMAIN.ru", # почта руководителя подразделения
      "level": 7, # уровень вложенности подразделения при отсчете от корневого подразделения (level: 0)
      "name": "Юнит № 1", # название подразделения
    },
  ],
  "meta" : {
    "next": 2 # следующая страница
  }
}

Получить пользователей

Метод позволяет получить информацию о пользователях:

  • название должности;
  • название подразделения, в котором работает пользователь;
  • почта пользователя.

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

Входные данные

Get <DOMAIN>/api/v2/users

, где <DOMAIN> — домен внешнего источника данных о пользователях и организациях.

Ограничения

Данный метод требует авторизации.

Для авторизации сервис Sys-org-adapt передает в заголовке Authorization авторизационный токен, который можно настроить в конфигурационном файле сервиса. Чтобы сделать это, перейдите в /usr/local/etc/sys-org-adapt-1.yaml и укажите в поле api_key авторизационный токен:

sys:
  api_key: TOKEN

Параметры

Имя Тип Описание
page
*required
string Номер страницы
per_page
*required
string Количество подразделений на странице
end_of_work__isnull boolean Если в запросе значение true, то в ответе передаются только те сотрудники, которые еще работают в компании

Пример запроса для получения пользователей

curl https://<DOMAIN>/api/v2/users/?page=1&per_page=100&end_of_work__isnull=true

Формат ответа

{
  "objects": [
    {
      "appointment_name": 1, # название должности пользователя
      "unit_id": 2, # подразделение, в котором работает пользователь
      "email": "i_ivanov@YOUR_DOMAIN.ru", # почта пользователя
      "is_technical_account": false # если аккаунт технический, он не будет добавлен в оргструткуру
      "is_active": true # будут добавлены только активные пользователи 
      "end_of_work": "2023-01-01" # если пользователь уволен уже не работает, то он не будет добавлен в оргструткуру
    },
  ],
  "meta" : {
    "next": 2 # следующая страница
  }
}

Шаг 1. Реализуйте API

Реализуйте методы API, описанные выше.

Шаг 2. Включите синхронизацию

Чтобы сервис Sys-org-adapt начал обходить внешний источник данных о пользователях и организациях, необходимо включить синхронизацию в etcd:

etcdctl --endpoints [ХОСТ_ETCD]:[ПОРТ_ETCD] put /vars/services/sys_org_adapt/production/public/service/unit_tree_updater_enabled true

Пример команды:

etcdctl --endpoints etcd.im-etcd.svc.cluster.local:2379 put /vars/services/sys_org_adapt/production/public/service/unit_tree_updater_enabled true

Шаг 3. Включите дополнительные настройки (опционально)

Заполнение поля «О себе»

Чтобы выгружать значение поля «О себе» из внешнего источника оргструктуры в профиль пользователя VK Teams, необходимо:

  1. В конфигурационном файле /usr/local/etc/nomail-1.conf добавить следующие строчки:

    nomail.connector.additional.extra.fields.enabled "true"
    nomail.keycloak.additional.extra.fields organization,department,position,mobile
    nomail.keycloak.about.fields [$sys:organization](vkteams://miniapp/orgstructure/?unitId=$sys:organizationid)\n[$sys:department](vkteams://miniapp/orgstructure/?unitId=$sys:departmentid)\n$sys:position\n$sys:syslink\n\nРуководитель:\n[$sys:leadfullname]({https://u.{DOMAIN}/}/profile/$sys:leademail)
    nomail.connector.url {адрес org-nomail-adapt}
    nomail.connector.method query
    nomail.keycloak.compound.about.connectors.enabled true
    
  2. Перезапустить сервис Nomail:

    systemctl restart nomail-*
    

Отображение номера телефона отдельным полем

Чтобы номер телефона пользователя отображался в карточке контакта отдельным полем, необходимо:

  1. В конфигурационных файлах сервиса Front

    /usr/local/etc/front-1.conf

    /usr/local/etc/front-2.conf

    /usr/local/etc/front-3.conf

    /usr/local/etc/front-4.conf

    указать для поля userInfo.phone_from_prof_st значение true:

    userInfo.phone_from_prof_st: true
    
  2. Перезапустить сервис Front:

    systemctl restart front-*
    
  3. В конфигурационном файле сервиса Nomail /usr/local/etc/nomail-1.conf указать для поля user.phone_filed значение "mobile":

    user.phone_filed: "mobile"
    
  4. Перезапустить сервис Nomail:

    systemctl restart nomail-*
    
  5. В конфигурационный файл сервиса Prof-st /usr/local/etc/prof-st-1.conf добавить следующие строчки:

    app_anketa_phone_can_be_string true
    app_fb_sync_create true
    user.phone_filed "mobile"
    
  6. Перезапустить сервис Prof-st:

    systemctl restart prof-st-*
    
  7. В конфигурационный файл сервиса Feedog /oap/feedog_srv_post.tcl добавить строчку:

    set enableValidatePhone 0
    
  8. Перезапустить сервис Feedog :

    cpsh 4322
    restart_job feedog
    




Дата создания документа: 18.04.2024 г.