package com.norteksoft.acs.web.syssetting; import javax.naming.ldap.LdapContext; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.springframework.beans.factory.annotation.Required; import com.norteksoft.acs.base.utils.Ldaper; import com.norteksoft.acs.base.web.struts2.CRUDActionSupport; import com.norteksoft.acs.entity.sysSetting.ServerConfig; import com.norteksoft.acs.service.syssetting.ServerConfigManager; import com.norteksoft.product.api.ApiFactory; import com.norteksoft.product.util.ContextUtils; @Namespace("/syssetting") @ParentPackage("default") @Results( { @Result(name = CRUDActionSupport.RELOAD, location = "/syssetting/server-config.action", type = "redirect") }) public class ServerConfigAction extends CRUDActionSupport<ServerConfig> { private static final long serialVersionUID = 4622265559442003480L; private ServerConfig serverConfig; private Long id; public ServerConfigManager serverConfigManager; private Boolean ldapInvocation; private Boolean rtxInvocation; private static final String SUCCESS_MESSAGE_LEFT = "<font class=\"onSuccess\"><nobr>"; private static final String ERROR_MESSAGE_LEFT = "<font class=\"onError\"><nobr>"; private static final String MESSAGE_RIGHT = "</nobr></font>"; @Override public String delete() throws Exception { return null; } /** * 查看具体设置 */ @Override @Action("server-config") public String list() throws Exception { serverConfig = serverConfigManager.getServerConfigByCompanyId(ContextUtils.getCompanyId()); if(serverConfig!=null){ id = serverConfig.getId(); }else{ serverConfig = new ServerConfig(); serverConfig.setRtxInvocation(false); serverConfig.setLdapInvocation(false); serverConfigManager.save(serverConfig); } ApiFactory.getBussinessLogService().log("登陆方式设置", "查看登陆方式设置",ContextUtils.getSystemId("acs")); return SUCCESS; } @Override protected void prepareModel() throws Exception { if(id==null){ serverConfig = new ServerConfig(); }else{ serverConfig = serverConfigManager.getServerConfig(id); } } /** * 保存设置 */ @Override public String save() throws Exception { serverConfig.setCompanyId(ContextUtils.getCompanyId()); serverConfigManager.save(serverConfig); if(serverConfig.getLdapInvocation()){ LdapContext context = Ldaper.getConnectionFromPool(); if(context==null){ serverConfig.setLdapInvocation(false); serverConfig.setRtxInvocation(false); serverConfigManager.save(serverConfig); addActionMessage(ERROR_MESSAGE_LEFT+"连接失败!"+MESSAGE_RIGHT); }else{ try { context.close(); } catch (Exception e) { } addActionMessage(SUCCESS_MESSAGE_LEFT+"连接成功!"+MESSAGE_RIGHT); } } ApiFactory.getBussinessLogService().log("登陆方式设置", "启用登陆方式",ContextUtils.getSystemId("acs")); return SUCCESS; } public void prepareModifyLoginTimeouts() throws Exception { prepareModel(); } public ServerConfig getModel() { return serverConfig; } @Required public void setServerConfigManager(ServerConfigManager serverConfigManager) { this.serverConfigManager = serverConfigManager; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Boolean getLdapInvocation() { return ldapInvocation; } public Boolean getRtxInvocation() { return rtxInvocation; } public ServerConfig getServerConfig() { return serverConfig; } public void setServerConfig(ServerConfig serverConfig) { this.serverConfig = serverConfig; } }