From: qiaowei Date: Mon, 29 Apr 2019 09:58:40 +0000 (+0800) Subject: 权限管理 X-Git-Tag: 1.0.0^2~244 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=9f750639915b79e4e9317e0c3d09dab89693f0b5;p=epayment%2Ffood_payapi.git 权限管理 --- diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/FunctionDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/FunctionDao.java index e881f2ce..619a5302 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/dao/FunctionDao.java +++ b/src/main/java/com/supwisdom/dlpay/framework/dao/FunctionDao.java @@ -1,6 +1,8 @@ package com.supwisdom.dlpay.framework.dao; import com.supwisdom.dlpay.framework.domain.TFunction; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; @@ -11,4 +13,6 @@ import java.util.List; public interface FunctionDao extends JpaRepository { @Query("select distinct t from TFunction t,TRoleFunction a, TOperRole b where t.id=a.functionId and a.roleId=b.roleId and b.operid=?1 order by t.orderNum ") List getTFunctionsByOperid(String operid); + + Page findAllByNameContaining(String name,Pageable pageable); } diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/ResourceDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/ResourceDao.java index b1a04a7c..22f5c1c6 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/dao/ResourceDao.java +++ b/src/main/java/com/supwisdom/dlpay/framework/dao/ResourceDao.java @@ -6,4 +6,5 @@ import org.springframework.stereotype.Repository; @Repository public interface ResourceDao extends JpaRepository { + TResource findByUri(String uri); } diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java index bd2e5d7c..af771de6 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java +++ b/src/main/java/com/supwisdom/dlpay/framework/dao/RoleDao.java @@ -11,4 +11,7 @@ import java.util.List; public interface RoleDao extends JpaRepository { @Query("from TRole order by createtime asc ") List getAllRoles(); + + TRole findByRoleCode(String rolecode); + } diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java index f6aea4eb..de693925 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java +++ b/src/main/java/com/supwisdom/dlpay/framework/dao/RoleFunctionDao.java @@ -6,4 +6,6 @@ import org.springframework.stereotype.Repository; @Repository public interface RoleFunctionDao extends JpaRepository { + + TRoleFunction findByRoleIdAndFunctionId(String roleId,String functionId); } diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java index 91f43070..a621460f 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java +++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java @@ -19,6 +19,9 @@ public class TRoleFunction { @Column(name="FUNCTIONID", nullable = false, length = 32) private String functionId; + @Column(name="PERMISSIONS", length = 200) + private String permissions; + public String getId() { return id; } @@ -42,4 +45,12 @@ public class TRoleFunction { public void setFunctionId(String functionId) { this.functionId = functionId; } + + public String getPermissions() { + return permissions; + } + + public void setPermissions(String permissions) { + this.permissions = permissions; + } } diff --git a/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java b/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java new file mode 100644 index 00000000..dfa30c68 --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/framework/security/MyPermissionEvaluator.java @@ -0,0 +1,52 @@ +package com.supwisdom.dlpay.framework.security; + +import com.supwisdom.dlpay.framework.domain.TResource; +import com.supwisdom.dlpay.framework.domain.TRole; +import com.supwisdom.dlpay.framework.domain.TRoleFunction; +import com.supwisdom.dlpay.framework.util.StringUtil; +import com.supwisdom.dlpay.system.service.RoleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.PermissionEvaluator; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.stereotype.Component; + +import java.io.Serializable; +import java.util.Collection; + +@Component +public class MyPermissionEvaluator implements PermissionEvaluator { + @Autowired + private RoleService roleService; + + @Override + public boolean hasPermission(Authentication authentication, Object targetUri, Object permission) { + if (targetUri != null && permission != null) { + UserDetails userDetails = (UserDetails) authentication.getPrincipal(); + if (userDetails != null) { + Collection authorities = (Collection) userDetails.getAuthorities(); + for (GrantedAuthority authority : authorities) { + String roleName = authority.getAuthority(); + TRole role = roleService.findRoleByRolecode(roleName); + if (role != null) { + TResource resource = roleService.findResourceByURI(String.valueOf(targetUri)); + if (resource != null) { + TRoleFunction roleFunction = roleService.findRoleFunctionByRoleIdAndFunctionId(role.getRoleId(), resource.getFunctionId()); + if (roleFunction != null && !StringUtil.isEmpty(roleFunction.getPermissions()) + && roleFunction.getPermissions().contains(String.valueOf(permission))) { + return true; + } + } + } + } + } + } + return false; + } + + @Override + public boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission) { + return false; + } +} diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/PermissionConstants.java b/src/main/java/com/supwisdom/dlpay/framework/util/PermissionConstants.java new file mode 100644 index 00000000..6ffa1067 --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/framework/util/PermissionConstants.java @@ -0,0 +1,26 @@ +package com.supwisdom.dlpay.framework.util; + +/** + * 增加权限常量维护表 + * 增、删、改、查、更新密码、更新状态、打印、导出、导入 + */ +public class PermissionConstants { + + public static final String PERMISSION_QUERY = "query"; + + public static final String PERMISSION_ADD = "add"; + + public static final String PERMISSION_DELETE = "delete"; + + public static final String PERMISSION_UPDATE = "update"; + + public static final String PERMISSION_UPDATE_PWD = "upassword"; + + public static final String PERMISSION_UPDATE_STATUS = "ustatus"; + + public static final String PERMISSION_PRINT = "print"; + + public static final String PERMISSION_IMPORT = "import"; + + public static final String PERMISSION_EXPORT = "export"; +} diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/FunctionSearchBean.java b/src/main/java/com/supwisdom/dlpay/system/bean/FunctionSearchBean.java new file mode 100644 index 00000000..67df35bb --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/system/bean/FunctionSearchBean.java @@ -0,0 +1,13 @@ +package com.supwisdom.dlpay.system.bean; + +public class FunctionSearchBean extends PageBean{ + private String functioname; + + public String getFunctioname() { + return functioname; + } + + public void setFunctioname(String functioname) { + this.functioname = functioname; + } +} diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/PageBean.java b/src/main/java/com/supwisdom/dlpay/system/bean/PageBean.java new file mode 100644 index 00000000..e615a3a0 --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/system/bean/PageBean.java @@ -0,0 +1,22 @@ +package com.supwisdom.dlpay.system.bean; + +public class PageBean { + private int pageNo; + private int pageSize; + + public int getPageNo() { + return pageNo; + } + + public void setPageNo(int pageNo) { + this.pageNo = pageNo; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } +} diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java b/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java new file mode 100644 index 00000000..16c598a7 --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/system/controller/FunctionController.java @@ -0,0 +1,48 @@ +package com.supwisdom.dlpay.system.controller; + + +import com.supwisdom.dlpay.framework.domain.TFunction; +import com.supwisdom.dlpay.framework.domain.TOperator; +import com.supwisdom.dlpay.framework.util.PageResult; +import com.supwisdom.dlpay.framework.util.StringUtil; +import com.supwisdom.dlpay.framework.util.WebConstant; +import com.supwisdom.dlpay.system.bean.FunctionSearchBean; +import com.supwisdom.dlpay.system.bean.OperatorSearchBean; +import com.supwisdom.dlpay.system.service.FunctionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class FunctionController { + + @Autowired + private FunctionService functionService; + + @GetMapping("/function/index") + public String indexView() { + return "system/function/index"; + } + + @GetMapping("/function/list") + @ResponseBody + public PageResult getDataList(@RequestParam("page") Integer pageNo, + @RequestParam("limit") Integer pageSize, + @RequestParam(value = "searchkey", required = false) String searchKey) { + try { + if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT; + if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT; + FunctionSearchBean searchBean = new FunctionSearchBean(); + searchBean.setPageNo(pageNo); + searchBean.setFunctioname(searchKey); + searchBean.setPageSize(pageSize); + return functionService.getFunctionsByKey(searchBean); + } catch (Exception e) { + e.printStackTrace(); + return new PageResult<>(99, "系统查询错误"); + } + } +} diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java b/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java index 58b7bf69..25e6ec57 100644 --- a/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java +++ b/src/main/java/com/supwisdom/dlpay/system/controller/OperatorController.java @@ -9,6 +9,7 @@ import com.supwisdom.dlpay.system.bean.OperatorSearchBean; import com.supwisdom.dlpay.system.service.OperatorService; import com.supwisdom.dlpay.system.service.RoleService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; @@ -23,6 +24,7 @@ public class OperatorController { private RoleService roleService; @GetMapping("/index") + @PreAuthorize("hasPermission('/operator/index','query')") public String indexView(Model model) { return "system/operator/index"; } @@ -55,6 +57,7 @@ public class OperatorController { } @GetMapping("/load4add") + @PreAuthorize("hasPermission('/operator/load4add','query')") public String load4addOperator(Model model) { model.addAttribute("roles", roleService.findAllRoles()); return "system/operator/operator"; diff --git a/src/main/java/com/supwisdom/dlpay/system/service/FunctionService.java b/src/main/java/com/supwisdom/dlpay/system/service/FunctionService.java index b2e464f1..55cc2aa3 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/FunctionService.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/FunctionService.java @@ -1,6 +1,8 @@ package com.supwisdom.dlpay.system.service; import com.supwisdom.dlpay.framework.domain.TFunction; +import com.supwisdom.dlpay.framework.util.PageResult; +import com.supwisdom.dlpay.system.bean.FunctionSearchBean; import java.util.List; import java.util.Map; @@ -9,4 +11,6 @@ public interface FunctionService { List getFunctionsByOperid(String operid); List> getMenuTree(List funcList, String parentId); + + PageResult getFunctionsByKey(FunctionSearchBean param); } diff --git a/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java b/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java index c9ca96e0..e4b8082e 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/RoleService.java @@ -1,9 +1,17 @@ package com.supwisdom.dlpay.system.service; +import com.supwisdom.dlpay.framework.domain.TResource; import com.supwisdom.dlpay.framework.domain.TRole; +import com.supwisdom.dlpay.framework.domain.TRoleFunction; import java.util.List; public interface RoleService { - List findAllRoles(); + List findAllRoles(); + + TRole findRoleByRolecode(String rolecode); + + TResource findResourceByURI(String uri); + + TRoleFunction findRoleFunctionByRoleIdAndFunctionId(String roleid, String functionid); } diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/FunctionServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/FunctionServiceImpl.java index 30e7a779..41b14600 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/impl/FunctionServiceImpl.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/FunctionServiceImpl.java @@ -2,9 +2,14 @@ package com.supwisdom.dlpay.system.service.impl; import com.supwisdom.dlpay.framework.dao.FunctionDao; import com.supwisdom.dlpay.framework.domain.TFunction; +import com.supwisdom.dlpay.framework.util.PageResult; import com.supwisdom.dlpay.framework.util.StringUtil; +import com.supwisdom.dlpay.system.bean.FunctionSearchBean; import com.supwisdom.dlpay.system.service.FunctionService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -14,33 +19,43 @@ import java.util.Map; @Service public class FunctionServiceImpl implements FunctionService { - @Autowired - private FunctionDao functionDao; + @Autowired + private FunctionDao functionDao; - @Override - public List getFunctionsByOperid(String operid) { - List list = functionDao.getTFunctionsByOperid(StringUtil.isEmpty(operid) ? "" : operid.trim()); - if (!StringUtil.isEmpty(list)) return list; - return new ArrayList(0); - } + @Override + public List getFunctionsByOperid(String operid) { + List list = functionDao.getTFunctionsByOperid(StringUtil.isEmpty(operid) ? "" : operid.trim()); + if (!StringUtil.isEmpty(list)) return list; + return new ArrayList(0); + } + + @Override + public List> getMenuTree(List funcList, String parentId) { + List> list = new ArrayList<>(0); + for (TFunction func : funcList) { + if (parentId.equals(func.getParentId())) { + Map map = new HashMap<>(0); + map.put("menuName", func.getName()); + map.put("menuIcon", func.getMenuIcon()); + if ("#".equals(func.getMenuUrl())) { + map.put("menuUrl", "javascript:;"); + } else { + map.put("menuUrl", func.getMenuUrl()); + } + map.put("subMenus", getMenuTree(funcList, func.getId())); + list.add(map); + } + } + return list; + } - @Override - public List> getMenuTree(List funcList, String parentId) { - List> list = new ArrayList<>(0); - for (TFunction func : funcList) { - if (parentId.equals(func.getParentId())) { - Map map = new HashMap<>(0); - map.put("menuName", func.getName()); - map.put("menuIcon", func.getMenuIcon()); - if ("#".equals(func.getMenuUrl())) { - map.put("menuUrl", "javascript:;"); - } else { - map.put("menuUrl", func.getMenuUrl()); + @Override + public PageResult getFunctionsByKey(FunctionSearchBean param) { + Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize() + , Sort.by("id")); + if (!StringUtil.isEmpty(param.getFunctioname())) { + return new PageResult<>(functionDao.findAllByNameContaining(param.getFunctioname(), pageable)); } - map.put("subMenus", getMenuTree(funcList, func.getId())); - list.add(map); - } + return new PageResult<>(functionDao.findAll(pageable)); } - return list; - } } diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java index 08fed966..f78b052a 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/RoleServiceImpl.java @@ -1,7 +1,11 @@ package com.supwisdom.dlpay.system.service.impl; +import com.supwisdom.dlpay.framework.dao.ResourceDao; import com.supwisdom.dlpay.framework.dao.RoleDao; +import com.supwisdom.dlpay.framework.dao.RoleFunctionDao; +import com.supwisdom.dlpay.framework.domain.TResource; import com.supwisdom.dlpay.framework.domain.TRole; +import com.supwisdom.dlpay.framework.domain.TRoleFunction; import com.supwisdom.dlpay.framework.util.StringUtil; import com.supwisdom.dlpay.system.service.RoleService; import org.springframework.beans.factory.annotation.Autowired; @@ -15,10 +19,31 @@ public class RoleServiceImpl implements RoleService { @Autowired private RoleDao roleDao; + @Autowired + private ResourceDao resourceDao; + + @Autowired + private RoleFunctionDao roleFunctionDao; + @Override public List findAllRoles() { List list = roleDao.getAllRoles(); if(!StringUtil.isEmpty(list)) return list; return new ArrayList<>(0); } + + @Override + public TRole findRoleByRolecode(String rolecode) { + return roleDao.findByRoleCode(rolecode); + } + + @Override + public TResource findResourceByURI(String uri) { + return resourceDao.findByUri(uri); + } + + @Override + public TRoleFunction findRoleFunctionByRoleIdAndFunctionId(String roleid, String functionid) { + return roleFunctionDao.findByRoleIdAndFunctionId(roleid,functionid); + } } diff --git a/src/main/kotlin/com/supwisdom/dlpay/security.kt b/src/main/kotlin/com/supwisdom/dlpay/security.kt index 62749839..4392fa64 100644 --- a/src/main/kotlin/com/supwisdom/dlpay/security.kt +++ b/src/main/kotlin/com/supwisdom/dlpay/security.kt @@ -4,6 +4,7 @@ import com.supwisdom.dlpay.framework.core.JwtConfig import com.supwisdom.dlpay.framework.core.JwtTokenUtil import com.supwisdom.dlpay.framework.core.PasswordBCryptConfig import com.supwisdom.dlpay.framework.redisrepo.ApiJwtRepository +import com.supwisdom.dlpay.framework.security.MyPermissionEvaluator import com.supwisdom.dlpay.framework.security.ValidateCodeSecurityConfig import com.supwisdom.dlpay.framework.service.OperatorDetailService import com.supwisdom.dlpay.framework.util.TradeDict @@ -17,6 +18,7 @@ import org.springframework.http.HttpStatus import org.springframework.security.authentication.UsernamePasswordAuthenticationToken import org.springframework.security.authentication.dao.DaoAuthenticationProvider import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity import org.springframework.security.config.annotation.web.builders.HttpSecurity import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter @@ -24,6 +26,7 @@ import org.springframework.security.config.http.SessionCreationPolicy import org.springframework.security.core.authority.SimpleGrantedAuthority import org.springframework.security.core.context.SecurityContextHolder import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder +import org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler import org.springframework.security.web.authentication.AuthenticationFailureHandler import org.springframework.security.web.authentication.AuthenticationSuccessHandler import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter @@ -98,6 +101,7 @@ class ApiJwtAuthenticationFilter : OncePerRequestFilter() { } @EnableWebSecurity +@EnableGlobalMethodSecurity(prePostEnabled = true) class WebSecurityConfig { companion object { diff --git a/src/main/resources/static/custom/css/admin.css b/src/main/resources/static/custom/css/admin.css index 608c847c..29547adc 100755 --- a/src/main/resources/static/custom/css/admin.css +++ b/src/main/resources/static/custom/css/admin.css @@ -702,3 +702,100 @@ body.layui-fluid { padding: 0; overflow: hidden; } + +@-webkit-keyframes layui-rl { + from { + -webkit-transform: translate3d(100%,0,0) + } + + to { + -webkit-transform: translate3d(0,0,0) + } +} + +@keyframes layui-rl { + from { + transform: translate3d(100%,0,0) + } + + to { + transform: translate3d(0,0,0) + } +} + +.layui-anim-rl { + -webkit-animation-name: layui-rl; + animation-name: layui-rl +} + +@-webkit-keyframes layui-lr { + from { + -webkit-transform: translate3d(0 0,0); + opacity: 1 + } + + to { + -webkit-transform: translate3d(100%,0,0); + opacity: 1 + } +} + +@keyframes layui-lr { + from { + transform: translate3d(0,0,0) + } + + to { + transform: translate3d(100%,0,0) + } +} + +.layui-anim-lr,.layui-anim-rl.layer-anim-close { + -webkit-animation-name: layui-lr; + animation-name: layui-lr +} + +.layadmin-tips { + margin-top: 30px; + text-align: center +} + +.layadmin-tips .layui-icon[face] { + display: inline-block; + font-size: 300px; + color: #393D49 +} + +.layadmin-tips .layui-text { + width: 500px; + margin: 30px auto; + padding-top: 20px; + border-top: 5px solid #009688; + font-size: 16px +} + +.layadmin-tips h1 { + font-size: 100px; + line-height: 100px; + color: #009688 +} + +.layadmin-tips .layui-text .layui-anim { + display: inline-block +} + +@media screen and (max-width: 768px) { + .layadmin-panel-selection { + margin:0; + width: auto + } + + .layui-body .layui-nav .layui-nav-item { + display: block + } + + .layui-layout-admin .layui-body .layadmin-tabsbody-item { + -webkit-overflow-scrolling: touch; + overflow: auto + } +} \ No newline at end of file diff --git a/src/main/resources/static/custom/module/admin.js b/src/main/resources/static/custom/module/admin.js index 898ce057..344c44db 100755 --- a/src/main/resources/static/custom/module/admin.js +++ b/src/main/resources/static/custom/module/admin.js @@ -145,7 +145,8 @@ layui.define(['layer'], function (exports) { successCallback(result, status, xhr); }; param.error = function (xhr) { - param.success({code: xhr.status, msg: xhr.statusText}); + //{code: xhr.status, msg: xhr.statusText} + param.success(xhr.responseText,xhr.status,xhr); }; $.ajax(param); }, diff --git a/src/main/resources/templates/error/403.html b/src/main/resources/templates/error/403.html new file mode 100755 index 00000000..155f35a4 --- /dev/null +++ b/src/main/resources/templates/error/403.html @@ -0,0 +1,27 @@ + + + + + 403 无权限 + + + + + + + +
+
+ +
+

没有权限

+

+ 4 + 0 + 3 +

+
+
+
+ + \ No newline at end of file diff --git a/src/main/resources/templates/error/404.html b/src/main/resources/templates/error/404.html new file mode 100755 index 00000000..89144f55 --- /dev/null +++ b/src/main/resources/templates/error/404.html @@ -0,0 +1,28 @@ + + + + + 404 页面不存在 + + + + + + + + +
+
+ +
+

页面不存在

+

+ 4 + 0 + 4 +

+
+
+
+ + \ No newline at end of file diff --git a/src/main/resources/templates/error/500.html b/src/main/resources/templates/error/500.html new file mode 100755 index 00000000..c46acd23 --- /dev/null +++ b/src/main/resources/templates/error/500.html @@ -0,0 +1,28 @@ + + + + + 500 服务出错 + + + + + + + + +
+
+ +
+

服务器出错了

+

+ 5 + 0 + 0 +

+
+
+
+ + \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index a66007cf..7dec8c5f 100755 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -1,5 +1,5 @@ - + 首页 @@ -73,7 +73,10 @@
[[${subMenu.menuName}]]
-
[[${temp.menuName}]] +
+ + [[${temp.menuName}]] +
@@ -144,7 +147,6 @@ }); - + + diff --git a/src/main/resources/templates/system/operator/index.html b/src/main/resources/templates/system/operator/index.html index 279a2ede..1f6dad4a 100644 --- a/src/main/resources/templates/system/operator/index.html +++ b/src/main/resources/templates/system/operator/index.html @@ -17,7 +17,8 @@   -