package com.jspxcms.core.web.back; import static com.jspxcms.core.support.Constants.MESSAGE; import static com.jspxcms.core.support.Constants.SAVE_SUCCESS; import java.io.File; import java.io.FileFilter; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.jspxcms.common.web.PathResolver; import com.jspxcms.core.domain.Site; import com.jspxcms.core.domain.SiteWatermark; import com.jspxcms.core.service.SiteService; import com.jspxcms.core.support.Context; /** * ConfSiteController * * @author liufang * */ @Controller @RequestMapping("/core/conf_site") public class ConfSiteController { public static final String TYPE = "type"; @RequiresPermissions("core:conf_site:base_edit") @RequestMapping("base_edit.do") public String baseEdit(HttpServletRequest request, org.springframework.ui.Model modelMap) { Site site = Context.getCurrentSite(request); String filesBasePath = site.getFilesBasePath(""); File filesBaseFile = new File(pathResolver.getPath(filesBasePath)); File[] themeFiles = filesBaseFile.listFiles(new FileFilter() { public boolean accept(File pathname) { return pathname.isDirectory(); } }); List<String> themeList = new ArrayList<String>(); for (File themeFile : themeFiles) { themeList.add(themeFile.getName()); } modelMap.addAttribute("themeList", themeList); modelMap.addAttribute(TYPE, "base"); return "core/conf_site/conf_site_base"; } @RequiresPermissions("core:conf_site:base_update") @RequestMapping("base_update.do") public String baseUpdate(@ModelAttribute("bean") Site bean, RedirectAttributes ra) { service.update(bean); ra.addFlashAttribute(MESSAGE, SAVE_SUCCESS); return "redirect:base_edit.do"; } @RequiresPermissions("core:conf_site:watermark_edit") @RequestMapping("watermark_edit.do") public String watermarkEdit(org.springframework.ui.Model modelMap) { modelMap.addAttribute(TYPE, "watermark"); return "core/conf_site/conf_site_watermark"; } @RequiresPermissions("core:conf_site:watermark_update") @RequestMapping("watermark_update.do") public String watermarkUpdate(SiteWatermark bean, HttpServletRequest request, RedirectAttributes ra) { Site site = Context.getCurrentSite(request); service.updateConf(site, bean); ra.addFlashAttribute(MESSAGE, SAVE_SUCCESS); return "redirect:watermark_edit.do"; } @ModelAttribute("bean") public Site preloadBean(HttpServletRequest request) { return Context.getCurrentSite(request); } @InitBinder protected void initBinder(WebDataBinder binder) { binder.setDisallowedFields("version"); } @Autowired private PathResolver pathResolver; @Autowired private SiteService service; }