diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2017-01-02 16:08:44 +0100 |
---|---|---|
committer | Julien Lancelot <julien.lancelot@sonarsource.com> | 2017-01-02 17:43:24 +0100 |
commit | 69e78e8d2bd4168fc55dab03f39cd42681ecde26 (patch) | |
tree | 9e50627ab57798f196e51d717fed764ff90d19ed | |
parent | 3e7c7ea8bc5ba960435e50a244002acac7b49f13 (diff) | |
download | sonarqube-69e78e8d2bd4168fc55dab03f39cd42681ecde26.tar.gz sonarqube-69e78e8d2bd4168fc55dab03f39cd42681ecde26.zip |
SONAR-7291 Return no transition when not loggued
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(); |