11-企业权限管理-角色操作

简介: 11-企业权限管理-角色操作

角色操作-查询所有


20200419145811656.png


RoleController


@RequestMapping("/role")
@Controller
public class RoleController {
    @Autowired
    private IRoleService roleService;
    @RequestMapping("/findAll.do")
    public ModelAndView findAll() throws Exception {
        ModelAndView mv = new ModelAndView();
        List<Role> roleList = roleService.findAll();
        mv.addObject("roleList", roleList);
        mv.setViewName("role-list");
        return mv;
    }
}


RoleServiceImpl


@Service
@Transactional
public class RoleServiceImpl implements IRoleService {
    @Autowired
    private IRoleDao roleDao;
    @Override
    public List<Role> findAll() throws Exception{
        return roleDao.findAll();
    }
}


IRoleDao


public interface IRoleDao {
    //根据用户id查询出所有对应的角色
    @Select("select * from role where id in (select roleId from users_role where userId=#{userId})")
    @Results({
            @Result(id = true, property = "id", column = "id"),
            @Result(property = "roleName", column = "roleName"),
            @Result(property = "roleDesc", column = "roleDesc"),
            @Result(property = "permissions",column = "id",javaType = java.util.List.class,many = @Many(select = "com.itheima.ssm.dao.IPermissionDao.findPermissionByRoleId"))
    })
    public List<Role> findRoleByUserId(String userId) throws Exception;
    @Select("select * from role")
    List<Role> findAll() throws Exception;
}


role-list.jsp


body class="hold-transition skin-blue sidebar-mini">
  <div class="wrapper">
    <!-- 页面头部 -->
    <jsp:include page="header.jsp"></jsp:include>
    <!-- 页面头部 /-->
    <!-- 导航侧栏 -->
    <jsp:include page="aside.jsp"></jsp:include>
    <!-- 导航侧栏 /-->
    <!-- 内容区域 -->
    <div class="content-wrapper">
      <!-- 内容头部 -->
      <section class="content-header">
      <h1>
        角色管理 <small>全部角色</small>
      </h1>
      <ol class="breadcrumb">
        <li><a href="${pageContext.request.contextPath}/index.jsp"><i
            class="fa fa-dashboard"></i> 首页</a></li>
        <li><a
          href="${pageContext.request.contextPath}/role/findAll.do">角色管理</a></li>
        <li class="active">全部角色</li>
      </ol>
      </section>
      <!-- 内容头部 /-->
        <!-- 正文区域 -->
        <section class="content"> <!-- .box-body -->
        <div class="box box-primary">
          <div class="box-header with-border">
            <h3 class="box-title">列表</h3>
          </div>
          <div class="box-body">
            <!-- 数据表格 -->
            <div class="table-box">
              <!--工具栏-->
              <div class="pull-left">
                <div class="form-group form-inline">
                  <div class="btn-group">
                    <button type="button" class="btn btn-default" title="新建" onclick="location.href='${pageContext.request.contextPath}/pages/role-add.jsp'">
                      <i class="fa fa-file-o"></i> 新建
                    </button>
                    <button type="button" class="btn btn-default" title="刷新">
                      <i class="fa fa-refresh"></i> 刷新
                    </button>
                  </div>
                </div>
              </div>
              <div class="box-tools pull-right">
                <div class="has-feedback">
                  <input type="text" class="form-control input-sm"
                    placeholder="搜索"> <span
                    class="glyphicon glyphicon-search form-control-feedback"></span>
                </div>
              </div>
              <!--工具栏/-->
              <!--数据列表-->
              <table id="dataList"
                class="table table-bordered table-striped table-hover dataTable">
                <thead>
                  <tr>
                    <th class="" style="padding-right: 0px"><input
                      id="selall" type="checkbox" class="icheckbox_square-blue">
                    </th>
                    <th class="sorting_asc">ID</th>
                    <th class="sorting_desc">角色名称</th>
                    <th class="sorting_asc sorting_asc_disabled">描述</th>                    
                    <th class="text-center">操作</th>
                  </tr>
                </thead>
                <tbody>
                  <c:forEach items="${roleList}" var="role">
                    <tr>
                      <td><input name="ids" type="checkbox"></td>
                      <td>${role.id }</td>
                      <td>${role.roleName }</td>
                      <td>${role.roleDesc }</td>                                        
                      <td class="text-center">
                        <a href="${pageContext.request.contextPath}/role/findById.do?id=${role.id}" class="btn bg-olive btn-xs">详情</a>
                        <a href="${pageContext.request.contextPath}/role/deleteRole.do?id=${role.id}" class="btn bg-olive btn-xs">角色删除</a>
                        <a href="${pageContext.request.contextPath}/role/findRoleByIdAndAllPermission.do?id=${role.id}" class="btn bg-olive btn-xs">添加权限</a>
                      </td>
                    </tr>
                  </c:forEach>
                </tbody>
                <!--
                            <tfoot>
                            <tr>
                            <th>Rendering engine</th>
                            <th>Browser</th>
                            <th>Platform(s)</th>
                            <th>Engine version</th>
                            <th>CSS grade</th>
                            </tr>
                            </tfoot>-->
              </table>
              <!--数据列表/-->
            </div>
            <!-- 数据表格 /-->
          </div>
          <!-- /.box-body -->
          <!-- .box-footer-->
          <div class="box-footer">
            <div class="pull-left">
              <div class="form-group form-inline">
                总共2 页,共14 条数据。 每页 <select class="form-control">
                  <option>1</option>
                  <option>2</option>
                  <option>3</option>
                  <option>4</option>
                  <option>5</option>
                </select> 条
              </div>
            </div>
            <div class="box-tools pull-right">
              <ul class="pagination">
                <li><a href="#" aria-label="Previous">首页</a></li>
                <li><a href="#">上一页</a></li>
                <li><a href="#">1</a></li>
                <li><a href="#">2</a></li>
                <li><a href="#">3</a></li>
                <li><a href="#">4</a></li>
                <li><a href="#">5</a></li>
                <li><a href="#">下一页</a></li>
                <li><a href="#" aria-label="Next">尾页</a></li>
              </ul>
            </div>
          </div>
          <!-- /.box-footer-->
        </div>
        </section>
        <!-- 正文区域 /-->
      </div>
      <!-- @@close -->
      <!-- 内容区域 /-->
      <!-- 底部导航 -->
      <footer class="main-footer">
      <div class="pull-right hidden-xs">
        <b>Version</b> 1.0.8
      </div>
      <strong>Copyright &copy; 2014-2017 <a
        href="http://www.itcast.cn">研究院研发部</a>.
      </strong> All rights reserved. </footer>
      <!-- 底部导航 /-->


角色添加



20200419151230452.png


RoleController


save


@RequestMapping("/role")
@Controller
public class RoleController {
    @Autowired
    private IRoleService roleService;
    @RequestMapping("/save.do")
    public String save(Role role) throws Exception {
        roleService.save(role);
        return "redirect:findAll.do";
    }
    @RequestMapping("/findAll.do")
    public ModelAndView findAll() throws Exception {
        ModelAndView mv = new ModelAndView();
        List<Role> roleList = roleService.findAll();
        mv.addObject("roleList", roleList);
        mv.setViewName("role-list");
        return mv;
    }
}


RoleServiceImpl


save


@Service
@Transactional
public class RoleServiceImpl implements IRoleService {
    @Autowired
    private IRoleDao roleDao;
    @Override
    public void save(Role role) {
        roleDao.save(role);
    }
    @Override
    public List<Role> findAll() throws Exception{
        return roleDao.findAll();
    }
}


IRoleDao


save


public interface IRoleDao {
    //根据用户id查询出所有对应的角色
    @Select("select * from role where id in (select roleId from users_role where userId=#{userId})")
    @Results({
            @Result(id = true, property = "id", column = "id"),
            @Result(property = "roleName", column = "roleName"),
            @Result(property = "roleDesc", column = "roleDesc"),
            @Result(property = "permissions",column = "id",javaType = java.util.List.class,many = @Many(select = "com.itheima.ssm.dao.IPermissionDao.findPermissionByRoleId"))
    })
    public List<Role> findRoleByUserId(String userId) throws Exception;
    @Select("select * from role")
    List<Role> findAll() throws Exception;
    @Insert("insert into role(roleName,roleDesc) values(#{roleName},#{roleDesc})")
    void save(Role role);
}


role-add.jsp


  <div class="wrapper">
    <!-- 页面头部 -->
    <jsp:include page="header.jsp"></jsp:include>
    <!-- 页面头部 /-->
    <!-- 导航侧栏 -->
    <jsp:include page="aside.jsp"></jsp:include>
    <!-- 导航侧栏 /-->
    <!-- 内容区域 -->
    <div class="content-wrapper">
      <!-- 内容头部 -->
      <section class="content-header">
      <h1>
        角色管理 <small>角色表单</small>
      </h1>
      <ol class="breadcrumb">
        <li><a href="${pageContext.request.contextPath}/index.jsp"><i
            class="fa fa-dashboard"></i> 首页</a></li>
        <li><a href="${pageContext.request.contextPath}/role/findAll.do">角色管理</a></li>
        <li class="active">角色表单</li>
      </ol>
      </section>
      <!-- 内容头部 /-->
      <form action="${pageContext.request.contextPath}/role/save.do"
        method="post">
        <!-- 正文区域 -->
        <section class="content"> <!--产品信息-->
        <div class="panel panel-default">
          <div class="panel-heading">角色信息</div>
          <div class="row data-type">
            <div class="col-md-2 title">角色名称</div>
            <div class="col-md-4 data">
              <input type="text" class="form-control" name="roleName"
                placeholder="角色名称" value="">
            </div>
            <div class="col-md-2 title">角色描述</div>
            <div class="col-md-4 data">
              <input type="text" class="form-control" name="roleDesc"
                placeholder="角色描述" value="">
            </div>
          </div>
        </div>
        <!--订单信息/--> <!--工具栏-->
        <div class="box-tools text-center">
          <button type="submit" class="btn bg-maroon">保存</button>
          <button type="button" class="btn bg-default"
            onclick="history.back(-1);">返回</button>
        </div>
        <!--工具栏/--> </section>
        <!-- 正文区域 /-->
      </form>
    </div>
    <!-- 内容区域 /-->
    <!-- 底部导航 -->
    <footer class="main-footer">
    <div class="pull-right hidden-xs">
      <b>Version</b> 1.0.8
    </div>
    <strong>Copyright &copy; 2014-2017 <a
      href="http://www.itcast.cn">研究院研发部</a>.
    </strong> All rights reserved. </footer>
    <!-- 底部导航 /-->
  </div>


角色详情操作


RoleController


    @RequestMapping("/findById.do")
    public ModelAndView findById(@RequestParam(name="id",required=true) String roleId) throws Exception{
        ModelAndView mv = new ModelAndView();
        Role role=roleService.findById(roleId);
        mv.addObject("role",role);
        mv.setViewName("role-show");
        return mv;
    }


RoleServiceImpl


    @Override
    public Role findById(String roleId) throws Exception {
        return roleDao.findById(roleId);
    }


IRoleDao


    @Results({
            @Result(id = true,property = "id",column = "id"),
            @Result(property = "roleName",column = "roleName"),
            @Result(property = "roleDesc",column = "roleDesc"),
            @Result(property = "permissions",column = "id",javaType = java.util.List.class,many = @Many(select = "com.itheima.ssm.dao.IPermissionDao.findPermissionByRoleId"))
    })
    Role findById(String roleId);


