fix #871 make ActionValidator customizable

This commit is contained in:
Shinsuke Sugaya 2017-02-03 18:41:15 +09:00
parent bdc0f9aab7
commit defe812876
2 changed files with 32 additions and 0 deletions

View file

@ -25,11 +25,15 @@ 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
@ -44,6 +48,12 @@ public abstract class FessAdminAction extends FessBaseAction {
@Resource
protected SystemHelper systemHelper;
@Resource
private MessageManager messageManager;
@Resource
private RequestManager requestManager;
// ===================================================================================
// Small Helper
// ============
@ -76,6 +86,16 @@ 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
// ========

View file

@ -47,9 +47,15 @@ import org.codelibs.fess.crawler.util.CharUtil;
import org.codelibs.fess.mylasta.action.FessUserBean;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.util.ComponentUtil;
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;
import org.lastaflute.web.ruts.process.ActionRuntime;
import org.lastaflute.web.servlet.request.RequestManager;
import org.lastaflute.web.validation.ActionValidator;
import org.lastaflute.web.validation.VaErrorHook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -316,4 +322,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);
}
}