@Test public void return_groups_only_when_system_administer() { UserDto user = db.users().insertUser(); GroupDto group1 = db.users().insertGroup(db.getDefaultOrganization(), "group1"); GroupDto group2 = db.users().insertGroup(db.getDefaultOrganization(), "group2"); GroupDto group3 = db.users().insertGroup(db.getDefaultOrganization(), "group3"); db.users().insertMember(group1, user); db.users().insertMember(group2, user); userIndexer.indexOnStartup(null); userSession.logIn().setSystemAdministrator(); assertThat(ws.newRequest() .executeProtobuf(SearchWsResponse.class).getUsersList()) .extracting(User::getLogin, u -> u.getGroups().getGroupsList()) .containsExactlyInAnyOrder(tuple(user.getLogin(), asList(group1.getName(), group2.getName()))); userSession.logIn(); assertThat(ws.newRequest() .executeProtobuf(SearchWsResponse.class).getUsersList()) .extracting(User::getLogin, User::hasGroups) .containsExactlyInAnyOrder(tuple(user.getLogin(), false)); }