public void checkTransitionPermission(String transitionKey, DefaultIssue defaultIssue) { String projectUuid = requireNonNull(defaultIssue.projectUuid()); workflow.outTransitions(defaultIssue) .stream() .filter(transition -> transition.key().equals(transitionKey) && isNotBlank(transition.requiredProjectPermission())) .forEach(transition -> userSession.checkComponentUuidPermission(transition.requiredProjectPermission(), projectUuid)); }
public List<Transition> listTransitions(DefaultIssue issue) { if (issue.isFromExternalRuleEngine()){ return Collections.emptyList(); } String projectUuid = requireNonNull(issue.projectUuid()); return workflow.outTransitions(issue) .stream() .filter(transition -> (userSession.isLoggedIn() && isBlank(transition.requiredProjectPermission())) || userSession.hasComponentUuidPermission(transition.requiredProjectPermission(), projectUuid)) .collect(MoreCollectors.toList()); }
@Test public void test_simplest_transition() { Transition transition = Transition.builder("close") .from("OPEN").to("CLOSED") .build(); assertThat(transition.key()).isEqualTo("close"); assertThat(transition.from()).isEqualTo("OPEN"); assertThat(transition.to()).isEqualTo("CLOSED"); assertThat(transition.conditions()).isEmpty(); assertThat(transition.functions()).isEmpty(); assertThat(transition.requiredProjectPermission()).isNull(); }
@Test public void test_builder() { Transition transition = Transition.builder("close") .from("OPEN").to("CLOSED") .conditions(condition1, condition2) .functions(function1, function2) .requiredProjectPermission(UserRole.ISSUE_ADMIN) .build(); assertThat(transition.key()).isEqualTo("close"); assertThat(transition.from()).isEqualTo("OPEN"); assertThat(transition.to()).isEqualTo("CLOSED"); assertThat(transition.conditions()).containsOnly(condition1, condition2); assertThat(transition.functions()).containsOnly(function1, function2); assertThat(transition.automatic()).isFalse(); assertThat(transition.requiredProjectPermission()).isEqualTo(UserRole.ISSUE_ADMIN); }
public void checkTransitionPermission(String transitionKey, DefaultIssue defaultIssue) { String projectUuid = requireNonNull(defaultIssue.projectUuid()); workflow.outTransitions(defaultIssue) .stream() .filter(transition -> transition.key().equals(transitionKey) && isNotBlank(transition.requiredProjectPermission())) .forEach(transition -> userSession.checkComponentUuidPermission(transition.requiredProjectPermission(), projectUuid)); }
public List<Transition> listTransitions(DefaultIssue issue) { String projectUuid = requireNonNull(issue.projectUuid()); return workflow.outTransitions(issue) .stream() .filter(transition -> (userSession.isLoggedIn() && isBlank(transition.requiredProjectPermission())) || userSession.hasComponentUuidPermission(transition.requiredProjectPermission(), projectUuid)) .collect(MoreCollectors.toList()); }