• tp中的权限(RBAC)


    目录文件(仅仅写的权限的代码)

                       

    Role/showlist.html 代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
     
            <title>角色列表</title>
     
            <link href="__CSS__/mine.css" type="text/css" rel="stylesheet" />
        </head>
        <body>
            <style>
                .tr_color{background-color: #9F88FF}
            </style>
            <div class="div_head">
                <span>
                    <span style="float: left;">当前位置是:权限管理-》角色列表</span>
                    <span style="float: right; margin-right: 8px; font-weight: bold;">
                        <a style="text-decoration: none;" href="__URL__/add">【添加角色】</a>
                    </span>
                </span>
            </div>
            <div style="font-size: 13px; margin: 10px 5px;">
                <table class="table_a" border="1" width="100%">
                    <tbody><tr style="font-weight: bold;">
                            <td >角色id</td>
                            <td >角色名称</td>
                            <td >权限ids</td>
                            <td >role_auth_ac</td>
                            <td  align="center">操作</td>
                        </tr>
                 <volist name="list" id="vo">
                         
                        <tr id="product{$i}">
                            <td>{$vo.role_id}</td>
                            <td><a href="#">{$vo.role_name}</a></td>
                            <td>{$vo.role_auth_ids}</td>
                            <td>{$vo.role_auth_ac}</td>
                            <td>
                            <a href="__URL__/showauth/rid/{$vo.role_id}">分配权限</a>
                            <a href="#">修改</a>
                            <a href="#">删除</a>
                            </td>
                        </tr>
                 </volist>
                        <tr>
                            <td colspan="20" style="text-align: center;">
                                {$page}
                            </td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </body>
    </html>

      

    Role/showautht.html 代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
        <head>
            <title>给角色分配权限</title>
            <meta http-equiv="content-type" content="text/html;charset=utf-8" />
            <link href="__CSS__/mine.css" type="text/css" rel="stylesheet" />
        </head>
     
        <body>
            <div class="div_head">
                <span>
                    <span style="float:left">当前位置是:角色管理-》分配权限信息【{$role_info['role_name']}】</span>
                    <span style="float:right;margin-right: 8px;font-weight: bold">
                        <a style="text-decoration: none" href="__CONTROLLER__/showlist">【返回】</a>
                    </span>
                </span>
            </div>
            <div></div>
     
            <div style="font-size: 13px;margin: 10px 5px">
                <form action='__SELF__' method='post'>
                    <table cellspacing='1' id="list-table">
                        <volist name='auth_infoA' id='v'>
                        <tr>
                            <td width="25%" valign="top" class="first-cell" style='border-bottom:2px solid gray; font-weight:bold;'>
                                <input type="checkbox" name="auth_id[]" value="{$v['auth_id']}" class="checkbox"
                                       <if condition="in_array($v['auth_id'],$authidsarr)">checked='checked'</if>
                                       />{$v['auth_name']}
                                       </td>
                            <td width='75%' style='border-bottom:2px solid gray;'>
                                <volist name='auth_infoB' id="vv">
                                <if condition="$vv['auth_pid']  eq $v['auth_id']">
                                <div style="200px;float:left;">
                                    <input type="checkbox" name="auth_id[]" value="{$vv['auth_id']}"
                                         <if condition="in_array($vv['auth_id'],$authidsarr)">checked='checked'</if>
                                           />{$vv['auth_name']}
                                </div>
                                </if>
                                </volist>
                            </td>
                        </tr>
                        </volist>
                    </table>
                    <input type='submit' value='分配权限' />
                </form>
            </div>
        </body>
    </html>

      

    Auth/showlist.html  代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
     
            <title>权限列表</title>
     
            <link href="__CSS__/mine.css" type="text/css" rel="stylesheet" />
        </head>
        <body>
            <style>
                .tr_color{background-color: #9F88FF}
            </style>
            <div class="div_head">
                <span>
                    <span style="float: left;">当前位置是:权限管理-》权限列表</span>
                    <span style="float: right; margin-right: 8px; font-weight: bold;">
                        <a style="text-decoration: none;" href="__URL__/addauth">【添加权限】</a>
                    </span>
                </span>
            </div>
            <div style="font-size: 13px; margin: 10px 5px;">
                <table class="table_a" border="1" width="100%">
                    <tbody><tr style="font-weight: bold;">
                            <td >序号</td>
                            <td >权限名称</td>
                            <td >父权限id</td>
                            <td >控制器</td>
                            <td >方法</td>
                            <td >全路径</td>
                            <td >级别</td>
                            <td  align="center">操作</td>
                        </tr>
                 <volist name="list" id="vo">
                         
                        <tr id="product{$i}">
                            <td>{$vo.auth_id}</td>
                            <td>{$ge|str_repeat=$vo['auth_level']}{$vo.auth_name}</td>
                            <td>{$vo.auth_pid}</td>
                            <td>{$vo.auth_c}</td>
                            <td>{$vo.auth_a}</td>
                            <td>{$vo.auth_path}</td>
                            <td>{$vo.auth_level}</td>
                            <td>
                            <a href="#">修改</a>
                            <a href="__URL__/del/id/{$vo.auth_id}">删除</a>
                            </td>
                        </tr>
                 </volist>
                        <tr>
                            <td colspan="20" style="text-align: center;">
                                {$page}
                            </td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </body>
    </html>

      

    Auth/addauth.html  代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
        <head>
            <title>添加权限</title>
            <meta http-equiv="content-type" content="text/html;charset=utf-8">
            <link href="./css/mine.css" type="text/css" rel="stylesheet">
        </head>
     
        <body>
     
            <div class="div_head">
                <span>
                    <span style="float:left">当前位置是:权限管理-》添加权限信息</span>
                    <span style="float:right;margin-right: 8px;font-weight: bold">
                        <a style="text-decoration: none" href="__URL__/showlist">【返回】</a>
                    </span>
                </span>
            </div>
            <div></div>
     
            <div style="font-size: 13px;margin: 10px 5px">
                <form action="__SELF__" method="post" enctype="multipart/form-data">
                <table border="1" width="100%" class="table_a">
                    <tr>
                        <td>权限名称</td>
                        <td><input type="text" name="auth_name" /></td>
                    </tr>
                    <tr>
                        <td>权限父id</td>
                        <td>
                            <select name="auth_pid">
                                <option value="0">请选择</option>
                                 <foreach name="list" item="vo">
                                <option value="{$vo.auth_id}">{$vo.auth_name}</option>
                               </foreach>
                            </select>
                        </td>
                    </tr>
                      <tr>
                        <td>控制器</td>
                        <td><input type="text" name="auth_c" /></td>
                    </tr>
                      <tr>
                        <td>方法</td>
                        <td><input type="text" name="auth_a" /></td>
                    </tr>
                    <tr>
                        <td colspan="2" align="center">
                            <input type="submit" value="添加">
                        </td>
                    </tr> 
                </table>
                </form>
            </div>
        </body>
    </html>

      

    Model/AuthModel.class.php  代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    namespace AdminModel;
    use ThinkModel;
    //Admin模块的manager控制器
    class  AuthModel  extends  Model{
        function  saveDate($info){
            //根据已有的四个字段生成一条记录
            $newid=$this->add($info);
            //根据新增主键进一步制作auth_path和auth——level
            if($info["auth_pid"]==0){
                //dingji
                $path=$newid;
            }else{
                //非顶级
                $pinfo=$this->find($info["auth_pid"]);
                $p_path=$pinfo["auth_path"];
                $path=$p_path."-".$newid;
            }
            //全路径数组之后的个数减一的结果
            $level=count(explode("-",$path))-1;
            $sql="update tp_auth  set auth_path='$path',auth_level='$level'where auth_id='$newid'";
            return $this->execute($sql);
             
        }
    }
        

      

    Controller/RoleController.class.PHP   代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?php
    namespace AdminController;//声明
    use ThinkController;//用Controller在什么位置
    //Admin模块的login控制器
    class  RoleController  extends  Controller{
        function showlist(){
            $list=M("role")->select();
            $this->assign("list",$list);
             
            $this->display();
        }
        function showauth($rid){
            if(IS_POST){
               $auth_ids=$_POST["auth_id"];//接收表单
                $role_auth_ids=implode(",",$auth_ids);//数组转字符串
                $authnames=M("auth")->field("auth_c,auth_a")->where("auth_id in($role_auth_ids)")->select();//根据权限id查控制器方法
                 
                 
                //组织成字符串313883132
                 
                $str="";
                foreach($authnames as $v){
                    if(!empty($v["auth_c"]))
                    $str.=$v["auth_c"]."-".$v["auth_a"].",";
                }
                $str=rtrim($str,",");//去除逗号
                 
                //执行SQL语句
              $aql="update tp_role set role_auth_ids='$role_auth_ids',role_auth_ac='$str' where role_id=$rid";
                M("role")->execute($aql);
                $this->redirect("showlist",array("rid"=>$rid),1,"分配完成"); 
                     
             
            }
            //增加权限
            $auth_infoA=M("auth")->where("auth_level=0 ")->select();
            $auth_infoB=M("auth")->where("auth_level=1 ")->select();
                 
            $role=M("role")->find($rid);
            $authidsarr=explode(",",$role["role_auth_ids"]);
             //注册到模板
            $this->assign("auth_infoA",$auth_infoA);
            $this->assign("auth_infoB",$auth_infoB);
            $this->assign("authidsarr",$authidsarr);
                 
            $this->display();
         
      }
    }

      

    Controller/AuthController.class.PHP   代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
    namespace AdminController;//声明
    use ThinkController;//用Controller在什么位置
    //Admin模块的login控制器
    class  AuthController  extends  Controller{
        function showlist(){
            $data=M("auth")->order('auth_path')->select();
            $this->assign("list",$data);
            $this->assign('ge',"--/");
            $this->display();
        }
        function addauth(){
            $auth=new AdminModelAuthModel();
            if(!empty($_POST)){
                $info=$auth->create();
                if($auth->saveDate($info)){
                     
                     
                     $this->redirect("showlist",array(),1,"添加成功");
                }else{
                    echo  "老哥,干啥呢!";
                }
              }
               
             
            $pid=M("auth")->field("auth_id,auth_name")->where("auth_level=0")->select();
            $this->assign("list",$pid);
             
            $this->display();
        }
        //删除的方法
        function del( $id){//参数的键名叫id
            $goods=M('auth');
            if($goods->delete($id)){
                $this->success("删除成功",U("showlist"),1);
            }else{
                $this->error("删除失败",U("showlist"),1);
            }
        }
         
         
         
         
         
         
         
    }
  • 相关阅读:
    Python 操作Redis 转载篇
    Django运行SQL语句
    将博客搬至CSDN
    MySQL学习(三)函数
    MySQL学习(二)数据类型
    MySQL学习(一) 数据表基本操作
    Django聚合函数
    windows平台上编译mongdb-cxx-driver
    小程序登陆遇到 ERR_REQUEST_PARAM
    Opengrok服务器搭建step by step
  • 原文地址:https://www.cnblogs.com/Prinlily/p/10007448.html
Copyright © 2020-2023  润新知