Skip to content

Commit

Permalink
增加演示模式,演示模式下,不能修改:机构、区域、用户、菜单、角色、字典、站点、栏目
Browse files Browse the repository at this point in the history
  • Loading branch information
think-gem committed Aug 15, 2013
1 parent 66a5a99 commit 5a8efc3
Show file tree
Hide file tree
Showing 10 changed files with 125 additions and 4 deletions.
37 changes: 33 additions & 4 deletions src/main/java/com/thinkgem/jeesite/common/config/Global.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
*/
package com.thinkgem.jeesite.common.config;

import java.util.Map;

import com.google.common.collect.Maps;
import com.thinkgem.jeesite.common.utils.PropertiesLoader;

/**
Expand All @@ -14,31 +17,57 @@
*/
public class Global {

/**
* 保存全局属性值
*/
private static Map<String, String> map = Maps.newHashMap();

/**
* 属性文件加载对象
*/
private static PropertiesLoader propertiesLoader;
private static PropertiesLoader propertiesLoader = new PropertiesLoader("application.properties");

/**
* 获取配置
*/
public static String getConfig(String key) {
if (propertiesLoader == null){
propertiesLoader = new PropertiesLoader("application.properties");
String value = map.get(key);
if (value == null){
value = propertiesLoader.getProperty(key);
map.put(key, value);
}
return propertiesLoader.getProperty(key);
return value;
}

/////////////////////////////////////////////////////////

/**
* 获取管理端根路径
*/
public static String getAdminPath() {
return getConfig("adminPath");
}

/**
* 获取前端根路径
*/
public static String getFrontPath() {
return getConfig("frontPath");
}

/**
* 获取URL后缀
*/
public static String getUrlSuffix() {
return getConfig("urlSuffix");
}

/**
* 是否是演示模式,演示模式下不能修改用户、角色、密码、菜单、授权
*/
public static Boolean isDemoMode() {
String dm = getConfig("demoMode");
return "true".equals(dm) || "1".equals(dm);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@ public String form(Category category, Model model) {
@RequiresPermissions("cms:category:edit")
@RequestMapping(value = "save")
public String save(Category category, Model model, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/cms/category/";
}
if (!beanValidator(model, category)){
return form(category, model);
}
Expand All @@ -88,6 +92,10 @@ public String save(Category category, Model model, RedirectAttributes redirectAt
@RequiresPermissions("cms:category:edit")
@RequestMapping(value = "delete")
public String delete(Long id, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/cms/category/";
}
if (Category.isRoot(id)){
addMessage(redirectAttributes, "删除栏目失败, 不允许删除顶级栏目或编号为空");
}else{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ public String form(Site site, Model model) {
@RequiresPermissions("cms:site:edit")
@RequestMapping(value = "save")
public String save(Site site, Model model, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/cms/site/?repage";
}
if (!beanValidator(model, site)){
return form(site, model);
}
Expand All @@ -75,6 +79,10 @@ public String save(Site site, Model model, RedirectAttributes redirectAttributes
@RequiresPermissions("cms:site:edit")
@RequestMapping(value = "delete")
public String delete(Long id, @RequestParam(required=false) Boolean isRe, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/cms/site/?repage";
}
if (Site.isDefault(id)){
addMessage(redirectAttributes, "删除站点失败, 不允许删除默认站点");
}else{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ public String form(Area area, Model model) {
@RequiresPermissions("sys:area:edit")
@RequestMapping(value = "save")
public String save(Area area, Model model, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/area";
}
if (!beanValidator(model, area)){
return form(area, model);
}
Expand All @@ -92,6 +96,10 @@ public String save(Area area, Model model, RedirectAttributes redirectAttributes
@RequiresPermissions("sys:area:edit")
@RequestMapping(value = "delete")
public String delete(Long id, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/area";
}
if (Area.isAdmin(id)){
addMessage(redirectAttributes, "删除区域失败, 不允许删除顶级区域或编号为空");
}else{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ public String form(Dict dict, Model model) {
@RequiresPermissions("sys:dict:edit")
@RequestMapping(value = "save")//@Valid
public String save(Dict dict, Model model, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/dict/?repage&type="+dict.getType();
}
if (!beanValidator(model, dict)){
return form(dict, model);
}
Expand All @@ -77,6 +81,10 @@ public String save(Dict dict, Model model, RedirectAttributes redirectAttributes
@RequiresPermissions("sys:dict:edit")
@RequestMapping(value = "delete")
public String delete(Long id, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/dict/?repage";
}
dictService.delete(id);
addMessage(redirectAttributes, "删除字典成功");
return "redirect:"+Global.getAdminPath()+"/sys/dict/?repage";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ public String form(Menu menu, Model model) {
@RequiresPermissions("sys:menu:edit")
@RequestMapping(value = "save")
public String save(Menu menu, Model model, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/menu/";
}
if (!beanValidator(model, menu)){
return form(menu, model);
}
Expand All @@ -84,6 +88,10 @@ public String save(Menu menu, Model model, RedirectAttributes redirectAttributes
@RequiresPermissions("sys:menu:edit")
@RequestMapping(value = "delete")
public String delete(Long id, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/menu/";
}
if (Menu.isRoot(id)){
addMessage(redirectAttributes, "删除菜单失败, 不允许删除顶级菜单或编号为空");
}else{
Expand All @@ -105,6 +113,10 @@ public String tree() {
@RequiresPermissions("sys:menu:edit")
@RequestMapping(value = "updateSort")
public String updateSort(Long[] ids, Integer[] sorts, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/menu/";
}
int len = ids.length;
Menu[] menus = new Menu[len];
for (int i = 0; i < len; i++) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ public String form(Office office, Model model) {
@RequiresPermissions("sys:office:edit")
@RequestMapping(value = "save")
public String save(Office office, Model model, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/office/";
}
if (!beanValidator(model, office)){
return form(office, model);
}
Expand All @@ -97,6 +101,10 @@ public String save(Office office, Model model, RedirectAttributes redirectAttrib
@RequiresPermissions("sys:office:edit")
@RequestMapping(value = "delete")
public String delete(Long id, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/office/";
}
if (Office.isRoot(id)){
addMessage(redirectAttributes, "删除机构失败, 不允许删除顶级机构或编号空");
}else{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,10 @@ public String form(Role role, Model model) {
@RequiresPermissions("sys:role:edit")
@RequestMapping(value = "save")
public String save(Role role, Model model, String oldName, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/role/?repage";
}
if (!beanValidator(model, role)){
return form(role, model);
}
Expand All @@ -98,6 +102,10 @@ public String save(Role role, Model model, String oldName, RedirectAttributes re
@RequiresPermissions("sys:role:edit")
@RequestMapping(value = "delete")
public String delete(@RequestParam Long id, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/role/?repage";
}
if (Role.isAdmin(id)){
addMessage(redirectAttributes, "删除角色失败, 不允许内置角色或编号空");
// }else if (UserUtils.getUser().getRoleIdList().contains(id)){
Expand Down Expand Up @@ -147,6 +155,10 @@ public List<Map<String, Object>> users(Long officeId, HttpServletResponse respon
@RequiresPermissions("sys:role:edit")
@RequestMapping(value = "outrole")
public String outrole(Long userId, Long roleId, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/role/assign?id="+roleId;
}
Role role = systemService.getRole(roleId);
User user = systemService.getUser(userId);
if (user.equals(UserUtils.getUser())) {
Expand All @@ -165,6 +177,10 @@ public String outrole(Long userId, Long roleId, RedirectAttributes redirectAttri
@RequiresPermissions("sys:role:edit")
@RequestMapping(value = "assignrole")
public String assignRole(Role role, Long[] idsArr, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/role/assign?id="+role.getId();
}
StringBuilder msg = new StringBuilder();
int newNum = 0;
for (int i = 0; i < idsArr.length; i++) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@ public String form(User user, Model model) {
@RequiresPermissions("sys:user:edit")
@RequestMapping(value = "save")
public String save(User user, String oldLoginName, String newPassword, HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/user/?repage";
}
// 修正引用赋值问题,不知道为何,Company和Office引用的一个实例地址,修改了一个,另外一个跟着修改。
user.setCompany(new Office(StringUtils.toLong(request.getParameter("company.id"))));
user.setOffice(new Office(StringUtils.toLong(request.getParameter("office.id"))));
Expand Down Expand Up @@ -121,6 +125,10 @@ public String save(User user, String oldLoginName, String newPassword, HttpServl
@RequiresPermissions("sys:user:edit")
@RequestMapping(value = "delete")
public String delete(Long id, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/user/?repage";
}
if (UserUtils.getUser().getId().equals(id)){
addMessage(redirectAttributes, "删除用户失败, 不允许删除当前用户");
}else if (User.isAdmin(id)){
Expand Down Expand Up @@ -149,6 +157,10 @@ public String exportFile(User user, HttpServletRequest request, HttpServletRespo
@RequiresPermissions("sys:user:edit")
@RequestMapping(value = "import", method=RequestMethod.POST)
public String importFile(MultipartFile file, RedirectAttributes redirectAttributes) {
if(Global.isDemoMode()){
addMessage(redirectAttributes, "演示模式,不允许操作!");
return "redirect:"+Global.getAdminPath()+"/sys/user/?repage";
}
try {
int successNum = 0;
int failureNum = 0;
Expand Down Expand Up @@ -218,6 +230,10 @@ public String checkLoginName(String oldLoginName, String loginName) {
public String info(User user, Model model) {
User currentUser = UserUtils.getUser();
if (StringUtils.isNotBlank(user.getName())){
if(Global.isDemoMode()){
model.addAttribute("message", "演示模式,不允许操作!");
return "modules/sys/userInfo";
}
currentUser = UserUtils.getUser(true);
currentUser.setEmail(user.getEmail());
currentUser.setPhone(user.getPhone());
Expand All @@ -235,6 +251,10 @@ public String info(User user, Model model) {
public String modifyPwd(String oldPassword, String newPassword, Model model) {
User user = UserUtils.getUser();
if (StringUtils.isNotBlank(oldPassword) && StringUtils.isNotBlank(newPassword)){
if(Global.isDemoMode()){
model.addAttribute("message", "演示模式,不允许操作!");
return "modules/sys/userModifyPwd";
}
if (SystemService.validatePassword(oldPassword, user.getPassword())){
systemService.updatePasswordById(user.getId(), user.getLoginName(), newPassword);
model.addAttribute("message", "修改密码成功");
Expand Down
4 changes: 4 additions & 0 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@ productName=JeeSite Admin
copyrightYear=2013
version=V1.0.4

#demo mode: Can't operate save, sys: area/office/user/role/menu/dict, cms: site/category
demoMode=false

#admin path
adminPath=/a

Expand All @@ -69,3 +72,4 @@ urlSuffix=.html

#page settings
page.pageSize=10

0 comments on commit 5a8efc3

Please sign in to comment.