zoukankan      html  css  js  c++  java
  • 后端管理系统的权限设置

    所谓管理员的权限其实是一个三表连接:管理员列表(admin),角色表(role),权限管理表(auth);

    1:大家都知道在建立管理员数据库表的时候,里面有一个字段是role_id;在添加管理员的时候需要添加角色分类,也就是管理员的角色;

    2:那当然少不了角色管理了,数据库建立表的时候,角色表有三个字段:role_id,role_name,rules;这三个表分别代表的角色的id,角色,角色所附有的权限;

    3:第三个表当然是权限管理表,权限表也是三个字段:id,name,title;其实就是将后台管理的列表依次加入,格式为:

    4:在权限管理列表里面有权限编辑这一栏目,这里就是我们给每个角色赋予什么权限,将权限添加到角色表里面

    5:建立公共控制器(以框架为例),ci框架,在core自定义一个控制器命名为:MY_Controller.php;

    6:权限设置:(1):根据管理员名可以查询出角色role_id;(2):根据role_id可以查询角色权限;(3):查询登录的ID,获取查看的路径参数,判断是否能查询到,不能查询到代表没有权限,查询到了则代表是有权限的

    以CI框架为例的代码:

    //根据管理员名查询角色role_id:
    $username=$this->session->username;
    //查询优化数据库:
    $this->db->select('role_id');
    $this->db->where('username',$username);
    $query=$this->db->get('ci_admin');
    $data=$query->result();
    $role_id=$data[0]->role_id;
    //根据role_id查询角权限:
    $this->db->select('rules');
    $this->db->where('role_id',$role_id);
    $query1=$this->db->get('ci_role');
    $data1=$query1->result();
    $rules=$data1[0]->rules;
    $arr=explode(',',$rules);

    //查询登录权限的ID
    $path=$this->uri->segment(1).'/'.$this->uri->segment(2);
    $this->db->select('id');
    $this->db->where('name',$path);
    $query2=$this->db->get('ci_auth');
    $data2=$query2->result();
    //判断是否存在权限
    if(!empty($data2)){
    $id=$data2[0]->id;
    //判断权限是否存在$arr数组里面:
    if(!in_array($id,$arr)){
    echo "<script>alert('您暂时没有权限对该项进行操作!')</script>";
    echo "<script>history.back()</script>";
    exit;
    }

    活着不应该靠泪水博取同情,而是需要靠汗水赢得掌声
  • 相关阅读:
    Strapi and MongoDB
    Windows 下入手 MongoDB
    npm 创建一个 github action
    Vue3: does not provide an export named 'createRouter'
    How To Use Rocketbots As A Dialogflow CRM
    Telegram Groups vs Telegram Channels
    WhatsApp Group vs WhatsApp Broadcast for Business
    Instant Messaging for Business: Your 10 Best Options
    How to Create and Use Facebook Messenger Codes (June 2019)
    Ultimate Guide to Line For Business (May 2019)
  • 原文地址:https://www.cnblogs.com/gaoxuqing/p/6707615.html
Copyright © 2011-2022 走看看