From ced11a778b9bf4deee59445a41e3ede298d8c963 Mon Sep 17 00:00:00 2001 From: gdg <764716047@qq.com> Date: 星期四, 25 二月 2021 11:20:05 +0800 Subject: [PATCH] 人员管理的按钮权限和 可见人员权限 --- src/main/java/com/nanometer/smartlab/controller/UserMngController.java | 91 ++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 81 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java index 9ef8dc1..bb5bd60 100644 --- a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java +++ b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java @@ -10,6 +10,7 @@ import com.nanometer.smartlab.entity.enumtype.Waster; import com.nanometer.smartlab.service.BaseMetaService; import com.nanometer.smartlab.service.BaseRoleService; +import com.nanometer.smartlab.service.SysProjectService; import com.nanometer.smartlab.service.SysUserService; import com.nanometer.smartlab.util.Constants; import com.nanometer.smartlab.util.FacesUtils; @@ -51,6 +52,8 @@ private BaseMetaService baseMetaService; @Resource private BaseRoleService baseRoleService; + @Resource + private SysProjectService sysProjectService; private LazyDataModel<SysUser> dataModel; private SysUser sysUser; @@ -68,6 +71,9 @@ private List<BaseMeta> codeList; private List<BaseRole> roleList; private List<Waster> wasterSelectList; + private String project; + private String company; + private BaseRole role; public List<BaseRole> getRoleList() { return roleList; @@ -235,10 +241,20 @@ if(valuesList.get(12).equals(SeeFlag.LEADING.getText())){ sysUser.setSeeFlag(SeeFlag.LEADING); } - if(valuesList.size()==14){ - sysUser.setMemo(valuesList.get(13)); - }else { - sysUser.setMemo(""); + + + if (valuesList.size() > 13 && !valuesList.get(13).replace(" ","").isEmpty()){ + String[] projects = valuesList.get(13).split(","); + for (String project : projects) { + //不存再就直接推出 + if (!sysProjectService.isExistProject(project)) { + throw new Exception("课题组不存在,(" + i + "行)"); + } + } + //都存在就设置 + sysUser.setProject(valuesList.get(13).replace(" ","")); + }else{ + sysUser.setProject(null); } sysUser.setValidFlag(ValidFlag.VALID); @@ -397,8 +413,14 @@ return; } - // 检查ARP号 - if (this.sysUserService.isSysUserExist(this.sysUser.getArp(), null, null, this.sysUser.getId())) { + // 检查ARP号 //除自己外的arp +// if (this.sysUserService.isSysUserExist(this.sysUser.getArp(), null, null, this.sysUser.getId())) { +// FacesUtils.warn("ARP已存在。"); +// return; +// } + List<SysUser> list = sysUserService.getUserByArp(this.sysUser.getArp()); + assert list.size() < 2; + if (list.size() > 0 && !list.get(0).getId().equals(this.sysUser.getId())) { FacesUtils.warn("ARP已存在。"); return; } @@ -438,6 +460,11 @@ if(sysUser.getPassword()==null || sysUser.getPassword().equals("")){ sysUser.setPassword(this.editPasswor); }else { + String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}"; + if (!sysUser.getPassword().matches(PW_PATTERN)){ + FacesUtils.warn("密码必须8位以上,并且包含大小写字母、数字、特殊符号三种以上"); + return; + } sysUser.setPassword(MD5Utils.encode(sysUser.getPassword())); } this.sysUserService.updateSysUser(sysUser); @@ -468,6 +495,16 @@ } } + + public void initPage() { + sysUser = sysUserService.getSysUser(getUser().getId()); + role = baseRoleService.getRoleByUserId(sysUser.getId()); + } + public boolean isAccess(String info) { + String permission = role.getBtnPermission(); + return permission.contains(info); + } + public LazyDataModel<SysUser> getDataModel() { if (this.dataModel == null) { this.dataModel = new LazyDataModel<SysUser>() { @@ -475,11 +512,29 @@ public List<SysUser> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) { List<SysUser> list = null; try { - int count = sysUserService.getSysUserTotalCount(arp, name,departmentName); - this.setRowCount(count); - if (count > 0) { - list = sysUserService.getSysUserList(arp, name,departmentName, first, pageSize); + //做可见人员过滤 + String userPermission = role.getUserPermission(); + if (userPermission.contains("自己")) { + list = Collections.singletonList(sysUserService.getSysUser(UserMngController.this.sysUser.getId())); + this.setRowCount(1); + + }else if (userPermission.contains("课题组")){ + project = sysUser.getProject(); + int count = sysUserService.getUserCountInProject(arp, name,departmentName,project,company); + this.setRowCount(count); + if (count > 0) { + list = sysUserService.getUserInProject(arp, name,departmentName,project,company, first, pageSize); + } + + }else{ + int count = sysUserService.getSysUserTotalCount(arp, name,departmentName,project,company); + this.setRowCount(count); + if (count > 0) { + list = sysUserService.getSysUserList(arp, name,departmentName,project,company, first, pageSize); + } } + + } catch (Exception e) { logger.error(e); } @@ -604,4 +659,20 @@ public void setDepartmentName(String departmentName) { this.departmentName = departmentName; } + + public String getProject() { + return project; + } + + public void setProject(String project) { + this.project = project; + } + + public String getCompany() { + return company; + } + + public void setCompany(String company) { + this.company = company; + } } -- Gitblit v1.9.2