fix #2501 add form.admin.default.template.name

This commit is contained in:
Shinsuke Sugaya 2020-11-26 11:01:04 +09:00
parent 8f70b5cbd4
commit b9086a2e93
9 changed files with 116 additions and 0 deletions

View file

@ -28,6 +28,7 @@ import org.codelibs.fess.es.config.exbhv.DataConfigBhv;
import org.codelibs.fess.es.config.exentity.DataConfig;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.util.ParameterUtil;
import org.dbflute.cbean.result.ListResultBean;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
@ -66,6 +67,17 @@ public class DataConfigService extends FessAppService {
return dataConfigBhv.selectByPK(id);
}
public OptionalEntity<DataConfig> getDataConfigByName(final String name) {
final ListResultBean<DataConfig> list = dataConfigBhv.selectList(cb -> {
cb.query().setName_Equal(name);
cb.query().addOrderBy_SortOrder_Asc();
});
if (list.isEmpty()) {
return OptionalEntity.empty();
}
return OptionalEntity.of(list.get(0));
}
public void store(final DataConfig dataConfig) {
dataConfig.setHandlerParameter(ParameterUtil.encrypt(dataConfig.getHandlerParameter()));
dataConfigBhv.insertOrUpdate(dataConfig, op -> {

View file

@ -29,6 +29,7 @@ import org.codelibs.fess.es.config.exbhv.FileConfigBhv;
import org.codelibs.fess.es.config.exentity.FileConfig;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.util.ParameterUtil;
import org.dbflute.cbean.result.ListResultBean;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
@ -76,6 +77,17 @@ public class FileConfigService extends FessAppService {
return fileConfigBhv.selectByPK(id);
}
public OptionalEntity<FileConfig> getFileConfigByName(final String name) {
final ListResultBean<FileConfig> list = fileConfigBhv.selectList(cb -> {
cb.query().setName_Equal(name);
cb.query().addOrderBy_SortOrder_Asc();
});
if (list.isEmpty()) {
return OptionalEntity.empty();
}
return OptionalEntity.of(list.get(0));
}
public void store(final FileConfig fileConfig) {
fileConfig.setConfigParameter(ParameterUtil.encrypt(fileConfig.getConfigParameter()));
fileConfigBhv.insertOrUpdate(fileConfig, op -> {

View file

@ -30,6 +30,7 @@ import org.codelibs.fess.es.config.exbhv.WebConfigBhv;
import org.codelibs.fess.es.config.exentity.WebConfig;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.util.ParameterUtil;
import org.dbflute.cbean.result.ListResultBean;
import org.dbflute.cbean.result.PagingResultBean;
import org.dbflute.optional.OptionalEntity;
@ -84,6 +85,17 @@ public class WebConfigService extends FessAppService {
return webConfigBhv.selectByPK(id);
}
public OptionalEntity<WebConfig> getWebConfigByName(final String name) {
final ListResultBean<WebConfig> list = webConfigBhv.selectList(cb -> {
cb.query().setName_Equal(name);
cb.query().addOrderBy_SortOrder_Asc();
});
if (list.isEmpty()) {
return OptionalEntity.empty();
}
return OptionalEntity.of(list.get(0));
}
public void store(final WebConfig webConfig) {
webConfig.setConfigParameter(ParameterUtil.encrypt(webConfig.getConfigParameter()));
webConfigBhv.insertOrUpdate(webConfig, op -> {

View file

@ -36,6 +36,7 @@ import org.codelibs.fess.app.service.RoleTypeService;
import org.codelibs.fess.app.web.CrudMode;
import org.codelibs.fess.app.web.base.FessAdminAction;
import org.codelibs.fess.ds.DataStoreFactory;
import org.codelibs.fess.es.config.exentity.CrawlingConfig.ConfigType;
import org.codelibs.fess.es.config.exentity.DataConfig;
import org.codelibs.fess.helper.PermissionHelper;
import org.codelibs.fess.helper.SystemHelper;
@ -143,6 +144,19 @@ public class AdminDataconfigAction extends FessAdminAction {
return asEditHtml().useForm(CreateForm.class, op -> {
op.setup(form -> {
form.initialize();
ComponentUtil.getCrawlingConfigHelper().getDefaultConfig(ConfigType.DATA).ifPresent(entity -> {
copyBeanToBean(entity, form, copyOp -> {
copyOp.excludeNull();
copyOp.exclude(Stream.concat(Stream.of(Constants.COMMON_CONVERSION_RULE),
Stream.of(Constants.PERMISSIONS, Constants.VIRTUAL_HOSTS)).toArray(n -> new String[n]));
});
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
form.permissions = stream(entity.getPermissions()).get(stream -> stream.map(s -> permissionHelper.decode(s))
.filter(StringUtil::isNotBlank).distinct().collect(Collectors.joining("\n")));
form.virtualHosts = stream(entity.getVirtualHosts())
.get(stream -> stream.filter(StringUtil::isNotBlank).map(String::trim).collect(Collectors.joining("\n")));
form.name = null;
});
form.crudMode = CrudMode.CREATE;
});
});

View file

@ -32,6 +32,7 @@ import org.codelibs.fess.app.service.LabelTypeService;
import org.codelibs.fess.app.service.RoleTypeService;
import org.codelibs.fess.app.web.CrudMode;
import org.codelibs.fess.app.web.base.FessAdminAction;
import org.codelibs.fess.es.config.exentity.CrawlingConfig.ConfigType;
import org.codelibs.fess.es.config.exentity.FileConfig;
import org.codelibs.fess.helper.PermissionHelper;
import org.codelibs.fess.helper.SystemHelper;
@ -138,6 +139,19 @@ public class AdminFileconfigAction extends FessAdminAction {
return asHtml(path_AdminFileconfig_AdminFileconfigEditJsp).useForm(CreateForm.class, op -> {
op.setup(form -> {
form.initialize();
ComponentUtil.getCrawlingConfigHelper().getDefaultConfig(ConfigType.FILE).ifPresent(entity -> {
copyBeanToBean(entity, form, copyOp -> {
copyOp.excludeNull();
copyOp.exclude(Stream.concat(Stream.of(Constants.COMMON_CONVERSION_RULE),
Stream.of(Constants.PERMISSIONS, Constants.VIRTUAL_HOSTS)).toArray(n -> new String[n]));
});
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
form.permissions = stream(entity.getPermissions()).get(stream -> stream.map(s -> permissionHelper.decode(s))
.filter(StringUtil::isNotBlank).distinct().collect(Collectors.joining("\n")));
form.virtualHosts = stream(entity.getVirtualHosts())
.get(stream -> stream.filter(StringUtil::isNotBlank).map(String::trim).collect(Collectors.joining("\n")));
form.name = null;
});
form.crudMode = CrudMode.CREATE;
});
}).renderWith(data -> {

View file

@ -33,6 +33,7 @@ import org.codelibs.fess.app.service.ScheduledJobService;
import org.codelibs.fess.app.service.WebConfigService;
import org.codelibs.fess.app.web.CrudMode;
import org.codelibs.fess.app.web.base.FessAdminAction;
import org.codelibs.fess.es.config.exentity.CrawlingConfig.ConfigType;
import org.codelibs.fess.es.config.exentity.WebConfig;
import org.codelibs.fess.helper.PermissionHelper;
import org.codelibs.fess.helper.SystemHelper;
@ -142,6 +143,19 @@ public class AdminWebconfigAction extends FessAdminAction {
return asEditHtml().useForm(CreateForm.class, op -> {
op.setup(form -> {
form.initialize();
ComponentUtil.getCrawlingConfigHelper().getDefaultConfig(ConfigType.WEB).ifPresent(entity -> {
copyBeanToBean(entity, form, copyOp -> {
copyOp.excludeNull();
copyOp.exclude(Stream.concat(Stream.of(Constants.COMMON_CONVERSION_RULE),
Stream.of(Constants.PERMISSIONS, Constants.VIRTUAL_HOSTS)).toArray(n -> new String[n]));
});
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
form.permissions = stream(entity.getPermissions()).get(stream -> stream.map(s -> permissionHelper.decode(s))
.filter(StringUtil::isNotBlank).distinct().collect(Collectors.joining("\n")));
form.virtualHosts = stream(entity.getVirtualHosts())
.get(stream -> stream.filter(StringUtil::isNotBlank).map(String::trim).collect(Collectors.joining("\n")));
form.name = null;
});
form.crudMode = CrudMode.CREATE;
});
});

View file

@ -48,6 +48,7 @@ import org.codelibs.fess.es.config.exentity.WebConfig;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.util.ComponentUtil;
import org.dbflute.cbean.result.ListResultBean;
import org.dbflute.optional.OptionalEntity;
import org.dbflute.optional.OptionalThing;
import com.google.common.cache.Cache;
@ -176,6 +177,7 @@ public class CrawlingConfigHelper {
if (idList != null) {
cb.query().setId_InScope(idList);
}
cb.query().setName_NotEqual(ComponentUtil.getFessConfig().getFormAdminDefaultTemplateName());
cb.query().addOrderBy_SortOrder_Asc();
cb.query().addOrderBy_Name_Asc();
cb.fetchFirst(ComponentUtil.getFessConfig().getPageWebConfigMaxFetchSizeAsInteger());
@ -203,6 +205,7 @@ public class CrawlingConfigHelper {
if (idList != null) {
cb.query().setId_InScope(idList);
}
cb.query().setName_NotEqual(ComponentUtil.getFessConfig().getFormAdminDefaultTemplateName());
cb.query().addOrderBy_SortOrder_Asc();
cb.query().addOrderBy_Name_Asc();
cb.fetchFirst(ComponentUtil.getFessConfig().getPageFileConfigMaxFetchSizeAsInteger());
@ -230,6 +233,7 @@ public class CrawlingConfigHelper {
if (idList != null) {
cb.query().setId_InScope(idList);
}
cb.query().setName_NotEqual(ComponentUtil.getFessConfig().getFormAdminDefaultTemplateName());
cb.query().addOrderBy_SortOrder_Asc();
cb.query().addOrderBy_Name_Asc();
cb.fetchFirst(ComponentUtil.getFessConfig().getPageDataConfigMaxFetchSizeAsInteger());
@ -271,4 +275,22 @@ public class CrawlingConfigHelper {
}
return urlList;
}
public OptionalEntity<CrawlingConfig> getDefaultConfig(ConfigType configType) {
String name = ComponentUtil.getFessConfig().getFormAdminDefaultTemplateName();
switch (configType) {
case WEB:
final WebConfigService webConfigService = ComponentUtil.getComponent(WebConfigService.class);
return webConfigService.getWebConfigByName(name).map(o -> (CrawlingConfig) o);
case FILE:
final FileConfigService fileConfigService = ComponentUtil.getComponent(FileConfigService.class);
return fileConfigService.getFileConfigByName(name).map(o -> (CrawlingConfig) o);
case DATA:
final DataConfigService dataConfigService = ComponentUtil.getComponent(DataConfigService.class);
return dataConfigService.getDataConfigByName(name).map(o -> (CrawlingConfig) o);
default:
return OptionalEntity.empty();
}
}
}

View file

@ -995,6 +995,9 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
/** The key of the configuration. e.g. false */
String FORM_ADMIN_LABEL_IN_CONFIG_ENABLED = "form.admin.label.in.config.enabled";
/** The key of the configuration. e.g. __TEMPLATE__ */
String FORM_ADMIN_DEFAULT_TEMPLATE_NAME = "form.admin.default.template.name";
/** The key of the configuration. e.g. admin */
String AUTHENTICATION_ADMIN_USERS = "authentication.admin.users";
@ -4527,6 +4530,13 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
*/
boolean isFormAdminLabelInConfigEnabled();
/**
* Get the value for the key 'form.admin.default.template.name'. <br>
* The value is, e.g. __TEMPLATE__ <br>
* @return The value of found property. (NotNull: if not found, exception but basically no way)
*/
String getFormAdminDefaultTemplateName();
/**
* Get the value for the key 'authentication.admin.users'. <br>
* The value is, e.g. admin <br>
@ -8089,6 +8099,10 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
return is(FessConfig.FORM_ADMIN_LABEL_IN_CONFIG_ENABLED);
}
public String getFormAdminDefaultTemplateName() {
return get(FessConfig.FORM_ADMIN_DEFAULT_TEMPLATE_NAME);
}
public String getAuthenticationAdminUsers() {
return get(FessConfig.AUTHENTICATION_ADMIN_USERS);
}
@ -9491,6 +9505,7 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
defaultMap.put(FessConfig.LOGGING_APP_PACKAGES, "org.codelibs,org.dbflute,org.lastaflute");
defaultMap.put(FessConfig.FORM_ADMIN_MAX_INPUT_SIZE, "4000");
defaultMap.put(FessConfig.FORM_ADMIN_LABEL_IN_CONFIG_ENABLED, "false");
defaultMap.put(FessConfig.FORM_ADMIN_DEFAULT_TEMPLATE_NAME, "__TEMPLATE__");
defaultMap.put(FessConfig.AUTHENTICATION_ADMIN_USERS, "admin");
defaultMap.put(FessConfig.AUTHENTICATION_ADMIN_ROLES, "admin");
defaultMap.put(FessConfig.ROLE_SEARCH_DEFAULT_PERMISSIONS, "");

View file

@ -562,6 +562,7 @@ logging.app.packages=org.codelibs,org.dbflute,org.lastaflute
# =====
form.admin.max.input.size=4000
form.admin.label.in.config.enabled=false
form.admin.default.template.name=__TEMPLATE__
# ----------------------------------------------------------
# Permission