Browse Source

SONAR-11923 resolve issue as fixed now requires "administer issue"

tags/8.0
Sébastien Lesaint 4 years ago
parent
commit
bc1e2754d1

+ 13
- 5
server/sonar-server-common/src/main/java/org/sonar/server/issue/workflow/IssueWorkflow.java View File

@@ -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)

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/issue/TransitionServiceTest.java View File

@@ -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

+ 1
- 2
server/sonar-server/src/test/resources/org/sonar/server/issue/ws/SearchActionTest/load_additional_fields.json View File

@@ -8,8 +8,7 @@
"set_tags"
],
"transitions": [
"confirm",
"resolve"
"confirm"
]
}
],

+ 2
- 2
sonar-core/src/main/resources/org/sonar/l10n/core.properties View File

@@ -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

Loading…
Cancel
Save