@@ -73,6 +73,7 @@ public class IssueWorkflow implements Startable { | |||
private static void buildManualTransitions(StateMachine.Builder builder) { | |||
builder | |||
// confirm | |||
.transition(Transition.builder(DefaultTransitions.CONFIRM) | |||
.from(STATUS_OPEN).to(STATUS_CONFIRMED) | |||
.conditions(IsNotHotspotNorManualVulnerability.INSTANCE) | |||
@@ -83,25 +84,32 @@ public class IssueWorkflow implements Startable { | |||
.conditions(IsNotHotspotNorManualVulnerability.INSTANCE) | |||
.functions(new SetResolution(null)) | |||
.build()) | |||
.transition(Transition.builder(DefaultTransitions.UNCONFIRM) | |||
.from(STATUS_CONFIRMED).to(STATUS_REOPENED) | |||
.conditions(IsNotHotspotNorManualVulnerability.INSTANCE) | |||
.functions(new SetResolution(null)) | |||
.build()) | |||
// resolve as fixed | |||
.transition(Transition.builder(DefaultTransitions.RESOLVE) | |||
.from(STATUS_OPEN).to(STATUS_RESOLVED) | |||
.conditions(IsNotHotspotNorManualVulnerability.INSTANCE) | |||
.functions(new SetResolution(RESOLUTION_FIXED)) | |||
.requiredProjectPermission(UserRole.ISSUE_ADMIN) | |||
.build()) | |||
.transition(Transition.builder(DefaultTransitions.RESOLVE) | |||
.from(STATUS_REOPENED).to(STATUS_RESOLVED) | |||
.conditions(IsNotHotspotNorManualVulnerability.INSTANCE) | |||
.functions(new SetResolution(RESOLUTION_FIXED)) | |||
.requiredProjectPermission(UserRole.ISSUE_ADMIN) | |||
.build()) | |||
.transition(Transition.builder(DefaultTransitions.RESOLVE) | |||
.from(STATUS_CONFIRMED).to(STATUS_RESOLVED) | |||
.conditions(IsNotHotspotNorManualVulnerability.INSTANCE) | |||
.functions(new SetResolution(RESOLUTION_FIXED)) | |||
.requiredProjectPermission(UserRole.ISSUE_ADMIN) | |||
.build()) | |||
// reopen | |||
.transition(Transition.builder(DefaultTransitions.UNCONFIRM) | |||
.from(STATUS_CONFIRMED).to(STATUS_REOPENED) | |||
.conditions(IsNotHotspotNorManualVulnerability.INSTANCE) | |||
.functions(new SetResolution(null)) | |||
.build()) | |||
.transition(Transition.builder(DefaultTransitions.REOPEN) | |||
.from(STATUS_RESOLVED).to(STATUS_REOPENED) |
@@ -98,7 +98,7 @@ public class TransitionServiceTest { | |||
List<Transition> result = underTest.listTransitions(issue.toDefaultIssue()); | |||
assertThat(result).extracting(Transition::key).containsOnly("confirm", "resolve"); | |||
assertThat(result).extracting(Transition::key).containsOnly("confirm"); | |||
} | |||
@Test |
@@ -8,8 +8,7 @@ | |||
"set_tags" | |||
], | |||
"transitions": [ | |||
"confirm", | |||
"resolve" | |||
"confirm" | |||
] | |||
} | |||
], |
@@ -2109,11 +2109,11 @@ projects_role.groups=Groups | |||
projects_role.admin=Administer | |||
projects_role.admin.desc=Access project settings and perform administration tasks. (Users will also need "Browse" permission) | |||
projects_role.issueadmin=Administer Issues | |||
projects_role.issueadmin.desc=Change the type and severity of issues, resolve issues as being "won't fix" or "false-positive" (users also need "Browse" permission). | |||
projects_role.issueadmin.desc=Change the type and severity of issues, resolve issues as being "fixed", "won't fix" or "false-positive" (users also need "Browse" permission). | |||
projects_role.securityhotspotadmin=Administer Security Hotspots | |||
projects_role.securityhotspotadmin.desc=Open a Vulnerability from a Security Hotspot. Resolved a Security Hotspot as reviewed, set it as in review or reset it as to review (users also need Browse permission). | |||
projects_role.user=Browse | |||
projects_role.user.desc=Access a project, browse its measures and issues, confirm or resolve issues as "fixed", change the assignee, comment on issues and change tags. | |||
projects_role.user.desc=Access a project, browse its measures and issues, confirm issues, change the assignee, comment on issues and change tags. | |||
projects_role.codeviewer=See Source Code | |||
projects_role.codeviewer.desc=View the project's source code. (Users will also need "Browse" permission) | |||
projects_role.scan=Execute Analysis |