Skip to content

Commit 91b8dcf

Browse files
committed
Fixing filter query filters on auth groups
1 parent c9c4753 commit 91b8dcf

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/main/java/org/computate/frFR/java/EcrirePageClasse.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1805,7 +1805,21 @@ public void pageCodeClasseJava(String langueNom, JsonObject langueConfig) throws
18051805
tl(3, "json.put(\"", langueConfig.getString(I18n.var_classeNomSimple), "\", Optional.ofNullable(", classeNomSimple, ".", langueConfig.getString(I18n.var_classeNomSimple), classeNomSimple, "(var)).map(d -> StringUtils.isBlank(d) ? var : d).orElse(var));");
18061806
tl(3, "Object v = ", langueConfig.getString(I18n.var_listeRecherche), classeApiClasseNomSimple, "_.getRequest().getFilterQueries().stream().filter(fq -> fq.startsWith(", classeNomSimple, ".varIndexed", classeNomSimple, "(var) + \":\")).findFirst().map(s -> SearchTool.unescapeQueryChars(StringUtils.substringAfter(s, \":\"))).orElse(null);");
18071807
tl(3, "if(v != null) {");
1808-
tl(4, "json.put(\"val\", v);");
1808+
tl(4, "Matcher mFq = Pattern.compile(\"(\\\\w+):(.+?(?=(\\\\)|\\\\s+OR\\\\s+|\\\\s+AND\\\\s+|$)))\").matcher(SearchTool.unescapeQueryChars((String)v));");
1809+
tl(4, "StringBuffer sb = new StringBuffer();");
1810+
tl(4, "while(mFq.find()) {");
1811+
tl(5, "String entityVar = ", classeNomSimple, ".searchVar", classeNomSimple, "(varIndexed);");
1812+
tl(5, "String valueIndexed = mFq.group(2).trim();");
1813+
tl(5, "String entityFq = entityVar + \":\" + valueIndexed;");
1814+
tl(5, "if(var.equals(entityVar))");
1815+
tl(6, "mFq.appendReplacement(sb, valueIndexed);");
1816+
tl(5, "else");
1817+
tl(6, "mFq.appendReplacement(sb, entityFq);");
1818+
tl(4, "}");
1819+
tl(4, "if(!sb.isEmpty()) {");
1820+
tl(5, "mFq.appendTail(sb);");
1821+
tl(5, "json.put(\"val\", sb.toString());");
1822+
tl(4, "}");
18091823
tl(4, "varsFqCount++;");
18101824
tl(3, "}");
18111825
tl(3, "Optional.ofNullable(stats).map(s -> s.get(var", langueConfig.getString(I18n.var_Indexe), ")).ifPresent(stat -> {");

src/main/java/org/computate/frFR/java/IndexerClasse.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5575,6 +5575,8 @@ else if(groupe1 != null && !groupe1.contains("+"))
55755575
classePartsGenPageAjouter(ClasseParts.initClasseParts(this, "org.computate.search.tool.SearchTool", classeLangueNom), classeLangueNom);
55765576
classePartsGenPageAjouter(ClasseParts.initClasseParts(this, "java.time.ZoneId", classeLangueNom), classeLangueNom);
55775577
classePartsGenPageAjouter(ClasseParts.initClasseParts(this, "io.vertx.pgclient.data.Point", classeLangueNom), classeLangueNom);
5578+
classePartsGenPageAjouter(ClasseParts.initClasseParts(this, "java.util.regex.Matcher", classeLangueNom), classeLangueNom);
5579+
classePartsGenPageAjouter(ClasseParts.initClasseParts(this, "java.util.regex.Pattern", classeLangueNom), classeLangueNom);
55785580

55795581
for(ClasseParts classePartGenPage : classePartsGenPage.values()) {
55805582
indexerStockerListeSolr(langueNomGlobale, classeDoc, "classeImportationsGenPage", classePartGenPage.nomCanonique(classeLangueNom));

0 commit comments

Comments
 (0)