diff --git a/src/main/java/com/casic/accessControl/user/dto/UserDto.java b/src/main/java/com/casic/accessControl/user/dto/UserDto.java index 398b2b4..2db723e 100644 --- a/src/main/java/com/casic/accessControl/user/dto/UserDto.java +++ b/src/main/java/com/casic/accessControl/user/dto/UserDto.java @@ -25,6 +25,7 @@ private Long roleId; private String roleName; private Integer roleType; + private String datascope; // 数据权限 private String btnEdit = "编辑"; private String btnDelete = "删除"; @@ -117,6 +118,14 @@ this.roleType = roleType; } + public String getDatascope() { + return datascope; + } + + public void setDatascope(String datascope) { + this.datascope = datascope; + } + public static UserDto Convert(User user) { if (user == null) { return null; @@ -139,6 +148,7 @@ userDto.setRoleName(role.getRoleName()); userDto.setRoleType(role.getType()); } + userDto.setDatascope(user.getDatascope()); return userDto; } diff --git a/src/main/java/com/casic/accessControl/user/dto/UserDto.java b/src/main/java/com/casic/accessControl/user/dto/UserDto.java index 398b2b4..2db723e 100644 --- a/src/main/java/com/casic/accessControl/user/dto/UserDto.java +++ b/src/main/java/com/casic/accessControl/user/dto/UserDto.java @@ -25,6 +25,7 @@ private Long roleId; private String roleName; private Integer roleType; + private String datascope; // 数据权限 private String btnEdit = "编辑"; private String btnDelete = "删除"; @@ -117,6 +118,14 @@ this.roleType = roleType; } + public String getDatascope() { + return datascope; + } + + public void setDatascope(String datascope) { + this.datascope = datascope; + } + public static UserDto Convert(User user) { if (user == null) { return null; @@ -139,6 +148,7 @@ userDto.setRoleName(role.getRoleName()); userDto.setRoleType(role.getType()); } + userDto.setDatascope(user.getDatascope()); return userDto; } diff --git a/src/main/java/com/casic/accessControl/user/manager/UserManager.java b/src/main/java/com/casic/accessControl/user/manager/UserManager.java index 704a5de..63bdf25 100644 --- a/src/main/java/com/casic/accessControl/user/manager/UserManager.java +++ b/src/main/java/com/casic/accessControl/user/manager/UserManager.java @@ -18,8 +18,11 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import javax.servlet.http.HttpSession; import java.net.SocketException; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -29,6 +32,11 @@ public class UserManager extends HibernateEntityDao { private Logger logger = LoggerFactory.getLogger(this.getClass()); + @Resource + private RoleManager roleManager; + @Resource + private CompanyManager companyManager; + /** * 用户登录 * @@ -87,6 +95,17 @@ if (StringUtils.isNotBlank(parameter.getsSearch())) { criteria.add(Restrictions.like("userName", "%" + parameter.getsSearch() + "%")); } + + // 数据权限 + if(com.casic.accessControl.core.util.StringUtils.isNotBlank(user.getDatascope())){ + String[] datascope = user.getDatascope().split(","); + List compnyIds = new ArrayList<>(); + Arrays.asList(datascope).forEach(obj -> compnyIds.add(Long.valueOf(obj))); + criteria.add(Restrictions.in("company",companyManager.getCompanyByIds(compnyIds))); + } else { + criteria.add(Restrictions.eq("company", user.getCompany())); + } + Page page = pagedQuery(criteria, pageNo, pageSize); List userDtos = UserDto.Converts((List) page.getResult()); result.setAaData(userDtos); @@ -132,6 +151,9 @@ user.setIsValid(1); } this.getSession().saveOrUpdate(user); + User currentUser = (User) session.getAttribute(com.casic.accessControl.util.StringUtils.SYS_USER); + currentUser = getUserById(currentUser.getId()); + session.setAttribute(com.casic.accessControl.util.StringUtils.SYS_USER, currentUser); } /** @@ -217,5 +239,34 @@ return users; } + public void updateCurrentDataScope(Long companyId, HttpSession session){ + User user = (User) session.getAttribute(com.casic.accessControl.util.StringUtils.SYS_USER); + if(user.getDatascope() != null && !user.getDatascope().contains(companyId.toString())){ + user.setDatascope((user.getDatascope().concat(",").concat(companyId.toString()))); + }else{ + user.setDatascope(companyId.toString()); + } + this.getSession().saveOrUpdate(user); + session.setAttribute(com.casic.accessControl.util.StringUtils.SYS_USER, user); + } + + public void updateAdminDataScope(Long companyId, HttpSession session){ + Criteria criteria = this.createCriteria(User.class); + Role amdinRole = roleManager.get(7L); + criteria.add(Restrictions.eq("isValid", 1)); + criteria.add(Restrictions.eq("role", amdinRole)); + List users = criteria.list(); + for (User user : users) { + if(user.getDatascope() != null && !user.getDatascope().contains(companyId.toString())){ + user.setDatascope((user.getDatascope().concat(",").concat(companyId.toString()))); + }else{ + user.setDatascope(companyId.toString()); + } + this.getSession().saveOrUpdate(user); + } + User user = (User) session.getAttribute(com.casic.accessControl.util.StringUtils.SYS_USER); + user = getUserById(user.getId()); + session.setAttribute(com.casic.accessControl.util.StringUtils.SYS_USER, user); + } } diff --git a/src/main/java/com/casic/accessControl/user/dto/UserDto.java b/src/main/java/com/casic/accessControl/user/dto/UserDto.java index 398b2b4..2db723e 100644 --- a/src/main/java/com/casic/accessControl/user/dto/UserDto.java +++ b/src/main/java/com/casic/accessControl/user/dto/UserDto.java @@ -25,6 +25,7 @@ private Long roleId; private String roleName; private Integer roleType; + private String datascope; // 数据权限 private String btnEdit = "编辑"; private String btnDelete = "删除"; @@ -117,6 +118,14 @@ this.roleType = roleType; } + public String getDatascope() { + return datascope; + } + + public void setDatascope(String datascope) { + this.datascope = datascope; + } + public static UserDto Convert(User user) { if (user == null) { return null; @@ -139,6 +148,7 @@ userDto.setRoleName(role.getRoleName()); userDto.setRoleType(role.getType()); } + userDto.setDatascope(user.getDatascope()); return userDto; } diff --git a/src/main/java/com/casic/accessControl/user/manager/UserManager.java b/src/main/java/com/casic/accessControl/user/manager/UserManager.java index 704a5de..63bdf25 100644 --- a/src/main/java/com/casic/accessControl/user/manager/UserManager.java +++ b/src/main/java/com/casic/accessControl/user/manager/UserManager.java @@ -18,8 +18,11 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import javax.servlet.http.HttpSession; import java.net.SocketException; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -29,6 +32,11 @@ public class UserManager extends HibernateEntityDao { private Logger logger = LoggerFactory.getLogger(this.getClass()); + @Resource + private RoleManager roleManager; + @Resource + private CompanyManager companyManager; + /** * 用户登录 * @@ -87,6 +95,17 @@ if (StringUtils.isNotBlank(parameter.getsSearch())) { criteria.add(Restrictions.like("userName", "%" + parameter.getsSearch() + "%")); } + + // 数据权限 + if(com.casic.accessControl.core.util.StringUtils.isNotBlank(user.getDatascope())){ + String[] datascope = user.getDatascope().split(","); + List compnyIds = new ArrayList<>(); + Arrays.asList(datascope).forEach(obj -> compnyIds.add(Long.valueOf(obj))); + criteria.add(Restrictions.in("company",companyManager.getCompanyByIds(compnyIds))); + } else { + criteria.add(Restrictions.eq("company", user.getCompany())); + } + Page page = pagedQuery(criteria, pageNo, pageSize); List userDtos = UserDto.Converts((List) page.getResult()); result.setAaData(userDtos); @@ -132,6 +151,9 @@ user.setIsValid(1); } this.getSession().saveOrUpdate(user); + User currentUser = (User) session.getAttribute(com.casic.accessControl.util.StringUtils.SYS_USER); + currentUser = getUserById(currentUser.getId()); + session.setAttribute(com.casic.accessControl.util.StringUtils.SYS_USER, currentUser); } /** @@ -217,5 +239,34 @@ return users; } + public void updateCurrentDataScope(Long companyId, HttpSession session){ + User user = (User) session.getAttribute(com.casic.accessControl.util.StringUtils.SYS_USER); + if(user.getDatascope() != null && !user.getDatascope().contains(companyId.toString())){ + user.setDatascope((user.getDatascope().concat(",").concat(companyId.toString()))); + }else{ + user.setDatascope(companyId.toString()); + } + this.getSession().saveOrUpdate(user); + session.setAttribute(com.casic.accessControl.util.StringUtils.SYS_USER, user); + } + + public void updateAdminDataScope(Long companyId, HttpSession session){ + Criteria criteria = this.createCriteria(User.class); + Role amdinRole = roleManager.get(7L); + criteria.add(Restrictions.eq("isValid", 1)); + criteria.add(Restrictions.eq("role", amdinRole)); + List users = criteria.list(); + for (User user : users) { + if(user.getDatascope() != null && !user.getDatascope().contains(companyId.toString())){ + user.setDatascope((user.getDatascope().concat(",").concat(companyId.toString()))); + }else{ + user.setDatascope(companyId.toString()); + } + this.getSession().saveOrUpdate(user); + } + User user = (User) session.getAttribute(com.casic.accessControl.util.StringUtils.SYS_USER); + user = getUserById(user.getId()); + session.setAttribute(com.casic.accessControl.util.StringUtils.SYS_USER, user); + } } diff --git a/src/main/java/com/casic/accessControl/user/web/UserController.java b/src/main/java/com/casic/accessControl/user/web/UserController.java index 3534a97..0bf06c1 100644 --- a/src/main/java/com/casic/accessControl/user/web/UserController.java +++ b/src/main/java/com/casic/accessControl/user/web/UserController.java @@ -87,7 +87,7 @@ } @RequestMapping("user-info-edit") - public String edit(@RequestParam(value = "id", required = false) Long id, Model model) { + public String edit(@RequestParam(value = "id", required = false) Long id, Model model,HttpSession session) { UserDto userDto = new UserDto(); if (id != null) { @@ -95,11 +95,11 @@ } List roles = roleManager.getRoles(); List roleDtos = RoleDto.Converts(roles); - List companies = companyManager.getCompanies(); + List companies = companyManager.getCompanies(session); List companyDtos = CompanyDto.Converts(companies); model.addAttribute("model", userDto); model.addAttribute("roles",roleDtos); - model.addAttribute("companies",companyDtos); + model.addAttribute("companies",new Gson().toJson(companyDtos)); return "user/user-info-edit"; } @@ -127,6 +127,7 @@ user.setPhoneNumber(userDto.getPhoneNumber()); user.setCompany(company); user.setRole(role); + user.setDatascope(userDto.getDatascope()); user.setIsValid(1); userManager.saveUser(user, session); if (userDto.getId() == null ) {//新增用户 diff --git a/src/main/java/com/casic/accessControl/user/dto/UserDto.java b/src/main/java/com/casic/accessControl/user/dto/UserDto.java index 398b2b4..2db723e 100644 --- a/src/main/java/com/casic/accessControl/user/dto/UserDto.java +++ b/src/main/java/com/casic/accessControl/user/dto/UserDto.java @@ -25,6 +25,7 @@ private Long roleId; private String roleName; private Integer roleType; + private String datascope; // 数据权限 private String btnEdit = "编辑"; private String btnDelete = "删除"; @@ -117,6 +118,14 @@ this.roleType = roleType; } + public String getDatascope() { + return datascope; + } + + public void setDatascope(String datascope) { + this.datascope = datascope; + } + public static UserDto Convert(User user) { if (user == null) { return null; @@ -139,6 +148,7 @@ userDto.setRoleName(role.getRoleName()); userDto.setRoleType(role.getType()); } + userDto.setDatascope(user.getDatascope()); return userDto; } diff --git a/src/main/java/com/casic/accessControl/user/manager/UserManager.java b/src/main/java/com/casic/accessControl/user/manager/UserManager.java index 704a5de..63bdf25 100644 --- a/src/main/java/com/casic/accessControl/user/manager/UserManager.java +++ b/src/main/java/com/casic/accessControl/user/manager/UserManager.java @@ -18,8 +18,11 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import javax.servlet.http.HttpSession; import java.net.SocketException; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -29,6 +32,11 @@ public class UserManager extends HibernateEntityDao { private Logger logger = LoggerFactory.getLogger(this.getClass()); + @Resource + private RoleManager roleManager; + @Resource + private CompanyManager companyManager; + /** * 用户登录 * @@ -87,6 +95,17 @@ if (StringUtils.isNotBlank(parameter.getsSearch())) { criteria.add(Restrictions.like("userName", "%" + parameter.getsSearch() + "%")); } + + // 数据权限 + if(com.casic.accessControl.core.util.StringUtils.isNotBlank(user.getDatascope())){ + String[] datascope = user.getDatascope().split(","); + List compnyIds = new ArrayList<>(); + Arrays.asList(datascope).forEach(obj -> compnyIds.add(Long.valueOf(obj))); + criteria.add(Restrictions.in("company",companyManager.getCompanyByIds(compnyIds))); + } else { + criteria.add(Restrictions.eq("company", user.getCompany())); + } + Page page = pagedQuery(criteria, pageNo, pageSize); List userDtos = UserDto.Converts((List) page.getResult()); result.setAaData(userDtos); @@ -132,6 +151,9 @@ user.setIsValid(1); } this.getSession().saveOrUpdate(user); + User currentUser = (User) session.getAttribute(com.casic.accessControl.util.StringUtils.SYS_USER); + currentUser = getUserById(currentUser.getId()); + session.setAttribute(com.casic.accessControl.util.StringUtils.SYS_USER, currentUser); } /** @@ -217,5 +239,34 @@ return users; } + public void updateCurrentDataScope(Long companyId, HttpSession session){ + User user = (User) session.getAttribute(com.casic.accessControl.util.StringUtils.SYS_USER); + if(user.getDatascope() != null && !user.getDatascope().contains(companyId.toString())){ + user.setDatascope((user.getDatascope().concat(",").concat(companyId.toString()))); + }else{ + user.setDatascope(companyId.toString()); + } + this.getSession().saveOrUpdate(user); + session.setAttribute(com.casic.accessControl.util.StringUtils.SYS_USER, user); + } + + public void updateAdminDataScope(Long companyId, HttpSession session){ + Criteria criteria = this.createCriteria(User.class); + Role amdinRole = roleManager.get(7L); + criteria.add(Restrictions.eq("isValid", 1)); + criteria.add(Restrictions.eq("role", amdinRole)); + List users = criteria.list(); + for (User user : users) { + if(user.getDatascope() != null && !user.getDatascope().contains(companyId.toString())){ + user.setDatascope((user.getDatascope().concat(",").concat(companyId.toString()))); + }else{ + user.setDatascope(companyId.toString()); + } + this.getSession().saveOrUpdate(user); + } + User user = (User) session.getAttribute(com.casic.accessControl.util.StringUtils.SYS_USER); + user = getUserById(user.getId()); + session.setAttribute(com.casic.accessControl.util.StringUtils.SYS_USER, user); + } } diff --git a/src/main/java/com/casic/accessControl/user/web/UserController.java b/src/main/java/com/casic/accessControl/user/web/UserController.java index 3534a97..0bf06c1 100644 --- a/src/main/java/com/casic/accessControl/user/web/UserController.java +++ b/src/main/java/com/casic/accessControl/user/web/UserController.java @@ -87,7 +87,7 @@ } @RequestMapping("user-info-edit") - public String edit(@RequestParam(value = "id", required = false) Long id, Model model) { + public String edit(@RequestParam(value = "id", required = false) Long id, Model model,HttpSession session) { UserDto userDto = new UserDto(); if (id != null) { @@ -95,11 +95,11 @@ } List roles = roleManager.getRoles(); List roleDtos = RoleDto.Converts(roles); - List companies = companyManager.getCompanies(); + List companies = companyManager.getCompanies(session); List companyDtos = CompanyDto.Converts(companies); model.addAttribute("model", userDto); model.addAttribute("roles",roleDtos); - model.addAttribute("companies",companyDtos); + model.addAttribute("companies",new Gson().toJson(companyDtos)); return "user/user-info-edit"; } @@ -127,6 +127,7 @@ user.setPhoneNumber(userDto.getPhoneNumber()); user.setCompany(company); user.setRole(role); + user.setDatascope(userDto.getDatascope()); user.setIsValid(1); userManager.saveUser(user, session); if (userDto.getId() == null ) {//新增用户 diff --git a/src/main/webapp/content/user/user-info-edit.jsp b/src/main/webapp/content/user/user-info-edit.jsp index ab95a4d..5ee2d9e 100644 --- a/src/main/webapp/content/user/user-info-edit.jsp +++ b/src/main/webapp/content/user/user-info-edit.jsp @@ -46,7 +46,16 @@ + + + + + +<%----%> + <%----%> + <%----%> + @@ -175,23 +184,15 @@ <%--<%––%>--%> <%----%> <%----%> - +
- - - - - - - -
@@ -218,6 +219,17 @@
+ + + +
+ + +
+ +
+
+
@@ -228,6 +240,8 @@
+ + <%--隐藏字段--%> --%> <%--
--%> - +
- - - - - - - -
@@ -218,6 +219,17 @@
+ + + +
+ + +
+ +
+
+
@@ -228,6 +240,8 @@
+ + <%--隐藏字段--%>