From e0633e0b6a3d8523409b33b50d82a92d2ad08e1f Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Fri, 26 Sep 2014 15:54:41 +0200 Subject: [PATCH] SONAR-5614 Populate Issues Authorization indexes only on first analysis --- .../org/sonar/server/batch/UploadReportAction.java | 12 +++++++----- .../core/issue/db/IssueAuthorizationMapper.java | 2 -- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/batch/UploadReportAction.java b/server/sonar-server/src/main/java/org/sonar/server/batch/UploadReportAction.java index f8c670f0733..52f2840626d 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/batch/UploadReportAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/batch/UploadReportAction.java @@ -31,6 +31,7 @@ import org.sonar.core.permission.GlobalPermissions; import org.sonar.core.persistence.DbSession; import org.sonar.core.persistence.MyBatis; import org.sonar.server.db.DbClient; +import org.sonar.server.issue.index.IssueAuthorizationIndex; import org.sonar.server.issue.index.IssueIndex; import org.sonar.server.permission.InternalPermissionService; import org.sonar.server.search.IndexClient; @@ -80,15 +81,16 @@ public class UploadReportAction implements RequestHandler { String projectKey = request.mandatoryParam(PARAM_PROJECT); AuthorizedComponentDto project = dbClient.componentDao().getAuthorizedComponentByKey(projectKey, session); - // Synchronize project permission indexes - // TODO only update permission if no permission for a project - permissionService.synchronizePermissions(session, project.key()); - session.commit(); + // Synchronize project permission indexes if no permission found on it + if (index.get(IssueAuthorizationIndex.class).getNullableByKey(project.key()) == null) { + permissionService.synchronizePermissions(session, project.key()); + session.commit(); + } // Index project's issues dbClient.issueDao().synchronizeAfter(session, index.get(IssueIndex.class).getLastSynchronization(), - ImmutableMap.of("project", projectKey)); + ImmutableMap.of("project", project.key())); session.commit(); } finally { diff --git a/sonar-core/src/main/java/org/sonar/core/issue/db/IssueAuthorizationMapper.java b/sonar-core/src/main/java/org/sonar/core/issue/db/IssueAuthorizationMapper.java index 689f9da6892..42f025ceeab 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/db/IssueAuthorizationMapper.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/db/IssueAuthorizationMapper.java @@ -26,8 +26,6 @@ import java.util.Date; public interface IssueAuthorizationMapper { - IssueAuthorizationDto selectByKey(String key); - IssueAuthorizationDto selectAfterDate(@Param("date") Date date, @Param("permission") String permission, @Param("anyone") String anyoneGroup); } -- 2.39.5