zoukankan      html  css  js  c++  java
  • 权限控制

      1 1.权限控制
      2 
      3 ​    -什么是权限?
      4 
      5 ​    一个URL对应一个权限 
      6 
      7  -表结构  4个model  6张表
      8 
      9 菜单表
     10 
     11 ​    -title 标题
     12 
     13 ​    -icon 图标
     14 
     15 ​    -weight 权重 
     16 
     17 权限表
     18 
     19 ​    -url
     20 
     21 ​    -title  标题
     22 
     23 ​    -name   URL别名
     24 
     25 ​    -menu 外键  关联菜单表
     26 
     27 ​    -parent 外键  关联自己
     28 
     29 角色表
     30 
     31 ​    -title 标题
     32 
     33 ​    -permissions 多对多  关联权限
     34 
     35 用户表
     36 
     37 ​    -name 用户名
     38 
     39 ​    -pwd   密码
     40 
     41 ​    -roles  多对多  关联角色
     42 
     43 角色和权限的关系表
     44 
     45 用户和角色的关系表
     46 
     47 2.流程
     48 
     49 -中间件
     50 
     51 ​    -白名单
     52 
     53 ​        -settings
     54 
     55 ​        -正则匹配 
     56 
     57 ​    -获取权限
     58 
     59 ​    -需要登录不需要校验的URL的校验
     60 
     61 ​    - 路径导航 request.breadcrumb_list=[ { 首页   url  }  ]
     62 
     63 ​    -权限的校验
     64 
     65 ​        -正则
     66 
     67 ​        -判断pid  
     68 
     69 ​            -没有pid   表示当前访问的权限是二级菜单
     70 
     71 ​                记录request.current_menu_id = id  
     72 
     73 ​                路径导航
     74 
     75 ​                    request.breadcrumb_list.append({  url  title  })
     76 
     77 ​            -有pid    表示当前访问的权限是二级菜单下的一个子权限
     78 
     79 ​                记录request.current_menu_id = pid 
     80 
     81 ​                路径导航
     82 
     83 ​                    获取父权限的信息    permission_dict[str(pid)]      permission_dict[  pname ]
     84 
     85 ​                    request.breadcrumb_list.append({  url  title  })   # 父权限  二级菜单
     86 
     87 ​                    request.breadcrumb_list.append({  url  title  })
     88 
     89 ​        -匹配成功return
     90 
     91 ​    -return HTTPResponse('没权限')
     92 
     93 -登录成功进行权限信息的初始化
     94 
     95 ​    -获取当前用户的所有权限
     96 
     97 ​        -ORM
     98 
     99 ​        -去除权限为空的
    100 
    101 ​        -跨表  去重
    102 
    103 ​    -构建数据结构
    104 
    105 ​        -权限的字典
    106 
    107 ​        permission_dict = {
    108 
    109'URL的别名' :{ ‘url’    , ‘title’ ,   ’id‘  , 'pid'  'pname'   }
    110 
    111 ​        }
    112 
    113 ​        -菜单的字典
    114 
    115 ​        menu_dict ={
    116 
    117'一级菜单的ID':{ 
    118 
    119              ’title‘ 
    120 
    121 ​             ’icon‘ 
    122 
    123 ​             ’weight‘  
    124 
    125 ​            ’children‘:[ 
    126 
    127 ​                    {'二级菜单的title'   ’url‘   'id'  }
    128 
    129 ​                 ]   }
    130 
    131 ​        }
    132 
    133 ​    -放入到session中
    134 
    135 ​        -settings配置
    136 
    137 ​        -json序列化   数字当做字典的KEY 会变成字符串
    138 
    139 -模板
    140 
    141 ​    -母版和继承
    142 
    143 ​    -自定义inclusion_tag
    144 
    145 ​        -动态生成二级菜单
    146 
    147 ​            -settings
    148 
    149 ​            -sorted
    150 
    151 ​            -有序字典
    152 
    153 ​        -路径导航
    154 
    155 ​            -settings
    156 
    157 ​            -反射
    158 
    159 ​    -自定义filter
    160 
    161 ​        -权限控制到按钮级别  
    162 
    163 ​            namespace:name
    164 
    165 ​            {%   if  request|has_permission:'namespace:name ' %}
    166 
    167 168 
    169 ​            {% endif %}
    170 
    171 ​        -URL 反向解析
  • 相关阅读:
    预览PDF【reactpdf】插件的使用(二)
    多叉merkletree的实现
    中国优秀的架构师是不是出现了严重断层?
    工程师的思维转变
    QCore/Library说明文档
    QParserGenerator代码分析二(A fix&An example)
    山寨STL实现之list
    山寨STL实现笔记
    山寨STL实现之内存池V2
    词法分析器1(正则表达式到εNFA的转换)
  • 原文地址:https://www.cnblogs.com/niuli1987/p/10185017.html
Copyright © 2011-2022 走看看