fix #877 add FessActionValidator
This commit is contained in:
parent
23746c6122
commit
ff351756ae
4 changed files with 66 additions and 35 deletions
|
@ -17,23 +17,17 @@ package org.codelibs.fess.app.web.base;
|
|||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.codelibs.core.beans.util.BeanUtil;
|
||||
import org.codelibs.core.beans.util.CopyOptions;
|
||||
import org.codelibs.fess.exception.UserRoleLoginException;
|
||||
import org.codelibs.fess.helper.SystemHelper;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.lastaflute.core.message.MessageManager;
|
||||
import org.lastaflute.core.message.UserMessages;
|
||||
import org.lastaflute.di.util.LdiFileUtil;
|
||||
import org.lastaflute.web.login.LoginManager;
|
||||
import org.lastaflute.web.response.ActionResponse;
|
||||
import org.lastaflute.web.ruts.process.ActionRuntime;
|
||||
import org.lastaflute.web.servlet.request.RequestManager;
|
||||
import org.lastaflute.web.util.LaServletContextUtil;
|
||||
import org.lastaflute.web.validation.ActionValidator;
|
||||
|
||||
/**
|
||||
* @author codelibs
|
||||
|
@ -41,19 +35,6 @@ import org.lastaflute.web.validation.ActionValidator;
|
|||
*/
|
||||
public abstract class FessAdminAction extends FessBaseAction {
|
||||
|
||||
// ===================================================================================
|
||||
// Attribute
|
||||
// =========
|
||||
|
||||
@Resource
|
||||
protected SystemHelper systemHelper;
|
||||
|
||||
@Resource
|
||||
private MessageManager messageManager;
|
||||
|
||||
@Resource
|
||||
private RequestManager requestManager;
|
||||
|
||||
// ===================================================================================
|
||||
// Small Helper
|
||||
// ============
|
||||
|
@ -86,16 +67,6 @@ public abstract class FessAdminAction extends FessBaseAction {
|
|||
return buf.toString();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
protected <MESSAGES extends UserMessages> ActionValidator<MESSAGES> createValidator(Class<?>... groups) { // for explicit groups
|
||||
return systemHelper.createValidator(messageManager // to get validation message
|
||||
, () -> requestManager.getUserLocale() // used with messageManager
|
||||
, () -> (MESSAGES) createMessages() // for new user messages
|
||||
, () -> handleApiValidationError() // apiFailureHook
|
||||
, groups);
|
||||
}
|
||||
|
||||
// ===================================================================================
|
||||
// Document
|
||||
// ========
|
||||
|
|
|
@ -19,17 +19,20 @@ import javax.annotation.Resource;
|
|||
|
||||
import org.codelibs.fess.app.web.base.login.FessLoginAssist;
|
||||
import org.codelibs.fess.helper.ActivityHelper;
|
||||
import org.codelibs.fess.helper.SystemHelper;
|
||||
import org.codelibs.fess.mylasta.action.FessHtmlPath;
|
||||
import org.codelibs.fess.mylasta.action.FessMessages;
|
||||
import org.codelibs.fess.mylasta.action.FessUserBean;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.dbflute.hook.AccessContext;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.lastaflute.core.message.MessageManager;
|
||||
import org.lastaflute.core.time.TimeManager;
|
||||
import org.lastaflute.db.dbflute.accesscontext.AccessContextArranger;
|
||||
import org.lastaflute.web.TypicalAction;
|
||||
import org.lastaflute.web.response.ActionResponse;
|
||||
import org.lastaflute.web.ruts.process.ActionRuntime;
|
||||
import org.lastaflute.web.servlet.request.RequestManager;
|
||||
import org.lastaflute.web.servlet.request.ResponseManager;
|
||||
import org.lastaflute.web.servlet.session.SessionManager;
|
||||
import org.lastaflute.web.validation.ActionValidator;
|
||||
|
@ -72,6 +75,15 @@ public abstract class FessBaseAction extends TypicalAction // has several interf
|
|||
@Resource
|
||||
protected TimeManager timeManager;
|
||||
|
||||
@Resource
|
||||
protected SystemHelper systemHelper;
|
||||
|
||||
@Resource
|
||||
private MessageManager messageManager;
|
||||
|
||||
@Resource
|
||||
private RequestManager requestManager;
|
||||
|
||||
// ===================================================================================
|
||||
// Hook
|
||||
// ======
|
||||
|
@ -141,7 +153,11 @@ public abstract class FessBaseAction extends TypicalAction // has several interf
|
|||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public ActionValidator<FessMessages> createValidator() {
|
||||
return super.createValidator();
|
||||
return systemHelper.createValidator(messageManager // to get validation message
|
||||
, () -> requestManager.getUserLocale() // used with messageManager
|
||||
, () -> createMessages() // for new user messages
|
||||
, () -> handleApiValidationError() // apiFailureHook
|
||||
, myValidationGroups());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -44,11 +44,12 @@ import org.apache.commons.lang3.StringUtils;
|
|||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.crawler.util.CharUtil;
|
||||
import org.codelibs.fess.mylasta.action.FessMessages;
|
||||
import org.codelibs.fess.mylasta.action.FessUserBean;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.validation.FessActionValidator;
|
||||
import org.lastaflute.core.message.MessageManager;
|
||||
import org.lastaflute.core.message.UserMessages;
|
||||
import org.lastaflute.core.message.supplier.MessageLocaleProvider;
|
||||
import org.lastaflute.core.message.supplier.UserMessagesCreator;
|
||||
import org.lastaflute.web.TypicalAction;
|
||||
|
@ -322,10 +323,10 @@ public class SystemHelper {
|
|||
return previousClusterState.getAndSet(status) != status;
|
||||
}
|
||||
|
||||
public <MESSAGES extends UserMessages> ActionValidator<MESSAGES> createValidator(MessageManager messageManager,
|
||||
MessageLocaleProvider messageLocaleProvider, UserMessagesCreator<MESSAGES> userMessagesCreator, VaErrorHook apiFailureHook,
|
||||
Class<?>... runtimeGroups) {
|
||||
return new ActionValidator<MESSAGES>(messageManager, messageLocaleProvider, userMessagesCreator, apiFailureHook, runtimeGroups);
|
||||
public ActionValidator<FessMessages> createValidator(MessageManager messageManager, MessageLocaleProvider messageLocaleProvider,
|
||||
UserMessagesCreator<FessMessages> userMessagesCreator, VaErrorHook apiFailureHook, Class<?>... runtimeGroups) {
|
||||
return new FessActionValidator<FessMessages>(messageManager, messageLocaleProvider, userMessagesCreator, apiFailureHook,
|
||||
runtimeGroups);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* Copyright 2012-2017 CodeLibs Project and the Others.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific language
|
||||
* governing permissions and limitations under the License.
|
||||
*/
|
||||
package org.codelibs.fess.validation;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.hibernate.validator.spi.resourceloading.ResourceBundleLocator;
|
||||
import org.lastaflute.core.message.MessageManager;
|
||||
import org.lastaflute.core.message.UserMessages;
|
||||
import org.lastaflute.core.message.supplier.MessageLocaleProvider;
|
||||
import org.lastaflute.core.message.supplier.UserMessagesCreator;
|
||||
import org.lastaflute.web.validation.ActionValidator;
|
||||
import org.lastaflute.web.validation.VaErrorHook;
|
||||
|
||||
public class FessActionValidator<MESSAGES extends UserMessages> extends ActionValidator<MESSAGES> {
|
||||
|
||||
public FessActionValidator(final MessageManager messageManager, final MessageLocaleProvider messageLocaleProvider,
|
||||
final UserMessagesCreator<MESSAGES> userMessagesCreator, final VaErrorHook apiFailureHook, final Class<?>[] runtimeGroups) {
|
||||
super(messageManager, messageLocaleProvider, userMessagesCreator, apiFailureHook, runtimeGroups);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ResourceBundleLocator newResourceBundleLocator() {
|
||||
return locale -> {
|
||||
final Locale userLocale = ComponentUtil.getRequestManager().getUserLocale();
|
||||
return newHookedResourceBundle(userLocale == null ? locale : userLocale);
|
||||
};
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue