Работа с данными

Загрузка данных

User Manager ожидает загрузку данных по URL:

view:"usermanager", url:"remote/data"

Сервисы Jet

User Manager работает со следующими сервисами:

  • Local - работает с клиентскими данными
  • Operations - синхронизирует серверные и клиентские данные
  • Prompt - service for adding new reports (User/Role by default) via a dialog
  • Progress - визуализация прогресса операций на стороне клиента
  • Backend - работает с сервером

Операции с данными

Как получить клиентские данные

Все данные о пользователях, ролях и правах хранятся в DataCollections. Чтобы получить доступ к коллекции, вызовите один из одноимённых методов сервиса Local: .users(), .roles() или .rules() соответственно. Методы принимают один параметр:

  • now (boolean) - в случае true, мы подразумеваем, что данные доступны на клиенте.
const data = $$("um").getService("local");
 
// доступ к коллекции 'users' 
const collection = data.users();

При первой загрузке коллекция (директория) кэшируется, поэтому мы всегда можем обратиться к ней синхронно. Но если вы не уверены, загружена директория или нет, вы можете запросить файлы асинхронно. Данные подгрузятся в процессе:

data.roles(true).then(collection => {/* ваш код */});

Также вы можете сериализировать данные, чтобы получить доступ к самим элементам:

const rules = data.rules(true)
.then(collection => {
    collection.serialize(); // массив прав доступа
});

Related sample:  User Manager: Data Operations

Как получить метаданные

Доступ к зависимостям между пользователями, ролями и правами

Загруженные записи не содержат информации о том, как пользователи, роли и права доступа связаны между собой. Это сделано из-за соображений безопасности.

Чтобы получить эти данные, вызовите метод .meta() у сервиса Local. Метод принимает один параметр:

  • now (boolean) - в случае true, мы подразумеваем, что данные доступны на клиенте.
const data = $$("um").getService("local");
data.meta(true);

Метод возвращает объект со следующей структурой:

{
  "RoleRule":[[3,1]],
  "UserRole":[[4,3]], // пользователю с ID: 4 присвоена роль с ID: 3
  "UserRule":[[2,6]]
}

Доступ к последним действиям

Чтобы получить доступ к последним действиям пользователей, вызовите метод .logsMeta(). Метод принимает один параметр:

  • now (boolean) - в случае true, мы подразумеваем, что данные доступны на клиенте.
const data = $$("um").getService("local");
data.meta(true);

Метод возвращает объект с именами действий и локаций, в которых эти действия производились:

{
  "1":{"name":"User login","target":"user"},
  "2":{"name":"Role added","target":"role"},
  "3":{"name":"Role data changed","target":"role"}
}
Наверх