Более конкретно у юзера будет поле с Датой. и в методе DatabaseUserRepository#loadUserByUsername предполагается проверка этой даты.
Если дата после того что ща на серваке. То у юзера должен быть readOnly на ВСЕ экраны.
То есть если по дате разрешено. То у Юзера стандартные его права. (создание обновление и тд). Но если не разрешено. До доступ к экранам и сущностям что у него заданы по правам должны быть только в readOnly. Можно это как-то сделать?
В теории, можно воспользоваться функциональностью по назначению ролей Jmix.
Т.е. в нужный вам момент времени удалить ненужную роль с пользователя через RoleAssignmentPersistence бин, затем сгенерировать новый токен аутентификации и установить новую аутентификацию с помощью SecurityContextHelper.
Сообщите, пожалуйста, если этот способ не подойдёт вам.
Так мне получается нужно будет удалить не нужные роли (через бд? или удаление в loadUserByUsername сработает). И создать их копии с EntityPolicyAction.READ, При этом нужно их в бд сохранить?
Так… то есть мне придется удалять роли юзера в бд, при этом сохранять где-то как в roleAssigment что такие-то роли у него были, и такая-то для чтения добавилась… Как-то сложно выглядит…
У нас в проекте все экраны наследуются от Базовых… Я наверн в базовых экранах логику пропишу…
В целом, ещё механизм назначения и удаления ролей можете подсмотреть в стандартном экране назначения: io.jmix.securityflowui.view.roleassignment.RoleAssignmentView