diff options
4 files changed, 28 insertions, 3 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchModule.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchModule.java index b33fa681063..3134c5ec39f 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchModule.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchModule.java @@ -31,6 +31,7 @@ import org.sonar.batch.components.*; import org.sonar.batch.index.*; import org.sonar.core.components.CacheMetricFinder; import org.sonar.core.components.CacheRuleFinder; +import org.sonar.core.components.DefaultUserFinder; import org.sonar.core.notifications.DefaultNotificationManager; import org.sonar.jpa.dao.MeasuresDao; @@ -77,6 +78,7 @@ public class BatchModule extends Module { addComponent(PastMeasuresLoader.class); addComponent(PastSnapshotFinder.class); addComponent(DefaultNotificationManager.class); + addComponent(DefaultUserFinder.class); addCoreMetrics(); addBatchExtensions(); } diff --git a/sonar-core/src/main/java/org/sonar/core/components/DefaultUserFinder.java b/sonar-core/src/main/java/org/sonar/core/components/DefaultUserFinder.java index 648aa104fb5..0545b9bc93d 100644 --- a/sonar-core/src/main/java/org/sonar/core/components/DefaultUserFinder.java +++ b/sonar-core/src/main/java/org/sonar/core/components/DefaultUserFinder.java @@ -35,6 +35,11 @@ public class DefaultUserFinder implements UserFinder { this.sessionFactory = sessionFactory; } + public User findById(int id) { + DatabaseSession session = sessionFactory.getSession(); + return session.getSingleResult(User.class, "id", id); + } + public User findByLogin(String login) { DatabaseSession session = sessionFactory.getSession(); return session.getSingleResult(User.class, "login", login); diff --git a/sonar-core/src/test/java/org/sonar/core/components/DefaultUserFinderTest.java b/sonar-core/src/test/java/org/sonar/core/components/DefaultUserFinderTest.java index a944e3ae193..16a6275d224 100644 --- a/sonar-core/src/test/java/org/sonar/core/components/DefaultUserFinderTest.java +++ b/sonar-core/src/test/java/org/sonar/core/components/DefaultUserFinderTest.java @@ -52,11 +52,26 @@ public class DefaultUserFinderTest extends AbstractDbUnitTestCase { assertThat(user.getLogin(), is("godin")); assertThat(user.getName(), is("Evgeny Mandrikov")); assertThat(user.getEmail(), is("evgeny.mandrikov@sonarsource.com")); + + user = userFinder.findByLogin("user"); + assertThat(user, nullValue()); } @Test - public void userNotExists() { - User user = userFinder.findByLogin("user"); + public void shouldFindUserById() { + User user = userFinder.findById(1); + assertThat(user.getId(), is(1)); + assertThat(user.getLogin(), is("simon")); + assertThat(user.getName(), is("Simon Brandhof")); + assertThat(user.getEmail(), is("simon.brandhof@sonarsource.com")); + + user = userFinder.findById(2); + assertThat(user.getId(), is(2)); + assertThat(user.getLogin(), is("godin")); + assertThat(user.getName(), is("Evgeny Mandrikov")); + assertThat(user.getEmail(), is("evgeny.mandrikov@sonarsource.com")); + + user = userFinder.findById(3); assertThat(user, nullValue()); } diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/security/UserFinder.java b/sonar-plugin-api/src/main/java/org/sonar/api/security/UserFinder.java index 3f283ff504e..67432409761 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/security/UserFinder.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/security/UserFinder.java @@ -19,13 +19,16 @@ */ package org.sonar.api.security; +import org.sonar.api.BatchComponent; import org.sonar.api.ServerComponent; import org.sonar.api.database.model.User; /** * @since 2.10 */ -public interface UserFinder extends ServerComponent { +public interface UserFinder extends ServerComponent, BatchComponent { + + User findById(int id); User findByLogin(String login); |