九 Admin 分配 Role

九 Admin 分配 Role

git checkout -b 9.0.0_admin_role

1 目标

  • 保护资源, 设置角色权限

  • 给用户设置角色<可以有多个角色>

  • 判断当前用户的角色是否有权限

  • 通过页面操作把 Admin 和 Role 之间的关联关系保存到数据库

    • 中间表 - inner_admin_role

2. 思路

img

img

3 代码

3.1 给 Admin 分配 Role

  1. 页面

    1. **Admin-page.jsp中分配按钮**修改为**超链接**
<a href="assign/to/assign/role/page.html?adminId=${ admin.id }&pageNum=${ requestScope.pageInfo.pageNum }&keyword=${ param.keyword }"
                                               class="btn btn-success btn-xs"><i class="glyphicon glyphicon-check"></i></a>
  1. 创建 AssignHandler
package com.atguigu.crowd.mvc.handler;

import com.atguigu.crowd.entity.Role;
import com.atguigu.crowd.service.api.AdminService;
import com.atguigu.crowd.service.api.RoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@Controller
public class AssignHandler {
   
    @Autowired
    private AdminService adminService;

    @Autowired
    private RoleService roleService;

    @RequestMapping("/assign/to/assign/role/page.html")
    public String toAssignRolePage(
            @RequestParam("adminId") Integer adminId,
            ModelMap modelMap
    ) {
   
        // 查询已分配角色
        List<Role> assignedRoleList = roleService.getAssignedRole(adminId);

        // 查询未分配角色
        List<Role> unAssignedRoleList = roleService.getUnAssignedRole(adminId);
        // 存入模型
        modelMap.addAttribute("assignedRoleList", assignedRoleList);
        modelMap.addAttribute("unAssignedRoleList", unAssignedRoleList);

        return "assign-role";
    }
}
  1. RoleMapper.xml
<select id="selectAssignedRole" resultType="com.atguigu.crowd.entity.Role">
  select id,name from t_tole where id in (select role_id from inner_admin_role where admin_id=#{adminId})
</select>
<select id="selectUnAssignedRole" resultType="com.atguigu.crowd.entity.Role">
  select id,name from t_tole where id not in (select role_id from inner_admin_role where admin_id=#{adminId})
</select>
  1. 创建页面 assign-role.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="zn-CN">
<%@include file="/WEB-INF/include-head.jsp" %>

<body>

<%@include file="/WEB-INF/include-nav.jsp" %>
<div class="container-fluid">
    <div class="row">
        <%@include file="/WEB-INF/include-sidebar.jsp" %>

        <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
            <ol class="breadcrumb">
                <li><a href="#">首页</a></li>
                <li><a href="#">数据列表</a></li>
                <li class="active">分配角色</li>
            </ol>
            <div class="panel panel-default">
                <div class="panel-body">
                    <form role="form" class="form-inline">
                        <div class="form-group">
                            <label for="exampleInputPassword1">未分配角色列表</label><br>
                            <select class="form-control" multiple size="10" style="width:100px;overflow-y:auto;">
                                <option value="pm">PM</option>
                                <option value="sa">SA</option>
                                <option value="se">SE</option>
                                <option value="tl">TL</option>
                                <option value="gl">GL</option>
                            </select>
                        </div>
                        <div class="form-group">
                            <ul>
                                <li class="btn btn-default glyphicon glyphicon-chevron-right"></li>
                                <br>
                                <li class="btn btn-default glyphicon glyphicon-chevron-left" style="margin-top:20px;"></li>
                            </ul>
                        </div>
                        <div class="form-group" style="margin-left:40px;">
                            <label for="exampleInputPassword1">已分配角色列表</label><br>
1
                          1
                          1
                          1
                          <select class="form-control" multiple size="10" style="width:100px;overflow-y:auto;">
                                <option value="qa">QA</option>
                                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值