Skip to content

Commit

Permalink
SONAR-7254 Replace usage of UserIndex.getByLogin() by UserDao.selectO…
Browse files Browse the repository at this point in the history
…rFailByLogin()
  • Loading branch information
julienlancelot committed Mar 21, 2016
1 parent fc48f0f commit b885489
Show file tree
Hide file tree
Showing 39 changed files with 292 additions and 238 deletions.
Expand Up @@ -27,15 +27,13 @@
import org.sonar.api.utils.text.JsonWriter; import org.sonar.api.utils.text.JsonWriter;
import org.sonar.db.DbClient; import org.sonar.db.DbClient;
import org.sonar.db.DbSession; import org.sonar.db.DbSession;
import org.sonar.db.MyBatis;
import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentDto;
import org.sonar.db.measure.custom.CustomMeasureDto; import org.sonar.db.measure.custom.CustomMeasureDto;
import org.sonar.db.metric.MetricDto; import org.sonar.db.metric.MetricDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.component.ComponentFinder; import org.sonar.server.component.ComponentFinder;
import org.sonar.server.exceptions.BadRequestException; import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.user.UserSession; import org.sonar.server.user.UserSession;
import org.sonar.server.user.index.UserDoc;
import org.sonar.server.user.index.UserIndex;


import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.server.component.ComponentFinder.ParamNames.PROJECT_ID_AND_KEY; import static org.sonar.server.component.ComponentFinder.ParamNames.PROJECT_ID_AND_KEY;
Expand All @@ -57,17 +55,15 @@ public class CreateAction implements CustomMeasuresWsAction {
private final System2 system; private final System2 system;
private final CustomMeasureValidator validator; private final CustomMeasureValidator validator;
private final CustomMeasureJsonWriter customMeasureJsonWriter; private final CustomMeasureJsonWriter customMeasureJsonWriter;
private final UserIndex userIndex;
private final ComponentFinder componentFinder; private final ComponentFinder componentFinder;


public CreateAction(DbClient dbClient, UserSession userSession, System2 system, CustomMeasureValidator validator, CustomMeasureJsonWriter customMeasureJsonWriter, public CreateAction(DbClient dbClient, UserSession userSession, System2 system, CustomMeasureValidator validator, CustomMeasureJsonWriter customMeasureJsonWriter,
UserIndex userIndex, ComponentFinder componentFinder) { ComponentFinder componentFinder) {
this.dbClient = dbClient; this.dbClient = dbClient;
this.userSession = userSession; this.userSession = userSession;
this.system = system; this.system = system;
this.validator = validator; this.validator = validator;
this.customMeasureJsonWriter = customMeasureJsonWriter; this.customMeasureJsonWriter = customMeasureJsonWriter;
this.userIndex = userIndex;
this.componentFinder = componentFinder; this.componentFinder = componentFinder;
} }


Expand Down Expand Up @@ -120,12 +116,12 @@ public void handle(Request request, Response response) throws Exception {
checkPermissions(userSession, component); checkPermissions(userSession, component);
checkIsProjectOrModule(component); checkIsProjectOrModule(component);
checkMeasureDoesNotExistAlready(dbSession, component, metric); checkMeasureDoesNotExistAlready(dbSession, component, metric);
UserDoc user = userIndex.getByLogin(userSession.getLogin()); UserDto user = dbClient.userDao().selectOrFailByLogin(dbSession, userSession.getLogin());
CustomMeasureDto measure = new CustomMeasureDto() CustomMeasureDto measure = new CustomMeasureDto()
.setComponentUuid(component.uuid()) .setComponentUuid(component.uuid())
.setMetricId(metric.getId()) .setMetricId(metric.getId())
.setDescription(description) .setDescription(description)
.setUserLogin(user.login()) .setUserLogin(user.getLogin())
.setCreatedAt(now) .setCreatedAt(now)
.setUpdatedAt(now); .setUpdatedAt(now);
validator.setMeasureValue(measure, valueAsString, metric); validator.setMeasureValue(measure, valueAsString, metric);
Expand All @@ -136,7 +132,7 @@ public void handle(Request request, Response response) throws Exception {
customMeasureJsonWriter.write(json, measure, metric, component, user, true, CustomMeasureJsonWriter.OPTIONAL_FIELDS); customMeasureJsonWriter.write(json, measure, metric, component, user, true, CustomMeasureJsonWriter.OPTIONAL_FIELDS);
json.close(); json.close();
} finally { } finally {
MyBatis.closeQuietly(dbSession); dbClient.closeSession(dbSession);
} }
} }


