package com.jspxcms.core.web.back; import static com.jspxcms.core.support.Constants.MESSAGE; import static com.jspxcms.core.support.Constants.OPERATION_FAILURE; import static com.jspxcms.core.support.Constants.OPERATION_SUCCESS; import java.util.Properties; 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.annotation.RequestMapping; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.jspxcms.common.security.CredentialsDigest; import com.jspxcms.core.domain.User; import com.jspxcms.core.service.UserService; import com.jspxcms.core.support.Context; /** * HomepageController * * @author liufang * */ @Controller @RequestMapping("/core/homepage") public class HomepageController { @RequiresPermissions("core:homepage:welcome") @RequestMapping("welcome.do") public String welcome(HttpServletRequest request, org.springframework.ui.Model modelMap) { User user = Context.getCurrentUser(request); modelMap.addAttribute("user", user); return "core/homepage/welcome"; } @RequiresPermissions("core:homepage:environment") @RequestMapping("environment.do") public String environment(HttpServletRequest request, org.springframework.ui.Model modelMap) { Properties props = System.getProperties(); Runtime runtime = Runtime.getRuntime(); long freeMemory = runtime.freeMemory(); long totalMemory = runtime.totalMemory(); long maxMemory = runtime.maxMemory(); long usedMemory = totalMemory - freeMemory; long useableMemory = maxMemory - totalMemory + freeMemory; int div = 1000; double freeMemoryMB = ((double) freeMemory) / div / div; double totalMemoryMB = ((double) totalMemory) / div / div; double usedMemoryMB = ((double) usedMemory) / div / div; double maxMemoryMB = ((double) maxMemory) / div / div; double useableMemoryMB = ((double) useableMemory) / div / div; modelMap.addAttribute("props", props); modelMap.addAttribute("maxMemoryMB", maxMemoryMB); modelMap.addAttribute("usedMemoryMB", usedMemoryMB); modelMap.addAttribute("useableMemoryMB", useableMemoryMB); modelMap.addAttribute("totalMemoryMB", totalMemoryMB); modelMap.addAttribute("freeMemoryMB", freeMemoryMB); return "core/homepage/environment"; } @RequiresPermissions("core:homepage:personal:edit") @RequestMapping(value = "personal_edit.do") public String personalEdit(HttpServletRequest request, org.springframework.ui.Model modelMap) { User user = Context.getCurrentUser(request); modelMap.addAttribute("user", user); return "core/homepage/personal"; } @RequiresPermissions("core:homepage:personal:update") @RequestMapping(value = "personal_update.do") public String personalUpdate(String origPassword, String rawPassword, HttpServletRequest request, RedirectAttributes ra) { User user = Context.getCurrentUser(request); if (credentialsDigest.matches(user.getPassword(), origPassword, user.getSaltBytes())) { userService.updatePassword(user.getId(), rawPassword); ra.addFlashAttribute(MESSAGE, OPERATION_SUCCESS); } else { ra.addFlashAttribute(MESSAGE, OPERATION_FAILURE); } return "redirect:personal_edit.do"; } @Autowired private CredentialsDigest credentialsDigest; @Autowired private UserService userService; }