Библиотеки
@diasoft/qpalette-core
Ключ партиции пользователя

Ключ партиции пользователя

Доступно в ближайшем выпуске 8.2.x — следите за заметками к выпуску.

Библиотеки Q.Palette хранят часть состояния пользователя на стороне браузера — в localStorage: история недавних значений q-search-box (настройка showRecentValues), состояние таблиц и другое. Чтобы на общем рабочем месте (операционный зал, смена операторов) следующий пользователь не видел выбор предыдущего, записи разделяются по партиции пользователя — идентификатору, который включается в ключ записи.

Ключ партиции библиотеки получают через токен Q_USER_PARTITION_KEY из @diasoft/qpalette-core. Это функция, а не строка: ключ вычисляется при каждом обращении к хранилищу, поэтому вход в систему без перезагрузки страницы уводит последующие записи в партицию вошедшего.

Из коробки

При использовании авторизации Q.Palette ничего настраивать не нужно: provideQAuth привязывает токен к логину вошедшего (QAuthService.getUserPartitionKey) — тот же ключ, что использует остальное пользовательское состояние платформы (вкладки, состояние таблиц). Для невошедших пользователей и приложений без авторизации записи идут в общую партицию unauthenticated (Q_USER_PARTITION_DEFAULT).

Собственная авторизация продукта

Если продукт не использует авторизацию Q.Palette, партию можно задать самим, предоставив провайдер токена:

import {Q_USER_PARTITION_KEY} from '@diasoft/qpalette-core';
 
export const appProviders = [
  // ленивая функция: ключ вычисляется при каждом обращении к хранилищу
  { provide: Q_USER_PARTITION_KEY, useValue: () => currentSession.userLogin },
];

Без провайдера библиотеки используют общую партицию — записи пользователей не разделяются, но всё продолжает работать.