Expand Down
Expand Up @@ -27,11 +27,11 @@
import java.util.Set; import java.util.Set;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import org.sonar.api.measures.Metric; import org.sonar.api.measures.Metric;
import org.sonar.api.user.User;
import org.sonar.api.utils.text.JsonWriter; import org.sonar.api.utils.text.JsonWriter;
import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentDto;
import org.sonar.db.measure.custom.CustomMeasureDto; import org.sonar.db.measure.custom.CustomMeasureDto;
import org.sonar.db.metric.MetricDto; import org.sonar.db.metric.MetricDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.metric.ws.MetricJsonWriter; import org.sonar.server.metric.ws.MetricJsonWriter;
import org.sonar.server.user.ws.UserJsonWriter; import org.sonar.server.user.ws.UserJsonWriter;


Expand Down Expand Up @@ -59,7 +59,7 @@ public CustomMeasureJsonWriter(UserJsonWriter userJsonWriter) {
this.userJsonWriter = userJsonWriter; this.userJsonWriter = userJsonWriter;
} }


public void write(JsonWriter json, CustomMeasureDto measure, MetricDto metric, ComponentDto component, User user, boolean isPending, Collection<String> fieldsToReturn) { public void write(JsonWriter json, CustomMeasureDto measure, MetricDto metric, ComponentDto component, UserDto user, boolean isPending, Collection<String> fieldsToReturn) {
json.beginObject(); json.beginObject();
json.prop(FIELD_ID, String.valueOf(measure.getId())); json.prop(FIELD_ID, String.valueOf(measure.getId()));
writeIfNeeded(json, measureValue(measure, metric), FIELD_VALUE, fieldsToReturn); writeIfNeeded(json, measureValue(measure, metric), FIELD_VALUE, fieldsToReturn);
Expand Down Expand Up @@ -109,7 +109,7 @@ private String measureValue(CustomMeasureDto measure, MetricDto metric) {
} }
} }


