This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
Commit 53364f00 authored by Michael Breu's avatar Michael Breu :speech_balloon:
Browse files

Temporarily disabling search with authorities again.

parent 5b075bb9
1 merge request!17Initial Merge to Prepare Release 1.0.0
...@@ -23,6 +23,7 @@ import org.elasticsearch.index.query.BoolQueryBuilder; ...@@ -23,6 +23,7 @@ import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.MatchQueryBuilder; import org.elasticsearch.index.query.MatchQueryBuilder;
import org.elasticsearch.index.query.MultiMatchQueryBuilder; import org.elasticsearch.index.query.MultiMatchQueryBuilder;
import org.elasticsearch.index.query.PrefixQueryBuilder; import org.elasticsearch.index.query.PrefixQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.builder.SearchSourceBuilder;
...@@ -232,6 +233,7 @@ public class MetaDataRepository { ...@@ -232,6 +233,7 @@ public class MetaDataRepository {
public SearchResultsDTO pageDetails(SearchInputDTO searchInputDTO, int pageSize, Optional<User> user) throws IOException { public SearchResultsDTO pageDetails(SearchInputDTO searchInputDTO, int pageSize, Optional<User> user) throws IOException {
fillAutoCompletion(); fillAutoCompletion();
SearchRequest searchRequest = new SearchRequest(SearchRepositoryConstants.INDEX_METADATA); SearchRequest searchRequest = new SearchRequest(SearchRepositoryConstants.INDEX_METADATA);
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
...@@ -256,23 +258,25 @@ public class MetaDataRepository { ...@@ -256,23 +258,25 @@ public class MetaDataRepository {
final MatchQueryBuilder publicQuery = QueryBuilders.matchQuery(SearchRepositoryConstants.PROJECT_VISIBILITY, "public") final MatchQueryBuilder publicQuery = QueryBuilders.matchQuery(SearchRepositoryConstants.PROJECT_VISIBILITY, "public")
.fuzzyTranspositions(false).autoGenerateSynonymsPhraseQuery(false); .fuzzyTranspositions(false).autoGenerateSynonymsPhraseQuery(false);
/*
if(user.isEmpty()) { if(user.isEmpty()) {
queryBuilder queryBuilder
.must(publicQuery); .must(publicQuery);
} else { } else {
// TODO: this is not yet perfect :-( prefix query on namespace is not correct. We need to check for the longest prefix // TODO: this is not yet perfect :-( prefix query on namespace is not correct. We need to check for the longest prefix
// better: Make a gitlab api call to all my project I have read access (and that are not public)
final Collection<GrantedAuthority> authorities = user.get().getAuthorities(); final Collection<GrantedAuthority> authorities = user.get().getAuthorities();
final BoolQueryBuilder authQuery = QueryBuilders.boolQuery(); final BoolQueryBuilder authQuery = QueryBuilders.boolQuery();
final Stream<MatchQueryBuilder> prefixAuthQueries = authorities.stream() final Stream<QueryBuilder> prefixAuthQueries = authorities.stream()
.filter(auth -> !auth.getAuthority().startsWith("ROLE")) .filter(auth -> !auth.getAuthority().startsWith("ROLE"))
.filter(auth -> !auth.getAuthority().startsWith("SCOPE")) .filter(auth -> !auth.getAuthority().startsWith("SCOPE"))
.map(auth -> QueryBuilders.matchQuery(SearchRepositoryConstants.PROJECT_NAMESPACE, auth.getAuthority()) .map(auth -> QueryBuilders.prefixQuery(SearchRepositoryConstants.PROJECT_NAMESPACE, auth.getAuthority()));
.fuzzyTranspositions(false).autoGenerateSynonymsPhraseQuery(false));
prefixAuthQueries.forEach(pq -> {authQuery.should(pq);}); prefixAuthQueries.forEach(pq -> {authQuery.should(pq);});
queryBuilder.must(QueryBuilders.boolQuery().should(publicQuery).should(authQuery)); queryBuilder.must(QueryBuilders.boolQuery().should(authQuery).should(publicQuery));
} }
*/
// forEachTerm(searchInputDTO.getMetadata().getAuthor(), // forEachTerm(searchInputDTO.getMetadata().getAuthor(),
// term -> // term ->
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment