Nuovo utente assegnato ad un gruppo e ruoli associati

Ciao a tutti, ho un problema.
Ho creato un’entità Cliente e poi un listener con oneBeforeInsert() che carica ogni utente creato nel Sistema Utente.
Poi ho creato un gruppo di accesso Clienti e un altro Dipendenti.
Non riesco ad inserire il cliente appena creato direttamente nel gruppo di accesso Clienti o Dipendenti.
In alcune discussioni ho trovato questo modo impostando COMPANY_GROUP_ID ma avrei bisogno di qualcosa per assegnarli nei sottogruppi al momento della creazione e non in Company gruppo, e anche i Ruoli associati.

Spero che qualcuno possa aiutarmi. Di seguito pubblico il codice.

public void onBeforeInsert(Customer entity, EntityManager entityManager) {
    /**
     * ID of the Group for self-registered users.
     */
    final String COMPANY_GROUP_ID = "0fa2b1a5-1d68-4d69-9fbd-dff348347f93";

    /**
     * ID of the Role to be assigned to self-registered users.
     */
    final String DEFAULT_ROLE_ID = "3ec31528-dc0e-c341-7727-7b46771ae9ff";
    // Load group and role to be assigned to the new user
    Group group = dataManager.load(LoadContext.create(Group.class).setId(UUID.fromString(CUSTOMER_GROUP_ID)));
    Role role = dataManager.load(LoadContext.create(Role.class).setId(UUID.fromString(DEFAULT_ROLE_ID)));
   
    User user=metadata.create(com.haulmont.cuba.security.entity.User.class);
    user.setPassword(passwordEncryption.getPasswordHash(user.getId(), entity.getPassword()));
    user.setName(entity.getName());
    user.setLogin(entity.getNameLogin());
    
    user.setGroup(group);

    UserRole userRole = metadata.create(UserRole.class);
    userRole.setUser(user);
    userRole.setRole(role);

    dataManager.commit(user);
}