import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import javax.annotation.CheckForNull;
-import javax.annotation.Nullable;
import org.apache.commons.lang.StringUtils;
import org.sonar.api.ServerSide;
import org.sonar.api.issue.ActionPlan;
import org.sonar.api.issue.internal.FieldDiffs;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.utils.SonarException;
+import org.sonar.api.web.UserRole;
import org.sonar.core.issue.ActionPlanStats;
import org.sonar.core.issue.DefaultActionPlan;
import org.sonar.core.issue.db.IssueFilterDto;
import org.sonar.server.util.RubyUtils;
import org.sonar.server.util.Validation;
+import javax.annotation.CheckForNull;
+import javax.annotation.Nullable;
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
import static com.google.common.collect.Lists.newArrayList;
/**
return issueService.listTagsForComponent(query, pageSize);
}
+ public boolean isUserIssueAdmin(String projectUuid) {
+ return userSession.hasProjectPermissionByUuid(UserRole.ISSUE_ADMIN, projectUuid);
+ }
}
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.sonar.api.issue.internal.DefaultIssue;
import org.sonar.api.issue.internal.FieldDiffs;
import org.sonar.api.user.User;
+import org.sonar.api.web.UserRole;
import org.sonar.core.issue.DefaultActionPlan;
import org.sonar.core.issue.db.IssueFilterDto;
import org.sonar.core.resource.ResourceDao;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.user.ThreadLocalUserSession;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Maps.newHashMap;
import static org.assertj.core.api.Assertions.assertThat;
assertThat(service.listTagsForComponent(componentUuid, pageSize)).isEqualTo(tags);
}
+ @Test
+ public void is_user_issue_admin() {
+ userSessionRule.addProjectUuidPermissions(UserRole.ISSUE_ADMIN, "bcde");
+ assertThat(service.isUserIssueAdmin("abcd")).isFalse();
+ assertThat(service.isUserIssueAdmin("bcde")).isTrue();
+ }
+
private void checkBadRequestException(Exception e, String key, Object... params) {
BadRequestException exception = (BadRequestException) e;
Message msg = exception.errors().messages().get(0);
transitions_by_issues[transition.key] = issues_for_transition
end
unresolved_issues += 1 unless issue.resolution()
- if Java::OrgSonarServerUser::UserSession.get().hasProjectPermissionByUuid('issueadmin', issue.projectUuid)
+ if Internal.issues.isUserIssueAdmin(issue.projectUuid)
unresolved_issues_user_can_admin += 1 unless issue.resolution()
end
at_least_one_issue_is_planned ||= issue.actionPlanKey()