aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2017-01-02 16:08:44 +0100
committerJulien Lancelot <julien.lancelot@sonarsource.com>2017-01-02 17:43:24 +0100
commit69e78e8d2bd4168fc55dab03f39cd42681ecde26 (patch)
tree9e50627ab57798f196e51d717fed764ff90d19ed
parent3e7c7ea8bc5ba960435e50a244002acac7b49f13 (diff)
downloadsonarqube-69e78e8d2bd4168fc55dab03f39cd42681ecde26.tar.gz
sonarqube-69e78e8d2bd4168fc55dab03f39cd42681ecde26.zip
SONAR-7291 Return no transition when not loggued
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/issue/TransitionService.java3
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/TransitionActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/TransitionServiceTest.java14
3 files changed, 16 insertions, 5 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/TransitionService.java b/server/sonar-server/src/main/java/org/sonar/server/issue/TransitionService.java
index 9e9496c1f54..9275cc2fd1a 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/issue/TransitionService.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/issue/TransitionService.java
@@ -49,7 +49,8 @@ public class TransitionService {
String projectUuid = requireNonNull(issue.projectUuid());
return workflow.outTransitions(issue)
.stream()
- .filter(transition -> isBlank(transition.requiredProjectPermission()) || userSession.hasComponentUuidPermission(transition.requiredProjectPermission(), projectUuid))
+ .filter(transition -> (userSession.isLoggedIn() && isBlank(transition.requiredProjectPermission()))
+ || userSession.hasComponentUuidPermission(transition.requiredProjectPermission(), projectUuid))
.collect(Collectors.toList());
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionActionTest.java
index d16a76c3e33..de769ea4d70 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionActionTest.java
@@ -72,7 +72,7 @@ public class TransitionActionTest {
@Test
public void execute() {
- userSession.addProjectUuidPermissions(ISSUE_ADMIN, issue.projectUuid());
+ userSession.login("john").addProjectUuidPermissions(ISSUE_ADMIN, issue.projectUuid());
issue.setStatus(Issue.STATUS_RESOLVED);
issue.setResolution(Issue.RESOLUTION_FIXED);
@@ -84,7 +84,7 @@ public class TransitionActionTest {
@Test
public void does_not_execute_if_transition_is_not_available() {
- userSession.addProjectUuidPermissions(ISSUE_ADMIN, issue.projectUuid());
+ userSession.login("john").addProjectUuidPermissions(ISSUE_ADMIN, issue.projectUuid());
issue.setStatus(Issue.STATUS_CLOSED);
action.execute(ImmutableMap.of("transition", "reopen"), context);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionServiceTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionServiceTest.java
index 22c975e84d1..4d601075bd3 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionServiceTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionServiceTest.java
@@ -25,7 +25,6 @@ import java.util.List;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
-import org.sonar.api.web.UserRole;
import org.sonar.core.issue.DefaultIssue;
import org.sonar.core.issue.IssueChangeContext;
import org.sonar.db.component.ComponentDto;
@@ -40,6 +39,7 @@ import org.sonar.server.tester.UserSessionRule;
import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.api.issue.Issue.STATUS_CONFIRMED;
import static org.sonar.api.issue.Issue.STATUS_OPEN;
+import static org.sonar.api.web.UserRole.ISSUE_ADMIN;
import static org.sonar.db.component.ComponentTesting.newFileDto;
import static org.sonar.db.issue.IssueTesting.newDto;
import static org.sonar.db.rule.RuleTesting.newRuleDto;
@@ -62,7 +62,7 @@ public class TransitionServiceTest {
@Test
public void list_transitions() throws Exception {
IssueDto issue = newIssue().setStatus(STATUS_OPEN).setResolution(null);
- userSession.addProjectUuidPermissions(UserRole.ISSUE_ADMIN, issue.getProjectUuid());
+ userSession.login("john").addProjectUuidPermissions(ISSUE_ADMIN, issue.getProjectUuid());
List<Transition> result = underTest.listTransitions(issue.toDefaultIssue());
@@ -71,6 +71,7 @@ public class TransitionServiceTest {
@Test
public void list_transitions_returns_only_transitions_that_do_not_requires_issue_admin_permission() throws Exception {
+ userSession.login("john");
IssueDto issue = newIssue().setStatus(STATUS_OPEN).setResolution(null);
List<Transition> result = underTest.listTransitions(issue.toDefaultIssue());
@@ -79,6 +80,15 @@ public class TransitionServiceTest {
}
@Test
+ public void list_transitions_returns_nothing_when_not_logged() throws Exception {
+ IssueDto issue = newIssue().setStatus(STATUS_OPEN).setResolution(null);
+
+ List<Transition> result = underTest.listTransitions(issue.toDefaultIssue());
+
+ assertThat(result).isEmpty();
+ }
+
+ @Test
public void do_transition() {
DefaultIssue issue = newIssue().setStatus(STATUS_OPEN).setResolution(null).toDefaultIssue();