grave1kro
(Krack Digger)
02.Сентябрь.2022 18:00:50
1
Здравствуйте! В cuba была возможность устанавливать роли по умолчанию. Есть ли такая возможность в jmix? Создал гостевую роль User с единственной функциональностью: под этой ролью можно создавать учётную запись самостоятельно. Нужно, чтобы каждой новой учётке назначались роли: UI: minimal access и созданная ранее роль для покупателей - Customer. Как можно программно реализовать данный функционал?
yarik1706
(Ярослав Горожанкин)
05.Сентябрь.2022 15:12:07
2
Программно думаю можно подписаться на событие создания Юзера и там создать RoleAssignmentEntity
grave1kro
(Krack Digger)
05.Сентябрь.2022 17:35:43
3
Ну, пробовал данное решение, но у меня оно не работает:
Hi, In order to assign roles programmatically you must create and persist an instance of io.jmix.securitydata.entity.RoleAssignmentEntity, e.g. RoleAssignmentEntity roleAssignmentEntity = metadata.create(RoleAssignmentEntity.class);...
a.afanasev
(Андрей Афанасьев)
06.Сентябрь.2022 11:44:07
5
Добрый день, вообще данное решение проблемы должно помочь и должно работать, что именно не получилось?
yarik1706
(Ярослав Горожанкин)
06.Сентябрь.2022 11:45:44
6
А что именно не работает? Ошибка падает? Можете скинуть код?
grave1kro
(Krack Digger)
06.Сентябрь.2022 17:29:54
7
В общем, помогло данное решение:
List<Object> toSave = new ArrayList<>();
toSave.add(user);
toSave.add(createRoleAssignment(user, CombinedManagerRole.CODE, RoleAssignmentRoleType.RESOURCE));
toSave.add(createRoleAssignment(user, RestrictedProjectsRole.CODE, RoleAssignmentRoleType.ROW_LEVEL));
toSave.add(createRoleAssignment(user, RestrictedDocumentsRole.CODE, RoleAssignmentRoleType.ROW_LEVEL));
unconstrainedDataManager.save(toSave.toArray());
}
private RoleAssignmentEntity createRoleAssignment(User user, String roleCode, String roleType) {
RoleAssignmentEntity roleAssignmentEntity = unconstrainedDataManager.create(RoleAssignmentEntity.class);
roleAssignmentEntity.setRoleCode(roleCode);
roleAssignmentEntity.setUsername(user.getUsername());
roleAssignmentEntity.setRoleType(roleType);
return roleAssignmentEntity;
}
}
Спасибо всем за участие!