private CurrentWsResponse toWsResponse(DbSession dbSession, String userLogin) { UserDto user = dbClient.userDao().selectActiveUserByLogin(dbSession, userLogin); checkState(user != null, "User login '%s' cannot be found", userLogin); Collection<String> groups = dbClient.groupMembershipDao().selectGroupsByLogins(dbSession, singletonList(userLogin)).get(userLogin); Optional<OrganizationDto> personalOrganization = getPersonalOrganization(dbSession, user); CurrentWsResponse.Builder builder = newBuilder() .setIsLoggedIn(true) .setLogin(user.getLogin()) .setName(user.getName()) .setLocal(user.isLocal()) .addAllGroups(groups) .addAllScmAccounts(user.getScmAccountsAsList()) .setPermissions(Permissions.newBuilder().addAllGlobal(getGlobalPermissions()).build()) .setHomepage(buildHomepage(dbSession, user)) .setShowOnboardingTutorial(!user.isOnboarded()) .addAllSettings(loadUserSettings(dbSession, user)); ofNullable(emptyToNull(user.getEmail())).ifPresent(builder::setEmail); ofNullable(emptyToNull(user.getEmail())).ifPresent(u -> builder.setAvatar(avatarResolver.create(user))); ofNullable(user.getExternalLogin()).ifPresent(builder::setExternalIdentity); ofNullable(user.getExternalIdentityProvider()).ifPresent(builder::setExternalProvider); personalOrganization.ifPresent(org -> builder.setPersonalOrganization(org.getKey())); return builder.build(); }
private CurrentWsResponse toWsResponse(DbSession dbSession, String userLogin) { UserDto user = dbClient.userDao().selectActiveUserByLogin(dbSession, userLogin); checkState(user != null, "User login '%s' cannot be found", userLogin); Collection<String> groups = dbClient.groupMembershipDao().selectGroupsByLogins(dbSession, singletonList(userLogin)).get(userLogin); CurrentWsResponse.Builder builder = newBuilder() .setIsLoggedIn(true) .setLogin(user.getLogin()) .setName(user.getName()) .setLocal(user.isLocal()) .addAllGroups(groups) .addAllScmAccounts(user.getScmAccountsAsList()) .setPermissions(Permissions.newBuilder().addAllGlobal(getGlobalPermissions()).build()) .setHomepage(buildHomepage(dbSession, user)) .setShowOnboardingTutorial(!user.isOnboarded()); setNullable(emptyToNull(user.getEmail()), builder::setEmail); setNullable(emptyToNull(user.getEmail()), u -> builder.setAvatar(avatarResolver.create(user))); setNullable(user.getExternalLogin(), builder::setExternalIdentity); setNullable(user.getExternalIdentityProvider(), builder::setExternalProvider); return builder.build(); }
@Override public void handle(Request request, Response response) throws Exception { if (userSession.isLoggedIn()) { try (DbSession dbSession = dbClient.openSession(false)) { writeProtobuf(toWsResponse(dbSession, userSession.getLogin()), request, response); } } else { writeProtobuf(newBuilder() .setIsLoggedIn(false) .setPermissions(Permissions.newBuilder().addAllGlobal(getGlobalPermissions()).build()) .build(), request, response); } }
@Override public void handle(Request request, Response response) throws Exception { if (userSession.isLoggedIn()) { try (DbSession dbSession = dbClient.openSession(false)) { writeProtobuf(toWsResponse(dbSession, userSession.getLogin()), request, response); } } else { writeProtobuf(newBuilder() .setIsLoggedIn(false) .setPermissions(Permissions.newBuilder().addAllGlobal(getGlobalPermissions()).build()) .build(), request, response); } }