fix #1205 virtual host support for labels

This commit is contained in:
Shinsuke Sugaya 2017-08-03 16:04:50 +09:00
parent c67bb500f6
commit 4a92032c9f
26 changed files with 457 additions and 36 deletions

View file

@ -834,6 +834,9 @@
"permissions" : {
"type": "keyword"
},
"virtualHost" : {
"type": "keyword"
},
"sortOrder" : {
"type" : "integer"
},

View file

@ -85,7 +85,7 @@ public class AdminDesignAction extends FessAdminAction {
for (final Pair<String, String> p : systemHelper.getDesignJspFileNames()) {
jspItems.add(new Pair<>(":" + p.getFirst(), "/" + p.getSecond()));
}
for (String key : fessConfig.getVirtualHostKeys()) {
for (String key : fessConfig.getVirtualHostPaths()) {
if (StringUtil.isBlank(key)) {
key = "/";
}

View file

@ -54,6 +54,9 @@ public class CreateForm {
@CustomSize(maxKey = "form.admin.max.input.size")
public String permissions;
@Size(max = 1000)
public String virtualHost;
@Min(value = 0)
@Max(value = 2147483647)
@ValidateTypeFailure

View file

@ -15,7 +15,6 @@
*/
package org.codelibs.fess.app.web.admin.searchlist;
import org.lastaflute.web.validation.Required;
import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure;
/**

View file

@ -79,6 +79,7 @@ public abstract class BsLabelTypeBhv extends EsAbstractBehavior<LabelType, Label
result.setIncludedPaths(DfTypeUtil.toString(source.get("includedPaths")));
result.setName(DfTypeUtil.toString(source.get("name")));
result.setPermissions(toStringArray(source.get("permissions")));
result.setVirtualHost(DfTypeUtil.toString(source.get("virtualHost")));
result.setSortOrder(DfTypeUtil.toInteger(source.get("sortOrder")));
result.setUpdatedBy(DfTypeUtil.toString(source.get("updatedBy")));
result.setUpdatedTime(DfTypeUtil.toLong(source.get("updatedTime")));

View file

@ -55,6 +55,9 @@ public class BsLabelType extends EsAbstractEntity {
/** permissions */
protected String[] permissions;
/** virtualHost */
protected String virtualHost;
/** sortOrder */
protected Integer sortOrder;
@ -106,6 +109,9 @@ public class BsLabelType extends EsAbstractEntity {
if (permissions != null) {
addFieldToSource(sourceMap, "permissions", permissions);
}
if (virtualHost != null) {
addFieldToSource(sourceMap, "virtualHost", virtualHost);
}
if (sortOrder != null) {
addFieldToSource(sourceMap, "sortOrder", sortOrder);
}
@ -137,6 +143,7 @@ public class BsLabelType extends EsAbstractEntity {
sb.append(dm).append(includedPaths);
sb.append(dm).append(name);
sb.append(dm).append(permissions);
sb.append(dm).append(virtualHost);
sb.append(dm).append(sortOrder);
sb.append(dm).append(updatedBy);
sb.append(dm).append(updatedTime);
@ -211,6 +218,16 @@ public class BsLabelType extends EsAbstractEntity {
this.permissions = value;
}
public String getVirtualHost() {
checkSpecifiedProperty("virtualHost");
return convertEmptyToNull(virtualHost);
}
public void setVirtualHost(String value) {
registerModifiedProperty("virtualHost");
this.virtualHost = value;
}
public Integer getSortOrder() {
checkSpecifiedProperty("sortOrder");
return sortOrder;

View file

@ -90,6 +90,8 @@ public class LabelTypeDbm extends AbstractDBMeta {
setupEpg(_epgMap, et -> ((LabelType) et).getName(), (et, vl) -> ((LabelType) et).setName(DfTypeUtil.toString(vl)), "name");
setupEpg(_epgMap, et -> ((LabelType) et).getPermissions(), (et, vl) -> ((LabelType) et).setPermissions((String[]) vl),
"permissions");
setupEpg(_epgMap, et -> ((LabelType) et).getVirtualHost(), (et, vl) -> ((LabelType) et).setVirtualHost(DfTypeUtil.toString(vl)),
"virtualHost");
setupEpg(_epgMap, et -> ((LabelType) et).getSortOrder(), (et, vl) -> ((LabelType) et).setSortOrder(DfTypeUtil.toInteger(vl)),
"sortOrder");
setupEpg(_epgMap, et -> ((LabelType) et).getUpdatedBy(), (et, vl) -> ((LabelType) et).setUpdatedBy(DfTypeUtil.toString(vl)),
@ -145,6 +147,8 @@ public class LabelTypeDbm extends AbstractDBMeta {
0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnPermissions = cci("permissions", "permissions", null, null, String[].class, "permissions", null,
false, false, false, "keyword", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnVirtualHost = cci("virtualHost", "virtualHost", null, null, String.class, "virtualHost", null, false,
false, false, "keyword", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnSortOrder = cci("sortOrder", "sortOrder", null, null, Integer.class, "sortOrder", null, false, false,
false, "Integer", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnUpdatedBy = cci("updatedBy", "updatedBy", null, null, String.class, "updatedBy", null, false, false,
@ -178,6 +182,10 @@ public class LabelTypeDbm extends AbstractDBMeta {
return _columnPermissions;
}
public ColumnInfo columnVirtualHost() {
return _columnVirtualHost;
}
public ColumnInfo columnSortOrder() {
return _columnSortOrder;
}
@ -202,6 +210,7 @@ public class LabelTypeDbm extends AbstractDBMeta {
ls.add(columnIncludedPaths());
ls.add(columnName());
ls.add(columnPermissions());
ls.add(columnVirtualHost());
ls.add(columnSortOrder());
ls.add(columnUpdatedBy());
ls.add(columnUpdatedTime());

View file

@ -200,6 +200,10 @@ public class BsLabelTypeCB extends EsAbstractConditionBean {
doColumn("permissions");
}
public void columnVirtualHost() {
doColumn("virtualHost");
}
public void columnSortOrder() {
doColumn("sortOrder");
}

View file

@ -983,6 +983,137 @@ public abstract class BsLabelTypeCA extends EsAbstractConditionAggregation {
}
}
public void setVirtualHost_Terms() {
setVirtualHost_Terms(null);
}
public void setVirtualHost_Terms(ConditionOptionCall<TermsAggregationBuilder> opLambda) {
setVirtualHost_Terms("virtualHost", opLambda, null);
}
public void setVirtualHost_Terms(ConditionOptionCall<TermsAggregationBuilder> opLambda, OperatorCall<BsLabelTypeCA> aggsLambda) {
setVirtualHost_Terms("virtualHost", opLambda, aggsLambda);
}
public void setVirtualHost_Terms(String name, ConditionOptionCall<TermsAggregationBuilder> opLambda,
OperatorCall<BsLabelTypeCA> aggsLambda) {
TermsAggregationBuilder builder = regTermsA(name, "virtualHost");
if (opLambda != null) {
opLambda.callback(builder);
}
if (aggsLambda != null) {
LabelTypeCA ca = new LabelTypeCA();
aggsLambda.callback(ca);
ca.getAggregationBuilderList().forEach(builder::subAggregation);
}
}
public void setVirtualHost_SignificantTerms() {
setVirtualHost_SignificantTerms(null);
}
public void setVirtualHost_SignificantTerms(ConditionOptionCall<SignificantTermsAggregationBuilder> opLambda) {
setVirtualHost_SignificantTerms("virtualHost", opLambda, null);
}
public void setVirtualHost_SignificantTerms(ConditionOptionCall<SignificantTermsAggregationBuilder> opLambda,
OperatorCall<BsLabelTypeCA> aggsLambda) {
setVirtualHost_SignificantTerms("virtualHost", opLambda, aggsLambda);
}
public void setVirtualHost_SignificantTerms(String name, ConditionOptionCall<SignificantTermsAggregationBuilder> opLambda,
OperatorCall<BsLabelTypeCA> aggsLambda) {
SignificantTermsAggregationBuilder builder = regSignificantTermsA(name, "virtualHost");
if (opLambda != null) {
opLambda.callback(builder);
}
if (aggsLambda != null) {
LabelTypeCA ca = new LabelTypeCA();
aggsLambda.callback(ca);
ca.getAggregationBuilderList().forEach(builder::subAggregation);
}
}
public void setVirtualHost_IpRange() {
setVirtualHost_IpRange(null);
}
public void setVirtualHost_IpRange(ConditionOptionCall<IpRangeAggregationBuilder> opLambda) {
setVirtualHost_IpRange("virtualHost", opLambda, null);
}
public void setVirtualHost_IpRange(ConditionOptionCall<IpRangeAggregationBuilder> opLambda, OperatorCall<BsLabelTypeCA> aggsLambda) {
setVirtualHost_IpRange("virtualHost", opLambda, aggsLambda);
}
public void setVirtualHost_IpRange(String name, ConditionOptionCall<IpRangeAggregationBuilder> opLambda,
OperatorCall<BsLabelTypeCA> aggsLambda) {
IpRangeAggregationBuilder builder = regIpRangeA(name, "virtualHost");
if (opLambda != null) {
opLambda.callback(builder);
}
if (aggsLambda != null) {
LabelTypeCA ca = new LabelTypeCA();
aggsLambda.callback(ca);
ca.getAggregationBuilderList().forEach(builder::subAggregation);
}
}
public void setVirtualHost_Count() {
setVirtualHost_Count(null);
}
public void setVirtualHost_Count(ConditionOptionCall<ValueCountAggregationBuilder> opLambda) {
setVirtualHost_Count("virtualHost", opLambda);
}
public void setVirtualHost_Count(String name, ConditionOptionCall<ValueCountAggregationBuilder> opLambda) {
ValueCountAggregationBuilder builder = regCountA(name, "virtualHost");
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_Cardinality() {
setVirtualHost_Cardinality(null);
}
public void setVirtualHost_Cardinality(ConditionOptionCall<CardinalityAggregationBuilder> opLambda) {
setVirtualHost_Cardinality("virtualHost", opLambda);
}
public void setVirtualHost_Cardinality(String name, ConditionOptionCall<CardinalityAggregationBuilder> opLambda) {
CardinalityAggregationBuilder builder = regCardinalityA(name, "virtualHost");
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_Missing() {
setVirtualHost_Missing(null);
}
public void setVirtualHost_Missing(ConditionOptionCall<MissingAggregationBuilder> opLambda) {
setVirtualHost_Missing("virtualHost", opLambda, null);
}
public void setVirtualHost_Missing(ConditionOptionCall<MissingAggregationBuilder> opLambda, OperatorCall<BsLabelTypeCA> aggsLambda) {
setVirtualHost_Missing("virtualHost", opLambda, aggsLambda);
}
public void setVirtualHost_Missing(String name, ConditionOptionCall<MissingAggregationBuilder> opLambda,
OperatorCall<BsLabelTypeCA> aggsLambda) {
MissingAggregationBuilder builder = regMissingA(name, "virtualHost");
if (opLambda != null) {
opLambda.callback(builder);
}
if (aggsLambda != null) {
LabelTypeCA ca = new LabelTypeCA();
aggsLambda.callback(ca);
ca.getAggregationBuilderList().forEach(builder::subAggregation);
}
}
public void setSortOrder_Avg() {
setSortOrder_Avg(null);
}

View file

@ -1473,6 +1473,228 @@ public abstract class BsLabelTypeCQ extends EsAbstractConditionQuery {
return this;
}
public void setVirtualHost_Equal(String virtualHost) {
setVirtualHost_Term(virtualHost, null);
}
public void setVirtualHost_Equal(String virtualHost, ConditionOptionCall<TermQueryBuilder> opLambda) {
setVirtualHost_Term(virtualHost, opLambda);
}
public void setVirtualHost_Term(String virtualHost) {
setVirtualHost_Term(virtualHost, null);
}
public void setVirtualHost_Term(String virtualHost, ConditionOptionCall<TermQueryBuilder> opLambda) {
TermQueryBuilder builder = regTermQ("virtualHost", virtualHost);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_NotEqual(String virtualHost) {
setVirtualHost_NotTerm(virtualHost, null);
}
public void setVirtualHost_NotTerm(String virtualHost) {
setVirtualHost_NotTerm(virtualHost, null);
}
public void setVirtualHost_NotEqual(String virtualHost, ConditionOptionCall<BoolQueryBuilder> opLambda) {
setVirtualHost_NotTerm(virtualHost, opLambda);
}
public void setVirtualHost_NotTerm(String virtualHost, ConditionOptionCall<BoolQueryBuilder> opLambda) {
not(not -> not.setVirtualHost_Term(virtualHost), opLambda);
}
public void setVirtualHost_Terms(Collection<String> virtualHostList) {
setVirtualHost_Terms(virtualHostList, null);
}
public void setVirtualHost_Terms(Collection<String> virtualHostList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
TermsQueryBuilder builder = regTermsQ("virtualHost", virtualHostList);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_InScope(Collection<String> virtualHostList) {
setVirtualHost_Terms(virtualHostList, null);
}
public void setVirtualHost_InScope(Collection<String> virtualHostList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
setVirtualHost_Terms(virtualHostList, opLambda);
}
public void setVirtualHost_Match(String virtualHost) {
setVirtualHost_Match(virtualHost, null);
}
public void setVirtualHost_Match(String virtualHost, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchQ("virtualHost", virtualHost);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_MatchPhrase(String virtualHost) {
setVirtualHost_MatchPhrase(virtualHost, null);
}
public void setVirtualHost_MatchPhrase(String virtualHost, ConditionOptionCall<MatchPhraseQueryBuilder> opLambda) {
MatchPhraseQueryBuilder builder = regMatchPhraseQ("virtualHost", virtualHost);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_MatchPhrasePrefix(String virtualHost) {
setVirtualHost_MatchPhrasePrefix(virtualHost, null);
}
public void setVirtualHost_MatchPhrasePrefix(String virtualHost, ConditionOptionCall<MatchPhrasePrefixQueryBuilder> opLambda) {
MatchPhrasePrefixQueryBuilder builder = regMatchPhrasePrefixQ("virtualHost", virtualHost);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_Fuzzy(String virtualHost) {
setVirtualHost_Fuzzy(virtualHost, null);
}
public void setVirtualHost_Fuzzy(String virtualHost, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regFuzzyQ("virtualHost", virtualHost);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_Prefix(String virtualHost) {
setVirtualHost_Prefix(virtualHost, null);
}
public void setVirtualHost_Prefix(String virtualHost, ConditionOptionCall<PrefixQueryBuilder> opLambda) {
PrefixQueryBuilder builder = regPrefixQ("virtualHost", virtualHost);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_Wildcard(String virtualHost) {
setVirtualHost_Wildcard(virtualHost, null);
}
public void setVirtualHost_Wildcard(String virtualHost, ConditionOptionCall<WildcardQueryBuilder> opLambda) {
WildcardQueryBuilder builder = regWildcardQ("virtualHost", virtualHost);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_Regexp(String virtualHost) {
setVirtualHost_Regexp(virtualHost, null);
}
public void setVirtualHost_Regexp(String virtualHost, ConditionOptionCall<RegexpQueryBuilder> opLambda) {
RegexpQueryBuilder builder = regRegexpQ("virtualHost", virtualHost);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_SpanTerm(String virtualHost) {
setVirtualHost_SpanTerm("virtualHost", null);
}
public void setVirtualHost_SpanTerm(String virtualHost, ConditionOptionCall<SpanTermQueryBuilder> opLambda) {
SpanTermQueryBuilder builder = regSpanTermQ("virtualHost", virtualHost);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_GreaterThan(String virtualHost) {
setVirtualHost_GreaterThan(virtualHost, null);
}
public void setVirtualHost_GreaterThan(String virtualHost, ConditionOptionCall<RangeQueryBuilder> opLambda) {
final Object _value = virtualHost;
RangeQueryBuilder builder = regRangeQ("virtualHost", ConditionKey.CK_GREATER_THAN, _value);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_LessThan(String virtualHost) {
setVirtualHost_LessThan(virtualHost, null);
}
public void setVirtualHost_LessThan(String virtualHost, ConditionOptionCall<RangeQueryBuilder> opLambda) {
final Object _value = virtualHost;
RangeQueryBuilder builder = regRangeQ("virtualHost", ConditionKey.CK_LESS_THAN, _value);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_GreaterEqual(String virtualHost) {
setVirtualHost_GreaterEqual(virtualHost, null);
}
public void setVirtualHost_GreaterEqual(String virtualHost, ConditionOptionCall<RangeQueryBuilder> opLambda) {
final Object _value = virtualHost;
RangeQueryBuilder builder = regRangeQ("virtualHost", ConditionKey.CK_GREATER_EQUAL, _value);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_LessEqual(String virtualHost) {
setVirtualHost_LessEqual(virtualHost, null);
}
public void setVirtualHost_LessEqual(String virtualHost, ConditionOptionCall<RangeQueryBuilder> opLambda) {
final Object _value = virtualHost;
RangeQueryBuilder builder = regRangeQ("virtualHost", ConditionKey.CK_LESS_EQUAL, _value);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_Exists() {
setVirtualHost_Exists(null);
}
public void setVirtualHost_Exists(ConditionOptionCall<ExistsQueryBuilder> opLambda) {
ExistsQueryBuilder builder = regExistsQ("virtualHost");
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setVirtualHost_CommonTerms(String virtualHost) {
setVirtualHost_CommonTerms(virtualHost, null);
}
public void setVirtualHost_CommonTerms(String virtualHost, ConditionOptionCall<CommonTermsQueryBuilder> opLambda) {
CommonTermsQueryBuilder builder = regCommonTermsQ("virtualHost", virtualHost);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public BsLabelTypeCQ addOrderBy_VirtualHost_Asc() {
regOBA("virtualHost");
return this;
}
public BsLabelTypeCQ addOrderBy_VirtualHost_Desc() {
regOBD("virtualHost");
return this;
}
public void setSortOrder_Equal(Integer sortOrder) {
setSortOrder_Term(sortOrder, null);
}

View file

@ -35,6 +35,7 @@ import org.codelibs.fess.Constants;
import org.codelibs.fess.app.service.LabelTypeService;
import org.codelibs.fess.entity.SearchRequestParams.SearchRequestType;
import org.codelibs.fess.es.config.exentity.LabelType;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.util.ComponentUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -66,6 +67,7 @@ public class LabelTypeHelper {
item.setLabel(labelType.getName());
item.setValue(labelType.getValue());
item.setPermissions(labelType.getPermissions());
item.setVirtualHost(labelType.getVirtualHost());
itemList.add(item);
}
labelTypeItemList = itemList;
@ -76,10 +78,19 @@ public class LabelTypeHelper {
init();
}
final String virtualHostKey = ComponentUtil.getFessConfig().getVirtualHostKey();
final List<LabelTypeItem> labelList;
if (StringUtil.isBlank(virtualHostKey)) {
labelList = labelTypeItemList;
} else {
labelList =
labelTypeItemList.stream().filter(item -> virtualHostKey.equals(item.getVirtualHost())).collect(Collectors.toList());
}
final List<Map<String, String>> itemList = new ArrayList<>();
final Set<String> roleSet = roleQueryHelper.build(searchRequestType);
if (roleSet.isEmpty()) {
for (final LabelTypeItem item : labelTypeItemList) {
for (final LabelTypeItem item : labelList) {
if (item.getPermissions().length == 0) {
final Map<String, String> map = new HashMap<>(2);
map.put(Constants.ITEM_LABEL, item.getLabel());
@ -88,7 +99,7 @@ public class LabelTypeHelper {
}
}
} else {
for (final LabelTypeItem item : labelTypeItemList) {
for (final LabelTypeItem item : labelList) {
final Set<String> permissions = stream(item.getPermissions()).get(stream -> stream.collect(Collectors.toSet()));
for (final String roleValue : roleSet) {
if (permissions.contains(roleValue)) {
@ -148,6 +159,8 @@ public class LabelTypeHelper {
private String[] permissions;
private String virtualHost;
public String getLabel() {
return label;
}
@ -171,6 +184,14 @@ public class LabelTypeHelper {
public void setPermissions(final String[] permissions) {
this.permissions = permissions;
}
public String getVirtualHost() {
return virtualHost;
}
public void setVirtualHost(String virtualHost) {
this.virtualHost = virtualHost;
}
}
public static class LabelTypePattern {

View file

@ -221,7 +221,7 @@ public class SystemHelper {
public void refreshDesignJspFiles() {
final ServletContext servletContext = LaServletContextUtil.getServletContext();
stream(ComponentUtil.getFessConfig().getVirtualHostKeys()).of(
stream(ComponentUtil.getFessConfig().getVirtualHostPaths()).of(
stream -> stream.filter(s -> s != null && !s.equals("/")).forEach(
key -> {
designJspFileNameMap

View file

@ -1055,6 +1055,9 @@ public class FessLabels extends UserMessages {
/** The key of the message: Virtual Hosts */
public static final String LABELS_virtual_hosts = "{labels.virtual_hosts}";
/** The key of the message: Virtual Host */
public static final String LABELS_virtual_host = "{labels.virtual_host}";
/** The key of the message: Label */
public static final String LABELS_label_type = "{labels.label_type}";
@ -1463,9 +1466,6 @@ public class FessLabels extends UserMessages {
/** The key of the message: Key Match */
public static final String LABELS_key_match_title_details = "{labels.key_match_title_details}";
/** The key of the message: Virtual Host */
public static final String LABELS_key_match_virtual_host = "{labels.key_match_virtual_host}";
/** The key of the message: Page Design */
public static final String LABELS_design_configuration = "{labels.design_configuration}";
@ -2265,9 +2265,6 @@ public class FessLabels extends UserMessages {
/** The key of the message: Related Content */
public static final String LABELS_related_content_title_details = "{labels.related_content_title_details}";
/** The key of the message: Virtual Host */
public static final String LABELS_related_content_virtual_host = "{labels.related_content_virtual_host}";
/** The key of the message: Related Query */
public static final String LABELS_related_query_configuration = "{labels.related_query_configuration}";
@ -2283,9 +2280,6 @@ public class FessLabels extends UserMessages {
/** The key of the message: Related Query */
public static final String LABELS_related_query_title_details = "{labels.related_query_title_details}";
/** The key of the message: Virtual Host */
public static final String LABELS_related_query_virtual_host = "{labels.related_query_virtual_host}";
/** The key of the message: Create */
public static final String LABELS_crud_button_create = "{labels.crud_button_create}";

View file

@ -1598,7 +1598,10 @@ public interface FessProp {
String getVirtualHostHeaders();
public default HtmlNext getVirtualHostPath(final HtmlNext page) {
return processVirtualHost(s -> new HtmlNext(s + page.getRoutingPath()), page);
return processVirtualHost(s -> {
final String basePath = StringUtil.isBlank(s) ? StringUtil.EMPTY : "/" + s;
return new HtmlNext(basePath + page.getRoutingPath());
}, page);
}
public default String getVirtualHostKey() {
@ -1634,6 +1637,10 @@ public interface FessProp {
return stream(getVirtualHosts()).get(stream -> stream.map(h -> h.getValue3()).toArray(n -> new String[n]));
}
public default String[] getVirtualHostPaths() {
return stream(getVirtualHosts()).get(stream -> stream.map(h -> "/" + h.getValue3()).toArray(n -> new String[n]));
}
@SuppressWarnings("unchecked")
public default Tuple3<String, String, String>[] getVirtualHosts() {
Tuple3<String, String, String>[] hosts = (Tuple3<String, String, String>[]) propMap.get(VIRTUAL_HOST_HEADERS);
@ -1644,10 +1651,10 @@ public interface FessProp {
.map(s -> {
final String[] v1 = s.split("=");
if (v1.length == 2) {
final String[] v2 = v1[0].split(":");
final String[] v2 = v1[0].split(":", 2);
if (v2.length == 2) {
return new Tuple3<>(v2[0].trim(), v2[0].trim(), "/"
+ v1[1].replaceAll("[^a-zA-Z0-9_]", StringUtil.EMPTY).trim());
return new Tuple3<>(v2[0].trim(), v2[1].trim(), v1[1].replaceAll("[^a-zA-Z0-9_]",
StringUtil.EMPTY).trim());
}
}
return null;
@ -1656,9 +1663,9 @@ public interface FessProp {
if (v == null) {
return false;
}
if ("/admin".equalsIgnoreCase(v.getValue3()) || "/common".equalsIgnoreCase(v.getValue3())
|| "/error".equalsIgnoreCase(v.getValue3()) || "/login".equalsIgnoreCase(v.getValue3())
|| "/profile".equalsIgnoreCase(v.getValue3())) {
if ("admin".equalsIgnoreCase(v.getValue3()) || "common".equalsIgnoreCase(v.getValue3())
|| "error".equalsIgnoreCase(v.getValue3()) || "login".equalsIgnoreCase(v.getValue3())
|| "profile".equalsIgnoreCase(v.getValue3())) {
return false;
}
return true;

View file

@ -22,6 +22,9 @@
"permissions": {
"type": "keyword"
},
"virtualHost": {
"type": "keyword"
},
"sortOrder": {
"type": "integer"
},

View file

@ -342,6 +342,7 @@ labels.interval_time=Interval time
labels.millisec=ms
labels.permissions=Permissions
labels.virtual_hosts=Virtual Hosts
labels.virtual_host=Virtual Host
labels.label_type=Label
labels.file_crawling_button_create=Create
labels.file_crawling_button_create_job=Create new job
@ -478,7 +479,6 @@ labels.key_match_size=Size
labels.key_match_boost=Boost
labels.key_match_urls=Urls
labels.key_match_title_details=Key Match
labels.key_match_virtual_host=Virtual Host
labels.design_configuration=Page Design
labels.design_title_file_upload=File Upload
labels.design_title_file=File Manager
@ -745,13 +745,11 @@ labels.related_content_content=Content
labels.related_content_list_term=Term
labels.related_content_term=Term
labels.related_content_title_details=Related Content
labels.related_content_virtual_host=Virtual Host
labels.related_query_configuration=Related Query
labels.related_query_list_term=Term
labels.related_query_queries=Queries
labels.related_query_term=Term
labels.related_query_title_details=Related Query
labels.related_query_virtual_host=Virtual Host
labels.crud_button_create=Create
labels.crud_button_update=Update
labels.crud_button_delete=Delete

View file

@ -342,6 +342,7 @@ labels.interval_time=Interval time
labels.millisec=ms
labels.permissions=Permissions
labels.virtual_hosts=Virtual Hosts
labels.virtual_host=Virtual Host
labels.label_type=Label
labels.file_crawling_button_create=Create
labels.file_crawling_button_create_job=Create new job
@ -478,7 +479,6 @@ labels.key_match_size=Size
labels.key_match_boost=Boost
labels.key_match_urls=Urls
labels.key_match_title_details=Key Match
labels.key_match_virtual_host=Virtual Host
labels.design_configuration=Page Design
labels.design_title_file_upload=File Upload
labels.design_title_file=File Manager
@ -745,13 +745,11 @@ labels.related_content_content=Content
labels.related_content_list_term=Term
labels.related_content_term=Term
labels.related_content_title_details=Related Content
labels.related_content_virtual_host=Virtual Host
labels.related_query_configuration=Related Query
labels.related_query_list_term=Term
labels.related_query_queries=Queries
labels.related_query_term=Term
labels.related_query_title_details=Related Query
labels.related_query_virtual_host=Virtual Host
labels.crud_button_create=Create
labels.crud_button_update=Update
labels.crud_button_delete=Delete

View file

@ -335,6 +335,7 @@ labels.interval_time=\u9593\u9694
labels.millisec=\u30df\u30ea\u79d2
labels.permissions=\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3
labels.virtual_hosts=\u4eee\u60f3\u30db\u30b9\u30c8
labels.virtual_host=\u4eee\u60f3\u30db\u30b9\u30c8
labels.label_type=\u30e9\u30d9\u30eb
labels.file_crawling_button_create=\u4f5c\u6210
labels.file_crawling_button_create_job=\u65b0\u3057\u3044\u30b8\u30e7\u30d6\u306e\u4f5c\u6210
@ -471,7 +472,6 @@ labels.key_match_size=\u30b5\u30a4\u30ba
labels.key_match_boost=\u30d6\u30fc\u30b9\u30c8\u5024
labels.key_match_urls=URL
labels.key_match_title_details=\u30ad\u30fc\u30de\u30c3\u30c1
labels.key_match_virtual_host=\u4eee\u60f3\u30db\u30b9\u30c8
labels.design_configuration=\u30da\u30fc\u30b8\u306e\u30c7\u30b6\u30a4\u30f3
labels.design_title_file_upload=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb
labels.design_title_file=\u30d5\u30a1\u30a4\u30eb\u30de\u30cd\u30fc\u30b8\u30e3\u30fc
@ -740,13 +740,11 @@ labels.related_content_content=\u30b3\u30f3\u30c6\u30f3\u30c4
labels.related_content_list_term=\u691c\u7d22\u8a9e
labels.related_content_term=\u691c\u7d22\u8a9e
labels.related_content_title_details=\u95a2\u9023\u30b3\u30f3\u30c6\u30f3\u30c4
labels.related_content_virtual_host=\u4eee\u60f3\u30db\u30b9\u30c8
labels.related_query_configuration=\u95a2\u9023\u30af\u30a8\u30ea\u30fc
labels.related_query_list_term=\u691c\u7d22\u8a9e
labels.related_query_queries=\u30af\u30a8\u30ea\u30fc
labels.related_query_term=\u691c\u7d22\u8a9e
labels.related_query_title_details=\u95a2\u9023\u30af\u30a8\u30ea\u30fc
labels.related_query_virtual_host=\u4eee\u60f3\u30db\u30b9\u30c8
labels.crud_button_create=\u4f5c\u6210
labels.crud_button_update=\u66f4\u65b0
labels.crud_button_delete=\u524a\u9664

View file

@ -74,7 +74,7 @@
</tr>
<tr>
<th class="col-xs-2"><la:message
key="labels.key_match_virtual_host" /></th>
key="labels.virtual_host" /></th>
<td>${f:h(virtualHost)}<la:hidden property="virtualHost" /></td>
</tr>
</tbody>

View file

@ -80,7 +80,7 @@
</div>
<div class="form-group">
<label for="virtualHost" class="col-sm-3 control-label"><la:message
key="labels.key_match_virtual_host" /></label>
key="labels.virtual_host" /></label>
<div class="col-sm-9">
<la:errors property="virtualHost" />
<la:text styleId="virtualHost" property="virtualHost" styleClass="form-control" />

View file

@ -73,6 +73,11 @@
<td>${f:br(f:h(permissions))}<la:hidden
property="permissions" /></td>
</tr>
<tr>
<th class="col-xs-2"><la:message
key="labels.virtual_host" /></th>
<td>${f:h(virtualHost)}<la:hidden property="virtualHost" /></td>
</tr>
<tr>
<th><la:message key="labels.sortOrder" /></th>
<td>${f:h(sortOrder)}<la:hidden property="sortOrder" /></td>

View file

@ -87,6 +87,14 @@
rows="5" />
</div>
</div>
<div class="form-group">
<label for="virtualHost" class="col-sm-3 control-label"><la:message
key="labels.virtual_host" /></label>
<div class="col-sm-9">
<la:errors property="virtualHost" />
<la:text styleId="virtualHost" property="virtualHost" styleClass="form-control" />
</div>
</div>
<div class="form-group">
<label for="sortOrder" class="col-sm-3 control-label"><la:message
key="labels.sortOrder" /></label>

View file

@ -61,7 +61,7 @@
</tr>
<tr>
<th class="col-xs-2"><la:message
key="labels.related_content_virtual_host" /></th>
key="labels.virtual_host" /></th>
<td>${f:h(virtualHost)}<la:hidden property="virtualHost" /></td>
</tr>
</tbody>

View file

@ -62,7 +62,7 @@
</div>
<div class="form-group">
<label for="virtualHost" class="col-sm-3 control-label"><la:message
key="labels.related_query_virtual_host" /></label>
key="labels.virtual_host" /></label>
<div class="col-sm-9">
<la:errors property="virtualHost" />
<la:text styleId="virtualHost" property="virtualHost" styleClass="form-control" />

View file

@ -61,7 +61,7 @@
</tr>
<tr>
<th class="col-xs-2"><la:message
key="labels.related_query_virtual_host" /></th>
key="labels.virtual_host" /></th>
<td>${f:h(virtualHost)}<la:hidden property="virtualHost" /></td>
</tr>
</tbody>

View file

@ -62,7 +62,7 @@
</div>
<div class="form-group">
<label for="virtualHost" class="col-sm-3 control-label"><la:message
key="labels.related_query_virtual_host" /></label>
key="labels.virtual_host" /></label>
<div class="col-sm-9">
<la:errors property="virtualHost" />
<la:text styleId="virtualHost" property="virtualHost" styleClass="form-control" />