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/webapp/WEB-INF/spring-menu.xml                                |    2 
 src/main/java/com/nanometer/smartlab/controller/RoleMngController.java |   82 +++++++++++
 src/main/java/com/nanometer/smartlab/service/BaseRoleServiceImpl.java  |   31 ++++
 src/main/java/com/nanometer/smartlab/service/SysUserService.java       |    2 
 src/main/java/com/nanometer/smartlab/service/BaseRoleService.java      |    5 
 src/main/java/com/nanometer/smartlab/controller/UserMngController.java |   37 ++++
 src/main/webapp/role_mng.xhtml                                         |   61 ++++++++
 src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java   |   22 +++
 src/main/java/com/nanometer/smartlab/dao/SysUserDao.java               |    4 
 src/main/java/com/nanometer/smartlab/dao/BaseRoleDao.xml               |   34 ++++
 src/main/webapp/user_mng.xhtml                                         |   14 +
 src/main/java/com/nanometer/smartlab/dao/BaseRoleDao.java              |    2 
 src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml                |   56 +++++++
 src/main/java/com/nanometer/smartlab/entity/BaseRole.java              |   34 ++++
 14 files changed, 371 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/RoleMngController.java b/src/main/java/com/nanometer/smartlab/controller/RoleMngController.java
index 46cc2e2..1bb893a 100644
--- a/src/main/java/com/nanometer/smartlab/controller/RoleMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/RoleMngController.java
@@ -61,6 +61,34 @@
         RequestContext.getCurrentInstance().execute("PF('dialog').show()");
     }
 
+    public void btnPermissionClick() {
+        if (this.selectedList == null
+                || this.selectedList.size() == 0) {
+            FacesUtils.warn("请选择数据。");
+            return;
+        }
+        if (this.selectedList.size() > 1) {
+            FacesUtils.warn("只能选择一个数据进行修改。");
+            return;
+        }
+        this.baseRole = this.baseRoleService.getBaseRole(this.selectedList.get(0).getId());
+        RequestContext.getCurrentInstance().execute("PF('btnDialog').show()");
+    }
+
+    public void userPermissionClick() {
+        if (this.selectedList == null
+                || this.selectedList.size() == 0) {
+            FacesUtils.warn("请选择数据。");
+            return;
+        }
+        if (this.selectedList.size() > 1) {
+            FacesUtils.warn("只能选择一个数据进行修改。");
+            return;
+        }
+        this.baseRole = this.baseRoleService.getBaseRole(this.selectedList.get(0).getId());
+        RequestContext.getCurrentInstance().execute("PF('userDialog').show()");
+    }
+
     public void onSaveBtnClick() {
         try {
             // 新建
@@ -79,7 +107,8 @@
                     FacesUtils.warn("请选择角色权限。");
                     return;
                 }
-
+                baseRole.setUserPermission("自己");
+                baseRole.setBtnPermission("新增,修改,删除,导入");
                 this.baseRoleService.insertBaseRole(this.baseRole);
 
                 FacesUtils.info("新建成功。");
@@ -111,6 +140,57 @@
             FacesUtils.warn("操作失败。");
         }
     }
