User Manager ожидает URL для загрузки и сохранения данных:
view:"usermanager", url:"remote/data"
Более подробную информацию о роутах и параметрах читайте в статье Работа с сервером.
Если у вас нет бэкенд сервера или ваш проект требует нестандартной логики, вы можете кастомизировать сервис Backend.
User Manager ожидает JSON данные, где у каждого элемента массива (пользователя) следующая структура:
Пример данных пользователя
[
{
avatar: "remote/assets/image.jpg",
details: "CEO of the Best CO.",
email: "dvor.august@gmail.com",
id: 97,
name: "August Dvorak",
registered: "2020-05-31T17:40:48Z",
status: 0,
visited: "2020-05-31T17:40:48Z"
},
// другие объекты
]
User Manager ожидает JSON данные, где у каждого элемента массива (роли) следующая структура:
Пример данных роли
[
{
id:1,
name: "Admin",
color: "#00a037",
details: "Some details"
},
// другие объекты
]
User Manager ожидает JSON данные, где у каждого элемента массива (правила) следующая структура:
Пример данных правила
[
{
id: 1,
long: "Can see user details and access levels",
short: "CanSeeUsers"
},
// другие объекты
]
У User Manager следующие сервисы для работы с данными:
1. Local
const local = $$("um").getService("local");
local.users(); // получаем коллекцию пользователей
2. Operations
const ops = $$("um").getService("operations");
ops.updateRole(id, obj); // обновляем указанную роль
3. Prompt
const prompt = $$("um").getService("prompt");
prompt.config(text); // определяем текст для окна
4. Progress
const prog = $$("um").getService("progress");
prog.start();
5. Backend
const back = $$("um").getService("backend");
back.rules().then((data) => console.log(data));
Смотрите папку models исходного кода, чтобы познакомиться с сигнатурами методов.
Все данные о пользователях, ролях и правах хранятся в DataCollections. Чтобы получить доступ к коллекции, вызовите один из одноимённых методов сервиса Local: .users(), .roles() или .rules() соответственно. Методы принимают один параметр:
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. Метод принимает 1 параметр:
const data = $$("um").getService("local");
data.meta(true);
Метод возвращает объект со следующей структурой:
{
"RoleRule":[[3,1]],
"UserRole":[[4,3]], // пользователю с ID: 4 присвоена роль с ID: 3
"UserRule":[[2,6]]
}
Чтобы получить доступ к последним действиям пользователей, вызовите метод .logsMeta(). Метод принимает один параметр:
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"}
}
Наверх