public void write(JsonWriter json, List<CustomMeasureDto> customMeasures, ComponentDto project, Map<Integer, MetricDto> metricsById, Map<String, User> usersByLogin, public void write(JsonWriter json, List<CustomMeasureDto> customMeasures, ComponentDto project, Map<Integer, MetricDto> metricsById, Map<String, UserDto> usersByLogin,
@Nullable Long lastAnalysisTimestamp, Collection<String> fieldsToReturn) { @Nullable Long lastAnalysisTimestamp, Collection<String> fieldsToReturn) {
json.name("customMeasures"); json.name("customMeasures");
json.beginArray(); json.beginArray();
Expand Down
Expand Up @@ -31,7 +31,6 @@
import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService; import org.sonar.api.server.ws.WebService;
import org.sonar.api.user.User;
import org.sonar.api.utils.text.JsonWriter; import org.sonar.api.utils.text.JsonWriter;
import org.sonar.db.DbClient; import org.sonar.db.DbClient;
import org.sonar.db.DbSession; import org.sonar.db.DbSession;
Expand All @@ -40,10 +39,10 @@
import org.sonar.db.component.SnapshotDto; import org.sonar.db.component.SnapshotDto;
import org.sonar.db.measure.custom.CustomMeasureDto; import org.sonar.db.measure.custom.CustomMeasureDto;
import org.sonar.db.metric.MetricDto; import org.sonar.db.metric.MetricDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.component.ComponentFinder; import org.sonar.server.component.ComponentFinder;
import org.sonar.server.es.SearchOptions; import org.sonar.server.es.SearchOptions;
import org.sonar.server.user.UserSession; import org.sonar.server.user.UserSession;
import org.sonar.server.user.index.UserIndex;


import static com.google.common.collect.Sets.newHashSet; import static com.google.common.collect.Sets.newHashSet;
import static org.sonar.server.component.ComponentFinder.ParamNames.PROJECT_ID_AND_KEY; import static org.sonar.server.component.ComponentFinder.ParamNames.PROJECT_ID_AND_KEY;
Expand All @@ -58,14 +57,12 @@ public class SearchAction implements CustomMeasuresWsAction {
public static final String PARAM_PROJECT_KEY = "projectKey"; public static final String PARAM_PROJECT_KEY = "projectKey";


private final DbClient dbClient; private final DbClient dbClient;
private final UserIndex userIndex;
private final CustomMeasureJsonWriter customMeasureJsonWriter; private final CustomMeasureJsonWriter customMeasureJsonWriter;
private final UserSession userSession; private final UserSession userSession;
private final ComponentFinder componentFinder; private final ComponentFinder componentFinder;


public SearchAction(DbClient dbClient, UserIndex userIndex, CustomMeasureJsonWriter customMeasureJsonWriter, UserSession userSession, ComponentFinder componentFinder) { public SearchAction(DbClient dbClient, CustomMeasureJsonWriter customMeasureJsonWriter, UserSession userSession, ComponentFinder componentFinder) {
this.dbClient = dbClient; this.dbClient = dbClient;
this.userIndex = userIndex;
this.customMeasureJsonWriter = customMeasureJsonWriter; this.customMeasureJsonWriter = customMeasureJsonWriter;
this.userSession = userSession; this.userSession = userSession;
this.componentFinder = componentFinder; this.componentFinder = componentFinder;
Expand Down Expand Up @@ -107,7 +104,7 @@ public void handle(Request request, Response response) throws Exception {
Long lastAnalysisDateMs = searchLastSnapshot(dbSession, project); Long lastAnalysisDateMs = searchLastSnapshot(dbSession, project);
List<CustomMeasureDto> customMeasures = searchCustomMeasures(dbSession, project, searchOptions); List<CustomMeasureDto> customMeasures = searchCustomMeasures(dbSession, project, searchOptions);
int nbCustomMeasures = countTotalOfCustomMeasures(dbSession, project); int nbCustomMeasures = countTotalOfCustomMeasures(dbSession, project);
Map<String, User> usersByLogin = usersByLogin(customMeasures); Map<String, UserDto> usersByLogin = usersByLogin(dbSession, customMeasures);
Map<Integer, MetricDto> metricsById = metricsById(dbSession, customMeasures); Map<Integer, MetricDto> metricsById = metricsById(dbSession, customMeasures);


writeResponse(response, customMeasures, nbCustomMeasures, project, metricsById, usersByLogin, lastAnalysisDateMs, searchOptions, fieldsToReturn); writeResponse(response, customMeasures, nbCustomMeasures, project, metricsById, usersByLogin, lastAnalysisDateMs, searchOptions, fieldsToReturn);
Expand All @@ -132,7 +129,7 @@ private List<CustomMeasureDto> searchCustomMeasures(DbSession dbSession, Compone
} }


private void writeResponse(Response response, List<CustomMeasureDto> customMeasures, int nbCustomMeasures, ComponentDto project, Map<Integer, MetricDto> metricsById, private void writeResponse(Response response, List<CustomMeasureDto> customMeasures, int nbCustomMeasures, ComponentDto project, Map<Integer, MetricDto> metricsById,
Map<String, User> usersByLogin, @Nullable Long lastAnalysisDate, SearchOptions searchOptions, List<String> fieldsToReturn) { Map<String, UserDto> usersByLogin, @Nullable Long lastAnalysisDate, SearchOptions searchOptions, List<String> fieldsToReturn) {
JsonWriter json = response.newJsonWriter(); JsonWriter json = response.newJsonWriter();
json.beginObject(); json.beginObject();
customMeasureJsonWriter.write(json, customMeasures, project, metricsById, usersByLogin, lastAnalysisDate, fieldsToReturn); customMeasureJsonWriter.write(json, customMeasures, project, metricsById, usersByLogin, lastAnalysisDate, fieldsToReturn);
Expand All @@ -146,10 +143,12 @@ private Map<Integer, MetricDto> metricsById(DbSession dbSession, List<CustomMeas
return Maps.uniqueIndex(metrics, MetricToIdFunction.INSTANCE); return Maps.uniqueIndex(metrics, MetricToIdFunction.INSTANCE);
} }


private Map<String, User> usersByLogin(List<CustomMeasureDto> customMeasures) { private Map<String, UserDto> usersByLogin(DbSession dbSession, List<CustomMeasureDto> customMeasures) {
return FluentIterable.from(customMeasures) List<String> logins = FluentIterable.from(customMeasures)
.transform(CustomMeasureToUserLoginFunction.INSTANCE) .transform(CustomMeasureToUserLoginFunction.INSTANCE)
.toMap(new UserLoginToUserFunction()); .toList();
List<UserDto> userDtos = dbClient.userDao().selectByLogins(dbSession, logins);
return FluentIterable.from(userDtos).uniqueIndex(UserDtoToLogin.INSTANCE);
} }


private enum CustomMeasureToUserLoginFunction implements Function<CustomMeasureDto, String> { private enum CustomMeasureToUserLoginFunction implements Function<CustomMeasureDto, String> {
Expand All @@ -161,10 +160,12 @@ public String apply(@Nonnull CustomMeasureDto customMeasure) {
} }
} }


private final class UserLoginToUserFunction implements Function<String, User> { private enum UserDtoToLogin implements Function<UserDto, String> {
INSTANCE;

@Override @Override
public User apply(@Nonnull String userLogin) { public String apply(@Nonnull UserDto input) {
return userIndex.getByLogin(userLogin); return input.getLogin();
} }
} }


Expand Down
Expand Up @@ -23,7 +23,6 @@
import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService; import org.sonar.api.server.ws.WebService;
import org.sonar.api.user.User;
import org.sonar.api.utils.System2; import org.sonar.api.utils.System2;
import org.sonar.api.utils.text.JsonWriter; import org.sonar.api.utils.text.JsonWriter;
import org.sonar.db.DbClient; import org.sonar.db.DbClient;
Expand All @@ -32,8 +31,8 @@
import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentDto;
import org.sonar.db.measure.custom.CustomMeasureDto; import org.sonar.db.measure.custom.CustomMeasureDto;
import org.sonar.db.metric.MetricDto; import org.sonar.db.metric.MetricDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.user.UserSession; import org.sonar.server.user.UserSession;
import org.sonar.server.user.index.UserIndex;


import static org.sonar.server.measure.custom.ws.CustomMeasureValidator.checkPermissions; import static org.sonar.server.measure.custom.ws.CustomMeasureValidator.checkPermissions;
import static org.sonar.server.measure.custom.ws.CustomMeasureValueDescription.measureValueDescription; import static org.sonar.server.measure.custom.ws.CustomMeasureValueDescription.measureValueDescription;
Expand All @@ -49,16 +48,13 @@ public class UpdateAction implements CustomMeasuresWsAction {
private final System2 system; private final System2 system;
private final CustomMeasureValidator validator; private final CustomMeasureValidator validator;
private final CustomMeasureJsonWriter customMeasureJsonWriter; private final CustomMeasureJsonWriter customMeasureJsonWriter;
private final UserIndex userIndex;


public UpdateAction(DbClient dbClient, UserSession userSession, System2 system, CustomMeasureValidator validator, CustomMeasureJsonWriter customMeasureJsonWriter, public UpdateAction(DbClient dbClient, UserSession userSession, System2 system, CustomMeasureValidator validator, CustomMeasureJsonWriter customMeasureJsonWriter) {
UserIndex userIndex) {
this.dbClient = dbClient; this.dbClient = dbClient;
this.userSession = userSession; this.userSession = userSession;
this.system = system; this.system = system;
this.validator = validator; this.validator = validator;
this.customMeasureJsonWriter = customMeasureJsonWriter; this.customMeasureJsonWriter = customMeasureJsonWriter;
this.userIndex = userIndex;
} }


@Override @Override
Expand Down Expand Up @@ -96,11 +92,11 @@ public void handle(Request request, Response response) throws Exception {
MetricDto metric = dbClient.metricDao().selectOrFailById(dbSession, customMeasure.getMetricId()); MetricDto metric = dbClient.metricDao().selectOrFailById(dbSession, customMeasure.getMetricId());
ComponentDto component = dbClient.componentDao().selectOrFailByUuid(dbSession, customMeasure.getComponentUuid()); ComponentDto component = dbClient.componentDao().selectOrFailByUuid(dbSession, customMeasure.getComponentUuid());
checkPermissions(userSession, component); checkPermissions(userSession, component);
User user = userIndex.getByLogin(userSession.getLogin()); UserDto user = dbClient.userDao().selectOrFailByLogin(dbSession, userSession.getLogin());


setValue(customMeasure, value, metric); setValue(customMeasure, value, metric);
setDescription(customMeasure, description); setDescription(customMeasure, description);
customMeasure.setUserLogin(user.login()); customMeasure.setUserLogin(user.getLogin());
customMeasure.setUpdatedAt(system.now()); customMeasure.setUpdatedAt(system.now());
dbClient.customMeasureDao().update(dbSession, customMeasure); dbClient.customMeasureDao().update(dbSession, customMeasure);
dbSession.commit(); dbSession.commit();
Expand Down
Expand Up @@ -68,44 +68,44 @@ public FeedUsersLocalStartupTask(System2 system2, DbClient dbClient, Settings se


@Override @Override
public void start() { public void start() {
DbSession session = dbClient.openSession(false); DbSession dbSession = dbClient.openSession(false);
try { try {
if (hasAlreadyBeenExecuted(session)) { if (hasAlreadyBeenExecuted(dbSession)) {
return; return;
} }
updateUsersLocal(session); updateUsersLocal(dbSession);
markAsExecuted(session); markAsExecuted(dbSession);
session.commit(); dbSession.commit();


if (settings.hasKey(LOCAL_USERS_PROPERTY)) { if (settings.hasKey(LOCAL_USERS_PROPERTY)) {
LOG.info("NOTE : The property '{}' is now no more needed, you can safely remove it.", LOCAL_USERS_PROPERTY); LOG.info("NOTE : The property '{}' is now no more needed, you can safely remove it.", LOCAL_USERS_PROPERTY);
} }
} finally { } finally {
dbClient.closeSession(session); dbClient.closeSession(dbSession);
} }
} }


private void updateUsersLocal(DbSession session) { private void updateUsersLocal(DbSession dbSession) {
long now = system2.now(); long now = system2.now();
Set<String> localUsers = new HashSet<>(asList(settings.getStringArray(LOCAL_USERS_PROPERTY))); Set<String> localUsers = new HashSet<>(asList(settings.getStringArray(LOCAL_USERS_PROPERTY)));
boolean isRealmExist = settings.getString(CORE_AUTHENTICATOR_REALM) != null; boolean isRealmExist = settings.getString(CORE_AUTHENTICATOR_REALM) != null;
for (UserDto user : dbClient.userDao().selectUsers(session, UserQuery.ALL_ACTIVES)) { for (UserDto user : dbClient.userDao().selectUsers(dbSession, UserQuery.ALL_ACTIVES)) {
if (user.getExternalIdentityProvider().equals(UserUpdater.SQ_AUTHORITY)) { if (user.getExternalIdentityProvider().equals(UserUpdater.SQ_AUTHORITY)) {
user.setLocal(!isRealmExist || localUsers.contains(user.getLogin())); user.setLocal(!isRealmExist || localUsers.contains(user.getLogin()));
} else { } else {
user.setLocal(false); user.setLocal(false);
} }
user.setUpdatedAt(now); user.setUpdatedAt(now);
dbClient.userDao().update(session, user); dbClient.userDao().update(dbSession, user);
} }
} }


private boolean hasAlreadyBeenExecuted(DbSession session) { private boolean hasAlreadyBeenExecuted(DbSession dbSession) {
return dbClient.loadedTemplateDao().countByTypeAndKey(ONE_SHOT_TASK_TYPE, TEMPLATE_KEY, session) > 0; return dbClient.loadedTemplateDao().countByTypeAndKey(ONE_SHOT_TASK_TYPE, TEMPLATE_KEY, dbSession) > 0;
} }


private void markAsExecuted(DbSession session) { private void markAsExecuted(DbSession dbSession) {
dbClient.loadedTemplateDao().insert(new LoadedTemplateDto(TEMPLATE_KEY, ONE_SHOT_TASK_TYPE), session); dbClient.loadedTemplateDao().insert(new LoadedTemplateDto(TEMPLATE_KEY, ONE_SHOT_TASK_TYPE), dbSession);
} }


@Override @Override
Expand Down
Expand Up @@ -26,11 +26,12 @@
import org.sonar.api.server.ws.WebService; import org.sonar.api.server.ws.WebService;
import org.sonar.api.utils.text.JsonWriter; import org.sonar.api.utils.text.JsonWriter;
import org.sonar.core.permission.GlobalPermissions; import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.user.UserDto;
import org.sonar.server.user.NewUser; import org.sonar.server.user.NewUser;
import org.sonar.server.user.UserSession; import org.sonar.server.user.UserSession;
import org.sonar.server.user.UserUpdater; import org.sonar.server.user.UserUpdater;
import org.sonar.server.user.index.UserDoc;
import org.sonar.server.user.index.UserIndex;


public class CreateAction implements UsersWsAction { public class CreateAction implements UsersWsAction {


Expand All @@ -41,14 +42,14 @@ public class CreateAction implements UsersWsAction {
private static final String PARAM_SCM_ACCOUNTS = "scmAccounts"; private static final String PARAM_SCM_ACCOUNTS = "scmAccounts";
private static final String PARAM_SCM_ACCOUNTS_DEPRECATED = "scm_accounts"; private static final String PARAM_SCM_ACCOUNTS_DEPRECATED = "scm_accounts";


private final UserIndex index; private final DbClient dbClient;
private final UserUpdater userUpdater; private final UserUpdater userUpdater;
private final I18n i18n; private final I18n i18n;
private final UserSession userSession; private final UserSession userSession;
private final UserJsonWriter userWriter; private final UserJsonWriter userWriter;


public CreateAction(UserIndex index, UserUpdater userUpdater, I18n i18n, UserSession userSession, UserJsonWriter userWriter) { public CreateAction(DbClient dbClient, UserUpdater userUpdater, I18n i18n, UserSession userSession, UserJsonWriter userWriter) {
this.index = index; this.dbClient = dbClient;
this.userUpdater = userUpdater; this.userUpdater = userUpdater;
this.i18n = i18n; this.i18n = i18n;
this.userSession = userSession; this.userSession = userSession;
Expand Down Expand Up @@ -107,7 +108,7 @@ public void handle(Request request, Response response) throws Exception {
} }


private void writeResponse(Response response, String login, boolean isUserReactivated) { private void writeResponse(Response response, String login, boolean isUserReactivated) {
UserDoc user = index.getByLogin(login); UserDto user = loadUser(login);
JsonWriter json = response.newJsonWriter().beginObject(); JsonWriter json = response.newJsonWriter().beginObject();
writeUser(json, user); writeUser(json, user);
if (isUserReactivated) { if (isUserReactivated) {
Expand All @@ -116,7 +117,7 @@ private void writeResponse(Response response, String login, boolean isUserReacti
json.endObject().close(); json.endObject().close();
} }


private void writeUser(JsonWriter json, UserDoc user) { private void writeUser(JsonWriter json, UserDto user) {
json.name("user"); json.name("user");
userWriter.write(json, user, ImmutableSet.<String>of(), UserJsonWriter.FIELDS); userWriter.write(json, user, ImmutableSet.<String>of(), UserJsonWriter.FIELDS);
} }
Expand All @@ -129,4 +130,13 @@ private void writeReactivationMessage(JsonWriter json, String login) {
json.endObject(); json.endObject();
json.endArray(); json.endArray();
} }

private UserDto loadUser(String login){
DbSession dbSession = dbClient.openSession(false);
try {
return dbClient.userDao().selectOrFailByLogin(dbSession, login);
} finally {
dbClient.closeSession(dbSession);
}
}
} }
Expand Up @@ -94,6 +94,7 @@ private void writeUserDetails(JsonWriter json, Optional<UserDto> optionalUser, C
if (!isNullOrEmpty(user.getEmail())) { if (!isNullOrEmpty(user.getEmail())) {
json.prop("email", user.getEmail()); json.prop("email", user.getEmail());
} }
json.prop("local", user.isLocal());
} }


writeScmAccounts(json, optionalUser); writeScmAccounts(json, optionalUser);
Expand Down

0 comments on commit b885489

Please sign in to comment.