+    /**
+    * 人员管理按钮权限修改
+    */
+    public void onSaveBtnPermission() {
+        try {
+                if (this.baseRole == null) {
+                    FacesUtils.warn("修改对象为空。");
+                    return;
+                }
+
+
+                if (this.baseRole.getBtnPermissions() == null || this.baseRole.getBtnPermissions().size() == 0) {
+                    FacesUtils.warn("请选择功能。");
+                    return;
+                }
+
+                this.baseRoleService.updateUserMngPageBtn(this.baseRole);
+
+                FacesUtils.info("修改成功。");
+                RequestContext.getCurrentInstance().execute("PF('btnDialog').hide()");
+        } catch (Exception e) {
+            logger.error("操作失败。", e);
+            FacesUtils.warn("操作失败。");
+        }
+    }
+
+    /**
+     * 人员管理人员可见权限修改
+     */
+    public void onSaveUserPermission() {
+        try {
+            if (this.baseRole == null) {
+                FacesUtils.warn("修改对象为空。");
+                return;
+            }
+
+
+            if (this.baseRole.getUserPermission() == null) {
+                FacesUtils.warn("请选择可见范围。");
+                return;
+            }
+
+            this.baseRoleService.updateUserMngPageBtn(this.baseRole);
+
+            FacesUtils.info("修改成功。");
+            RequestContext.getCurrentInstance().execute("PF('userDialog').hide()");
+        } catch (Exception e) {
+            logger.error("操作失败。", e);
+            FacesUtils.warn("操作失败。");
+        }
+    }
 
     public void onDeleteBtnClick() {
         try {
diff --git a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
index 92407d3..bb5bd60 100644
--- a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
@@ -73,6 +73,7 @@
     private List<Waster> wasterSelectList;
     private String project;
     private String company;
+    private BaseRole role;
 
     public List<BaseRole> getRoleList() {
         return roleList;
@@ -494,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>() {
@@ -501,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,project,company);
-                        this.setRowCount(count);
-                        if (count > 0) {
-                            list = sysUserService.getSysUserList(arp, name,departmentName,project,company, 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);
                     }
diff --git a/src/main/java/com/nanometer/smartlab/dao/BaseRoleDao.java b/src/main/java/com/nanometer/smartlab/dao/BaseRoleDao.java
index 5af1ffe..460f24d 100644
--- a/src/main/java/com/nanometer/smartlab/dao/BaseRoleDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/BaseRoleDao.java
@@ -17,6 +17,8 @@
 
     public void insertBaseRole(BaseRole baseRole) throws DataAccessException;
     public int updateBaseRole(BaseRole baseRole) throws DataAccessException;
+    public int updateBaseRoleInfo(BaseRole baseRole);
     public int deleteBaseRoles(List<String> ids) throws DataAccessException;
 
+    BaseRole getBaseRoleByUser(String id);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/BaseRoleDao.xml b/src/main/java/com/nanometer/smartlab/dao/BaseRoleDao.xml
index 872106e..d8ac50e 100644
--- a/src/main/java/com/nanometer/smartlab/dao/BaseRoleDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/BaseRoleDao.xml
@@ -5,6 +5,8 @@
     <id property="id" column="id"/>
     <result property="name" column="name"></result>
     <result property="memo" column="memo"></result>
+    <result property="userPermission" column="user_permission"></result>
+    <result property="btnPermission" column="btn_permission"></result>
     <result property="createTime" column="create_time"></result>
     <result property="updateTime" column="update_time"></result>
     <result property="validFlag" column="valid_flag" typeHandler="com.nanometer.smartlab.entity.handler.ValidFlagHandler"></result>
@@ -41,10 +43,28 @@
     where valid_flag = 1
     <include refid="queryWhereSql"/>
   </select>
+  <select id="getBaseRoleByUser" resultMap="BaseRole">
+    SELECT br.* FROM base_role br
+    LEFT JOIN sys_user su on su.role_id = br.id
+    where su.id=#{0}
+    and br.valid_flag = 1
+  </select>
 
   <insert id="insertBaseRole" parameterType="com.nanometer.smartlab.entity.BaseRole">
-    insert into base_role(id, name, memo, valid_flag, create_time, update_time)
-    values (#{id}, #{name}, #{memo}, 1, now(), now())
+    insert into base_role(id, name, memo, valid_flag, create_time, update_time
+    <if test="btnPermission !=null">
+      ,btn_permission
+    </if>
+    <if test="userPermission !=null">
+      ,user_permission
+    </if>)
+    values (#{id}, #{name}, #{memo}, 1, now(), now()
+    <if test="btnPermission !=null">
+      ,#{btnPermission}
+    </if>
+    <if test="userPermission !=null">
+      ,#{userPermission}
+    </if>)
   </insert>
 
   <update id="updateBaseRole" parameterType="com.nanometer.smartlab.entity.BaseRole">
@@ -52,6 +72,16 @@
     where id=#{id}
   </update>
 
+  <update id="updateBaseRoleInfo" parameterType="com.nanometer.smartlab.entity.BaseRole">
+    update base_role
+    <set>
+      <if test="btnPermission != null"> btn_permission=#{btnPermission},</if>
+      <if test="userPermission != null"> user_permission=#{userPermission},</if>
+      update_time=now()
+    </set>
+
+    where id=#{id}
+  </update>
   <update id="deleteBaseRoles" parameterType="java.util.List">
     update base_role set valid_flag=0, update_time=now()
     where id in
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java
index a9eb355..99ab04a 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java
@@ -53,4 +53,8 @@
     List<LaboratoryVo.LaboratoryUser> getUserByProject(@Param("project") String project);
 
     List<SysUser> getUserByArp(String arp);
+
+    int getUserCountInProject(Map params);
+
+    List<SysUser> getUserInProject(Map params);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
index 06c7961..9e86a3e 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
@@ -65,9 +65,6 @@
     <if test="seeFlag != null">
       and su.see_flag = #{seeFlag}
     </if>
-    <if test="seeFlag != null">
-      and su.see_flag = #{seeFlag}
-    </if>
     <if test="editId != null and editId != ''">
       and su.id != #{editId}
     </if>
@@ -276,6 +273,59 @@
         select * from sys_user
         where arp = #{0} and valid_flag = 1
     </select>
+    <select id="getUserCountInProject" parameterType="java.util.Map"  resultType="java.lang.Integer">
+        select count(1) from sys_user as su
+        left join base_meta bm on su.department = bm.id
+        left join base_meta bm1 on bm1.id = su.company
+        where su.valid_flag = 1
+        <if test="departmentNameLike != null and departmentNameLike != ''">
+            and bm.meta_value  like concat("%",#{departmentNameLike},"%")
+        </if>
+        <if test="arp != null and arp != ''">
+            and su.arp like concat("%",#{arp},"%")
+        </if>
+        <if test="name != null and name != ''">
+            and su.name like concat("%",#{name},"%")
+        </if>
+        <if test="company != null and company != ''">
+            and bm1.meta_value like concat("%",#{company},"%")
+        </if>
+        <if test="project != null and project != ''">
+            and
+            <foreach item="item" index="index" collection="project.split(',')" open="(" separator="or" close=")">
+                 su.project like concat("%",#{item},"%")
+            </foreach>
+        </if>
+    </select>
+    <select id="getUserInProject" parameterType="java.util.Map" resultMap="SysUser">
+        select su.*, br.name as roleName from sys_user as su
+        left join base_role as br on su.role_id = br.id
+        left join base_meta bm on su.department = bm.id
+        left join base_meta bm1 on bm1.id = su.company
+        where su.valid_flag = 1
+        <if test="departmentNameLike != null and departmentNameLike != ''">
+            and bm.meta_value  like concat("%",#{departmentNameLike},"%")
+        </if>
+        <if test="arp != null and arp != ''">
+            and su.arp like concat("%",#{arp},"%")
+        </if>
+        <if test="name != null and name != ''">
+            and su.name like concat("%",#{name},"%")
+        </if>
+        <if test="company != null and company != ''">
+            and bm1.meta_value like concat("%",#{company},"%")
+        </if>
+        <if test="project != null and project != ''">
+            and
+            <foreach item="item" index="index" collection="project.split(',')" open="(" separator="or" close=")">
+                su.project like concat("%",#{item},"%")
+            </foreach>
+        </if>
+        order by su.arp ASC
+        <if test="first != null and pageSize != null">
+            limit #{first}, #{pageSize}
+        </if>
+    </select>
     <update id="updateUserPointBySelective" parameterType="java.util.Map">
     update sys_user set point=#{point}
     <where>
diff --git a/src/main/java/com/nanometer/smartlab/entity/BaseRole.java b/src/main/java/com/nanometer/smartlab/entity/BaseRole.java
index 42dd898..d535732 100644
--- a/src/main/java/com/nanometer/smartlab/entity/BaseRole.java
+++ b/src/main/java/com/nanometer/smartlab/entity/BaseRole.java
@@ -1,9 +1,11 @@
 package com.nanometer.smartlab.entity;
 
 import com.nanometer.smartlab.entity.enumtype.ValidFlag;
+import org.apache.commons.lang.StringUtils;
 
 import java.io.Serializable;
 import java.sql.Timestamp;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -17,6 +19,9 @@
     private ValidFlag validFlag;
     private Timestamp createTime;
     private Timestamp updateTime;
+    private String btnPermission;
+    private String userPermission;
+    private List<String> btnPermissions;
 
     private List<String> pageIdList;
 
@@ -75,4 +80,33 @@
     public void setPageIdList(List<String> pageIdList) {
         this.pageIdList = pageIdList;
     }
+
+    public String getBtnPermission() {
+        return btnPermission;
+    }
+
+    public void setBtnPermission(String btnPermission) {
+        if (StringUtils.isNotBlank(btnPermission)) {
+            btnPermissions = Arrays.asList(btnPermission.split(","));
+        }
+        this.btnPermission = btnPermission;
+    }
+
+    public String getUserPermission() {
+        return userPermission;
+    }
+
+    public void setUserPermission(String userPermission) {
+        this.userPermission = userPermission;
+    }
+
+    public List<String> getBtnPermissions() {
+        return btnPermissions;
+    }
+
+    public void setBtnPermissions(List<String> btnPermissions) {
+        this.btnPermissions = btnPermissions;
+    }
+
+
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/BaseRoleService.java b/src/main/java/com/nanometer/smartlab/service/BaseRoleService.java
index 4dbecae..a53f758 100644
--- a/src/main/java/com/nanometer/smartlab/service/BaseRoleService.java
+++ b/src/main/java/com/nanometer/smartlab/service/BaseRoleService.java
@@ -17,4 +17,9 @@
     public BaseRole insertBaseRole(BaseRole baseRole);
     public boolean updateBaseRole(BaseRole baseRole);
     public boolean deleteBaseRole(List<BaseRole> baseRoleList);
+
+    public void updateUserMngPageBtn(BaseRole baseRole);
+    public void updateUserMngPageUser(BaseRole baseRole);
+
+    BaseRole getRoleByUserId(String id);
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/BaseRoleServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/BaseRoleServiceImpl.java
index a4eaa54..fa14a1a 100644
--- a/src/main/java/com/nanometer/smartlab/service/BaseRoleServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/BaseRoleServiceImpl.java
@@ -205,4 +205,35 @@
             throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), ex);
         }
     }
+
+    @Override
+    public void updateUserMngPageBtn(BaseRole baseRole) {
+
+        if (baseRole.getBtnPermissions() != null && baseRole.getBtnPermissions().size() > 0) {
+            List<String> btnPermissions = baseRole.getBtnPermissions();
+            for (String btnPermission : btnPermissions) {
+                if (btnPermissions.indexOf(btnPermission) == 0) {
+                    baseRole.setBtnPermission(btnPermission);
+                } else {
+                    baseRole.setBtnPermission(baseRole.getBtnPermission() + "," + btnPermission);
+                }
+            }
+        }
+
+        //更新操作可见
+        baseRoleDao.updateBaseRoleInfo(baseRole);
+
+
+    }
+
+    @Override
+    public void updateUserMngPageUser(BaseRole baseRole) {
+        //更新人员可见
+        baseRoleDao.updateBaseRoleInfo(baseRole);
+    }
+
+    @Override
+    public BaseRole getRoleByUserId(String id) {
+        return baseRoleDao.getBaseRoleByUser(id);
+    }
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysUserService.java b/src/main/java/com/nanometer/smartlab/service/SysUserService.java
index 329a102..bed31fc 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysUserService.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysUserService.java
@@ -16,6 +16,8 @@
 
     List<SysUser> getSysUserList(String arp, String name,String departmentName,String project,String company,Integer first, Integer pageSize);
     int getSysUserTotalCount(String arp, String name,String departmentName,String project,String company);
+    int getUserCountInProject(String arp, String name,String departmentName,String project,String company);
+    List<SysUser> getUserInProject(String arp, String name,String departmentName,String project,String company,Integer first, Integer pageSize);
     SysUser getSysUser(String id);
     SysUser getSysUserForSuppllier(String id);
     SysUser getSysUserByAccount(String account);
diff --git a/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java
index c5c11dc..1337895 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysUserServiceImpl.java
@@ -87,6 +87,28 @@
         }
     }
 
+    @Override
+    public int getUserCountInProject(String arp, String name, String departmentName, String project, String company) {
+        Map<String, Object> params = new HashMap<String, Object>();
+        params.put("arp", arp);
+        params.put("name", name);
+        params.put("departmentNameLike", departmentName);
+        params.put("project", project);
+        params.put("company", company);
+        return sysUserDao.getUserCountInProject(params);
+    }
+
+    @Override
+    public List<SysUser> getUserInProject(String arp, String name, String departmentName, String project, String company, Integer first, Integer pageSize) {
+        Map<String, Object> params = new HashMap<String, Object>();
+        params.put("arp", arp);
+        params.put("name", name);
+        params.put("departmentNameLike", departmentName);
+        params.put("project", project);
+        params.put("company", company);
+        return sysUserDao.getUserInProject(params);
+    }
+
     @Transactional(propagation = Propagation.REQUIRED)
     public SysUser getSysUser(String id) {
         try {
diff --git a/src/main/webapp/WEB-INF/spring-menu.xml b/src/main/webapp/WEB-INF/spring-menu.xml
index 186064f..95288ba 100644
--- a/src/main/webapp/WEB-INF/spring-menu.xml
+++ b/src/main/webapp/WEB-INF/spring-menu.xml
@@ -259,6 +259,8 @@
                         <property name="title" value="人员管理"></property>
                         <property name="page" value="user_mng"></property>
                         <property name="privilegeCode" value="user_mng"></property>
+                        <property name="initClazz" value="userMngController"></property>
+                        <property name="initMethod" value="initPage"></property>
                     </bean>
                     <bean class="com.nanometer.smartlab.model.MenuModel">
                         <property name="id" value="role_mng"></property>
diff --git a/src/main/webapp/role_mng.xhtml b/src/main/webapp/role_mng.xhtml
index eca8c77..2856202 100644
--- a/src/main/webapp/role_mng.xhtml
+++ b/src/main/webapp/role_mng.xhtml
@@ -16,7 +16,7 @@
             <p:outputLabel styleClass="title" value="角色管理"></p:outputLabel>
         </p:panel>
         <p:panel styleClass="center-body">
-            <p:panelGrid columns="3" styleClass="btn">
+            <p:panelGrid columns="5" styleClass="btn">
                 <p:commandButton value="新建" styleClass="new-btn"
                                  process="@this"
                                  actionListener="#{roleMngController.onNewBtnClick}"
@@ -32,6 +32,16 @@
                                  update="@form">
                     <p:confirm header="确认" message="确认操作?"></p:confirm>
                 </p:commandButton>
+
+                <p:commandButton value="按钮权限" styleClass="edit-btn"
+                                 process="@form"
+                                 actionListener="#{roleMngController.btnPermissionClick}"
+                                 update=":btnDialog,:btnDialogForm"/>
+
+                <p:commandButton value="人员权限" styleClass="edit-btn"
+                                 process="@form"
+                                 actionListener="#{roleMngController.userPermissionClick}"
+                                 update=":userDialog,:userDialogForm"/>
             </p:panelGrid>
 
             <p:dataTable id="roleMngDataTable" styleClass="data-table"
@@ -75,5 +85,54 @@
             </p:panel>
         </h:form>
     </p:dialog>
+
+    <p:dialog modal="true" header="修改" appendTo="@(body)"
+              id="btnDialog" widgetVar="btnDialog" resizable="false" width="420">
+        <h:form id="btnDialogForm">
+            <p:panelGrid columns="1" styleClass="content">
+                <p:outputLabel value="角色名称"/>
+                <p:inputText value="#{roleMngController.baseRole.name}" readonly="true"/>
+
+                <p:outputLabel value="人员管理页面:"/>
+
+                <p:selectManyCheckbox value="#{roleMngController.baseRole.btnPermissions}" layout="grid" columns="2" style="width: 100%;">
+                    <f:selectItem itemLabel="新增功能" itemValue="新增"/>
+                    <f:selectItem itemLabel="修改功能" itemValue="修改"/>
+                    <f:selectItem itemLabel="删除功能" itemValue="删除"/>
+                    <f:selectItem itemLabel="导入功能" itemValue="导入"/>
+                </p:selectManyCheckbox>
+            </p:panelGrid>
+            <p:panel styleClass="btn">
+                <p:commandButton value="保存" actionListener="#{roleMngController.onSaveBtnPermission}"
+                                 process="@form" update=":roleMngForm:roleMngDataTable">
+                    <p:confirm header="确认" message="确认操作?"/>
+                </p:commandButton>
+            </p:panel>
+        </h:form>
+    </p:dialog>
+
+    <p:dialog modal="true" header="修改" appendTo="@(body)"
+              id="userDialog" widgetVar="userDialog" resizable="false" width="420">
+        <h:form id="userDialogForm">
+            <p:panelGrid columns="1" styleClass="content">
+                <p:outputLabel value="角色名称"/>
+                <p:inputText value="#{roleMngController.baseRole.name}" readonly="true"/>
+
+                <p:outputLabel value="人员管理页面:"/>
+
+                <p:selectOneRadio value="#{roleMngController.baseRole.userPermission}" layout="grid" columns="1" style="width: 100%;">
+                    <f:selectItem itemLabel="可见所有人员" itemValue="所有人员"/>
+                    <f:selectItem itemLabel="只可见课题组成员" itemValue="课题组"/>
+                    <f:selectItem itemLabel="只可见自己" itemValue="自己"/>
+                </p:selectOneRadio>
+            </p:panelGrid>
+            <p:panel styleClass="btn">
+                <p:commandButton value="保存" actionListener="#{roleMngController.onSaveUserPermission}"
+                                 process="@form" update=":roleMngForm:roleMngDataTable">
+                    <p:confirm header="确认" message="确认操作?"/>
+                </p:commandButton>
+            </p:panel>
+        </h:form>
+    </p:dialog>
 </ui:composition>
 </html>
\ No newline at end of file
diff --git a/src/main/webapp/user_mng.xhtml b/src/main/webapp/user_mng.xhtml
index eabe205..fd849e5 100644
--- a/src/main/webapp/user_mng.xhtml
+++ b/src/main/webapp/user_mng.xhtml
@@ -40,20 +40,26 @@
                                  process="@this"
                                  actionListener="#{userMngController.onNewBtnClick}"
                                  oncomplete="PF('dialog').show();"
-                                 update=":dialog,:dialogForm"></p:commandButton>
+                                 update=":dialog,:dialogForm"
+                                 rendered="#{userMngController.isAccess('新增')}"></p:commandButton>
                 <p:commandButton value="修改" styleClass="edit-btn"
                                  process="@form"
                                  actionListener="#{userMngController.onEditBtnClick}"
-                                 update=":dialog,:dialogForm"></p:commandButton>
+                                 update=":dialog,:dialogForm"
+                                 rendered="#{userMngController.isAccess('修改')}"></p:commandButton>
                 <p:commandButton value="删除" styleClass="del-btn"
                                  process="@form"
                                  actionListener="#{userMngController.onDeleteBtnClick}"
-                                 update="@form">
+                                 update="@form"
+                                 rendered="#{userMngController.isAccess('删除')}">
                     <p:confirm header="确认" message="确认操作?"></p:confirm>
                 </p:commandButton>
                 <p:commandButton value="导入" styleClass="import-btn" onclick="importUser()"
+                                 rendered="#{userMngController.isAccess('导入')}"
                 ></p:commandButton>
-                <a href="resources/template/用户导入模板.xlsx" style="display: inline-block;"><img src="resources/images/xlsx.png" width="30px;" alt=""/></a>
+                <p:outputLabel rendered="#{userMngController.isAccess('导入')}">
+                    <a href="resources/template/用户导入模板.xlsx" style="display: inline-block;"><img src="resources/images/xlsx.png" width="30px;" alt=""/></a>
+                </p:outputLabel>
                 <script>
                     function importUser(){
                         $("#userMngForm\\:importUserBtn_input").click();

--
Gitblit v1.9.2