]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-7213 Ignore disabled users when searching for default assignee
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 29 Apr 2016 12:29:28 +0000 (14:29 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 3 May 2016 12:26:31 +0000 (14:26 +0200)
server/sonar-server/src/main/java/org/sonar/server/computation/issue/DefaultAssignee.java
server/sonar-server/src/test/java/org/sonar/server/computation/issue/DefaultAssigneeTest.java

index 3959ab8375a75fdf8d1cd0c4d483e5cba5b2de78..3251c06d10b6a05a5bfb77a247a222ea79e7801e 100644 (file)
@@ -21,7 +21,6 @@ package org.sonar.server.computation.issue;
 
 import com.google.common.base.Strings;
 import javax.annotation.CheckForNull;
-import org.sonar.api.CoreProperties;
 import org.sonar.api.utils.log.Logger;
 import org.sonar.api.utils.log.Loggers;
 import org.sonar.server.computation.component.SettingsRepository;
@@ -29,6 +28,8 @@ import org.sonar.server.computation.component.TreeRootHolder;
 import org.sonar.server.user.index.UserDoc;
 import org.sonar.server.user.index.UserIndex;
 
+import static org.sonar.api.CoreProperties.DEFAULT_ISSUE_ASSIGNEE;
+
 /**
  * The user who is optionally declared as being the assignee
  * of all the issues which SCM author is not associated with any SonarQube user.
@@ -53,7 +54,7 @@ public class DefaultAssignee {
   @CheckForNull
   public String getLogin() {
     if (!loaded) {
-      String configuredLogin = settingsRepository.getSettings(treeRootHolder.getRoot()).getString(CoreProperties.DEFAULT_ISSUE_ASSIGNEE);
+      String configuredLogin = settingsRepository.getSettings(treeRootHolder.getRoot()).getString(DEFAULT_ISSUE_ASSIGNEE);
       if (!Strings.isNullOrEmpty(configuredLogin) && isValidLogin(configuredLogin)) {
         this.login = configuredLogin;
       }
@@ -64,8 +65,8 @@ public class DefaultAssignee {
 
   private boolean isValidLogin(String s) {
     UserDoc user = userIndex.getNullableByLogin(s);
-    if (user == null) {
-      LOG.info("Property {} is set with an unknown login: {}", CoreProperties.DEFAULT_ISSUE_ASSIGNEE, s);
+    if (user == null || !user.active()) {
+      LOG.info("Property {} is set with an unknown login: {}", DEFAULT_ISSUE_ASSIGNEE, s);
       return false;
     }
     return true;
index 5eb2be95ca2a053fbbc49eae991d50c684b61425..4377d0551985b77d874c5cdd025fe99e48bdfec1 100644 (file)
@@ -59,7 +59,7 @@ public class DefaultAssigneeTest {
   @Test
   public void default_assignee() {
     settings.setProperty(CoreProperties.DEFAULT_ISSUE_ASSIGNEE, "erik");
-    when(userIndex.getNullableByLogin("erik")).thenReturn(new UserDoc().setLogin("erik"));
+    when(userIndex.getNullableByLogin("erik")).thenReturn(new UserDoc().setLogin("erik").setActive(true));
 
     assertThat(underTest.getLogin()).isEqualTo("erik");
   }
@@ -71,4 +71,12 @@ public class DefaultAssigneeTest {
 
     assertThat(underTest.getLogin()).isNull();
   }
+
+  @Test
+  public void configured_login_is_disabled() {
+    settings.setProperty(CoreProperties.DEFAULT_ISSUE_ASSIGNEE, "erik");
+    when(userIndex.getNullableByLogin("erik")).thenReturn(new UserDoc().setLogin("erik").setActive(false));
+
+    assertThat(underTest.getLogin()).isNull();
+  }
 }