aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchModule.java2
-rw-r--r--sonar-core/src/main/java/org/sonar/core/components/DefaultUserFinder.java5
-rw-r--r--sonar-core/src/test/java/org/sonar/core/components/DefaultUserFinderTest.java19
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/security/UserFinder.java5
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);