IPermissionDao


public interface IPermissionDao {
    @Select("select * from permission where id in (select permissionId from role_permission where roleId=#{id} )")
    public List<Permission> findPermissionByRoleId(String id) throws Exception;


role-show.jsp


<div class="wrapper">
    <!-- 页面头部 -->
    <jsp:include page="header.jsp"></jsp:include>
    <!-- 页面头部 /-->
    <!-- 导航侧栏 -->
    <jsp:include page="aside.jsp"></jsp:include>
    <!-- 导航侧栏 /-->
    <!-- 内容区域 -->
    <div class="content-wrapper">
        <!-- 内容头部 -->
        <section class="content-header">
            <h1>
                角色管理
                <small>全部用户</small>
            </h1>
            <ol class="breadcrumb">
                <li><a href="${pageContext.request.contextPath}/index.jsp"><i
                        class="fa fa-dashboard"></i> 首页</a></li>
                <li><a
                        href="${pageContext.request.contextPath}/role/findAll.do">角色管理</a></li>
                <li class="active">全部用户</li>
            </ol>
        </section>
        <!-- 内容头部 /-->
        <!-- 正文区域 -->
        <section class="content"> <!-- .box-body -->
            <div class="box box-primary">
                <div class="box-header with-border">
                    <h3 class="box-title">列表</h3>
                </div>
                <div class="box-body">
                    <!-- 数据表格 -->
                    <div class="table-box">
                        <!--工具栏-->
                        <div class="pull-left">
                            <div class="form-group form-inline">
                                <div class="btn-group">
                                    <button type="button" class="btn btn-default" title="新建">
                                        <i class="fa fa-file-o"></i> 新建
                                    </button>
                                    <button type="button" class="btn btn-default" title="刷新">
                                        <i class="fa fa-refresh"></i> 刷新
                                    </button>
                                </div>
                            </div>
                        </div>
                        <div class="box-tools pull-right">
                            <div class="has-feedback">
                                <input type="text" class="form-control input-sm"
                                       placeholder="搜索"> <span
                                    class="glyphicon glyphicon-search form-control-feedback"></span>
                            </div>
                        </div>
                        <!--工具栏/-->
                        <!--数据列表-->
                        <div class="tab-pane" id="tab-treetable">
                            <table id="collapse-table"
                                   class="table table-bordered table-hover dataTable">
                                <thead>
                                <tr>
                                    <th>名称</th>
                                    <th>描述</th>
                                </tr>
                                </thead>
                                <tr data-tt-id="0">
                                    <td colspan="2">${role.roleName}</td>
                                </tr>
                                <tbody>
                                <c:forEach items="${role.permissions}" var="permission" varStatus="vs1">
                                    <tr data-tt-id="${vs1.index+1}" data-tt-parent-id="0">
                                        <td>${permission.permissionName }</td>
                                        <td>${permission.url }</td>
                                    </tr>
                                </c:forEach>
                                </tbody>
                            </table>
                        </div>
                        <!--数据列表/-->
                    </div>
                    <!-- 数据表格 /-->
                </div>
                <!-- /.box-body -->
                <!-- .box-footer-->
                <div class="box-footer">
                    <div class="pull-left">
                        <div class="form-group form-inline">
                            总共2 页,共14 条数据。 每页 <select class="form-control">
                            <option>1</option>
                            <option>2</option>
                            <option>3</option>
                            <option>4</option>
                            <option>5</option>
                        </select> 条
                        </div>
                    </div>
                    <div class="box-tools pull-right">
                        <ul class="pagination">
                            <li><a href="#" aria-label="Previous">首页</a></li>
                            <li><a href="#">上一页</a></li>
                            <li><a href="#">1</a></li>
                            <li><a href="#">2</a></li>
                            <li><a href="#">3</a></li>
                            <li><a href="#">4</a></li>
                            <li><a href="#">5</a></li>
                            <li><a href="#">下一页</a></li>
                            <li><a href="#" aria-label="Next">尾页</a></li>
                        </ul>
                    </div>
                </div>
                <!-- /.box-footer-->
            </div>
        </section>
        <!-- 正文区域 /-->
    </div>


角色删除


RoleController


