Как можно получить список всех пользователей, находящихся в данный момент онлайн.
И закрыть сессии при каком-то условии.
Здравствуйте!
Советую посмотреть реализацию экрана “Пользовательские сессии” (SessionBrowser
) и класса UserSessionsDatasource
, который в нём используется.
В простом варианте достаточно использовать бин UserSessionService
и его методы:
killSession
loadUserSessionEntities
1 симпатия
Спасибо, помогло
А из модуля core как получить доступ к списку текущих пользователей в системе?
Подойдёт бин com.haulmont.cuba.security.app.UserSessionsAPI
и его методы:
- getUserSessionEntitiesStream();
- getUserSessionsStream();
1 симпатия
А в модуле core как его инжектировать?
@Inject UserSessionsAPI userSessionsAPI;
Возвращает null.
Инжекция доступна только в Spring бинах. Если у вас простой класс то можно воспользоваться AppBeans
:
UserSessionsAPI userSessionsApi = AppBeans.get(UserSessionsAPI.NAME);
Но имейте в виду, AppBeans
в Jmix удалён, поэтому лучше планировать код без его использования.
1 симпатия
Огромное спасибо!