@Override public void onApplicationEvent(UserDeletingEvent event) { authorizedMembershipService.deleteByUserId(event.getUserId()); } }
@Override public void onApplicationEvent(GroupDeletingEvent event) { authorizedMembershipService.deleteByGroup(event.getGroupDescriptor()); } }
private void checkRole(UserId userId, String[] roleNames) { List<RoleDescriptor> roles = authorizedMembershipService.findRolesByUser(userId); for (RoleDescriptor role : roles) { if (Arrays.asList(roleNames).contains(role.getRoleName())) { return; } } throw new NotAuthorizedException(roleNames); }
@Transactional public void onApplicationEvent(UserActivatedEvent event) { RoleDescriptor role = roleService.findOrCreateRole(event.getTenantId(), DefaultRole.USER); GroupDescriptor groupDefault = groupService.findOrCreateGroup(event.getTenantId(), DefaultGroup.DEFAULT.getName()); authorizedMembershipService.createAuthorizedMembershipIfNotExists(event.getTenantId(), event.getUserId(), role, groupDefault); }
@Transactional public void deleteAuthorizedMembership(TenantId tenantId, UserId userId, RoleDescriptor roleDescriptor, GroupDescriptor groupDescriptor) { checkTenantMatch(tenantId, userId); AuthorizedMembership authorizedMembership = authorizedMembershipRepository.findByUserIdAndRoleId(userId.getId(), roleDescriptor.getRoleId(), groupDescriptor.getGroupId()); if (authorizedMembership != null) { authorizedMembershipRepository.delete(authorizedMembership); applicationEventPublisher.publishEvent(new AuthorizedMembershipDeletedEvent(this, tenantId, roleDescriptor, userId, groupDescriptor)); } }
@Transactional public void createAuthorizedMembershipIfNotExists(TenantId tenantId, UserId userId, RoleDescriptor roleDescriptor, GroupDescriptor groupDescriptor) { checkTenantMatch(tenantId, userId); AuthorizedMembership membership = authorizedMembershipRepository.findByUserIdAndRoleId(userId.getId(), roleDescriptor.getRoleId(), groupDescriptor.getGroupId()); if (membership == null) { Role r = roleRepository.findOne(roleDescriptor.getRoleId()); User u = userRepository.findOne(userId.getId()); Group g = groupRepository.findOne(groupDescriptor.getGroupId()); AuthorizedMembership authorizedMembership = new AuthorizedMembership(u, r, g); authorizedMembershipRepository.save(authorizedMembership); applicationEventPublisher.publishEvent(new AuthorizedMembershipCreatedEvent(this, tenantId, roleDescriptor, userId, groupDescriptor)); } }
private void checkTenantMatch(TenantId tenantId, UserId userId) { User user = userRepository.findOne(userId.getId()); if (!user.getTenant().getId().equals(tenantId.getId())) { throw new WrongTenantException(tenantId, userId); } } }
@Transactional public void onApplicationEvent(TenantActivatedEvent event) { try { User admin = userCommandService.create( event.getTenantId(), event.getLogin(), event.getEmail(), event.getPassword(), event.getFirstName(), event.getLastName()); RoleDescriptor roleAdmin = roleService.findOrCreateRole(event.getTenantId(), DefaultRole.ADMIN); RoleDescriptor roleUser = roleService.findOrCreateRole(event.getTenantId(), DefaultRole.USER); GroupDescriptor groupDefault = groupService.findOrCreateGroup(event.getTenantId(), DefaultGroup.DEFAULT.getName()); authorizedMembershipService.createAuthorizedMembershipIfNotExists(event.getTenantId(), new UserId(admin.getId()), roleAdmin, groupDefault); authorizedMembershipService.createAuthorizedMembershipIfNotExists(event.getTenantId(), new UserId(admin.getId()), roleUser, groupDefault); } catch (TenantNotFoundException | LoginAlreadyExistsException | EmailAlreadyExistsException | InvalidEmailException e) { throw new RuntimeException(e); } }
@Override protected UserResource instantiateResource(User entity) { List<RoleDescriptor> roles = service.findRolesByUser(new UserId(entity.getId())); return new UserResource( entity.getId(), entity.getPerson().getFirstName(), entity.getPerson().getLastName(), entity.getPerson().getDisplayName(), entity.getLogin(), entity.getPerson().getContactInformation().getEmail(), entity.getPerson().getAvatarId(), entity.isEnabled(), toNames(roles)); }
authorizedMembershipService.createAuthorizedMembershipIfNotExists(tenantId, userId, roleDescriptor, group); logger.info("role name={}, user={}, tenant={} assigned...", roleDescriptor.getRoleName(), user.getLogin(), tenant.getName()); authorizedMembershipService.createAuthorizedMembershipIfNotExists(tenantId, userId, userRole, group);
@Override protected UserResource instantiateResource(User entity) { List<RoleDescriptor> roles = service.findRolesByUser(new UserId(entity.getId())); return new UserResource( entity.getId(), entity.getPerson().getFirstName(), entity.getPerson().getLastName(), entity.getPerson().getDisplayName(), entity.getLogin(), entity.getPerson().getContactInformation().getEmail(), entity.getPerson().getAvatarId(), entity.isEnabled(), toNames(roles)); }
authorizedMembershipService.createAuthorizedMembershipIfNotExists(tenantId, userId, roleDescriptor, group); logger.info("role name={}, user={}, tenant={} assigned...", roleDescriptor.getRoleName(), user.getLogin(), tenant.getName()); authorizedMembershipService.createAuthorizedMembershipIfNotExists(tenantId, userId, userRole, group);