    @RequestMapping("/deleteRole.do")
    public String deleteRole(@RequestParam(name="id",required = true) String roleId) throws Exception {
        roleService.deleteRoleById(roleId);
        return "redirect:findAll.do";
    }


RoleServiceImpl


    @Override
    public void deleteRoleById(String roleId) throws Exception {
        //从user_role表中删除
        roleDao.deleteFromUser_RoleByRoleId(roleId);
        //从role_permission表中删除
        roleDao.deleteFromRole_PermissionByRoleId(roleId);
        //从role表中删除
        roleDao.deleteRoleById(roleId);
    }


IRoleDao


    @Delete("delete from users_role where roleId=#{roleId}")
    void deleteFromUser_RoleByRoleId(String roleId);
    @Delete("delete from role_permission where roleId=#{roleId}")
    void deleteFromRole_PermissionByRoleId(String roleId);
    @Delete("delete from role where id=#{roleId}")
    void deleteRoleById(String roleId);
  <td class="text-center">
      <a href="${pageContext.request.contextPath}/role/findById.do?id=${role.id}" class="btn bg-olive btn-xs">详情</a>
      <a href="${pageContext.request.contextPath}/role/deleteRole.do?id=${role.id}" class="btn bg-olive btn-xs">角色删除</a>
      <a href="${pageContext.request.contextPath}/role/findRoleByIdAndAllPermission.do?id=${role.id}" class="btn bg-olive btn-xs">添加权限</a>
</td>


相关文章
|
6月前
|
存储 监控 安全
数据访问权限如何通过角色管理实现?
【6月更文挑战第24天】数据访问权限如何通过角色管理实现?
102 9
|
SQL 安全 关系型数据库
第03章 用户与权限管理
第03章 用户与权限管理
113 0
|
XML 安全 Java
7-企业权限管理-权限操作
7-企业权限管理-权限操作
7-企业权限管理-权限操作
|
数据安全/隐私保护
13-企业权限管理-用户关联角色操作
13-企业权限管理-用户关联角色操作
13-企业权限管理-用户关联角色操作
|
数据安全/隐私保护
9-企业权限管理-用户操作
9-企业权限管理-用户操作
9-企业权限管理-用户操作
|
数据安全/隐私保护
14-企业权限管理-角色关联权限操作
14-企业权限管理-角色关联权限操作
|
数据安全/隐私保护
12-企业权限管理-资源权限
12-企业权限管理-资源权限
|
数据采集 运维 安全
Dataphin权限体系(1):权限体系介绍与角色权限【视频】
在数据系统中,优秀的权限体系设计对系统的数据安全和开发效率都非常重要,本文将从下面三个角度对Dataphin的权限体系介绍: 1、Dataphin权限体系整体设计 2、Dataphin全局角色介绍 3、Dataphin项目角色介绍
Dataphin权限体系(1):权限体系介绍与角色权限【视频】
|
存储 Java 数据库连接
纳税服务系统四(角色模块)【角色与权限、角色与用户】(三)
之前在Servlet+JSP+JavaBean的时候其实我们已经做过了用户-角色-权限之间的操作【权限管理系统】http://blog.csdn.net/hon_3y/article/details/61926175
346 0
纳税服务系统四(角色模块)【角色与权限、角色与用户】(三)
|
数据库 数据安全/隐私保护
纳税服务系统四(角色模块)【角色与权限、角色与用户】(一)
之前在Servlet+JSP+JavaBean的时候其实我们已经做过了用户-角色-权限之间的操作【权限管理系统】http://blog.csdn.net/hon_3y/article/details/61926175
264 0
纳税服务系统四(角色模块)【角色与权限、角色与用户】(一)