import org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler;
import org.sonar.server.computation.component.TreeRootHolder;
import org.sonar.server.computation.component.TypeAwareVisitorAdapter;
-import org.sonar.server.issue.index.IssueAuthorizationIndexer;
import static org.sonar.server.computation.component.ComponentVisitor.Order.PRE_ORDER;
private final DbClient dbClient;
private final DbIdsRepository dbIdsRepository;
- private final IssueAuthorizationIndexer indexer;
private final PermissionRepository permissionRepository;
private final TreeRootHolder treeRootHolder;
- public ApplyPermissionsStep(DbClient dbClient, DbIdsRepository dbIdsRepository, IssueAuthorizationIndexer indexer,
- PermissionRepository permissionRepository, TreeRootHolder treeRootHolder) {
+ public ApplyPermissionsStep(DbClient dbClient, DbIdsRepository dbIdsRepository, PermissionRepository permissionRepository, TreeRootHolder treeRootHolder) {
this.dbClient = dbClient;
this.dbIdsRepository = dbIdsRepository;
- this.indexer = indexer;
this.permissionRepository = permissionRepository;
this.treeRootHolder = treeRootHolder;
}
permissionRepository.grantDefaultRoles(session, projectId, Qualifiers.PROJECT);
session.commit();
}
- // As batch is still apply permission on project, indexing of issue authorization must always been done
- indexer.index();
} finally {
MyBatis.closeQuietly(session);
}
*/
package org.sonar.server.computation.step;
-import java.util.List;
-import java.util.Map;
-import org.elasticsearch.search.SearchHit;
import org.junit.After;
import org.junit.Before;
-import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.DbIdsRepositoryImpl;
import org.sonar.server.computation.component.ReportComponent;
-import org.sonar.server.es.EsTester;
-import org.sonar.server.issue.index.IssueAuthorizationIndexer;
-import org.sonar.server.issue.index.IssueIndexDefinition;
import org.sonar.test.DbTests;
import static org.assertj.core.api.Assertions.assertThat;
private static final String PROJECT_KEY = "PROJECT_KEY";
private static final String PROJECT_UUID = "PROJECT_UUID";
- @ClassRule
- public static EsTester esTester = new EsTester().addDefinitions(new IssueIndexDefinition(new Settings()));
-
@Rule
public DbTester dbTester = DbTester.create(System2.INSTANCE);
DbIdsRepositoryImpl dbIdsRepository;
- IssueAuthorizationIndexer issueAuthorizationIndexer;
ApplyPermissionsStep step;
@Before
public void setUp() {
- dbTester.truncateTables();
- esTester.truncateIndices();
-
dbSession = dbClient.openSession(false);
settings = new Settings();
- issueAuthorizationIndexer = new IssueAuthorizationIndexer(dbClient, esTester.client());
- issueAuthorizationIndexer.setEnabled(true);
-
dbIdsRepository = new DbIdsRepositoryImpl();
- step = new ApplyPermissionsStep(dbClient, dbIdsRepository, issueAuthorizationIndexer, new PermissionRepository(dbClient, settings), treeRootHolder);
+ step = new ApplyPermissionsStep(dbClient, dbIdsRepository, new PermissionRepository(dbClient, settings), treeRootHolder);
}
@After
assertThat(dbClient.componentDao().selectOrFailByKey(dbSession, PROJECT_KEY).getAuthorizationUpdatedAt()).isNotNull();
assertThat(dbClient.roleDao().selectGroupPermissions(dbSession, DefaultGroups.ANYONE, projectDto.getId())).containsOnly(UserRole.USER);
- List<SearchHit> issueAuthorizationHits = esTester.getDocuments(IssueIndexDefinition.INDEX, IssueIndexDefinition.TYPE_AUTHORIZATION);
- assertThat(issueAuthorizationHits).hasSize(1);
- Map<String, Object> issueAhutorization = issueAuthorizationHits.get(0).sourceAsMap();
- assertThat(issueAhutorization.get("project")).isEqualTo(PROJECT_UUID);
- assertThat((List<String>) issueAhutorization.get("groups")).containsOnly(DefaultGroups.ANYONE);
- assertThat((List<String>) issueAhutorization.get("users")).isEmpty();
}
@Test