day78

day78,第1张

概述15qitongxue xuede 特别渣 性格特别好 每次都回来分享失败的经验,碰到谁就和谁分享看了基础,去了何人说,回去整个项目再来面试,要带着项目去。简历上。(这么多年的开发) 提高自我解决问题的能力 没有bug,怎么走每天备份代码,做好调bug的准备 今日内容: 权限 思维导图的方式整理出来 bug1 'web' is not a registered namespace re

15qitongxue

xuede 特别渣  性格特别好  每次都回来分享失败的经验,碰到谁就和谁分享看了基础,去了何人说,回去整个项目再来面试,要带着项目去。简历上。(这么多年的开发)

提高自我解决问题的能力

没有BUG,怎么走每天备份代码,做好调BUG的准备

今日内容:

权限

思维导图的方式整理出来

BUG1
'web' is not a registered namespace
return (reverse('web:customer'))        没有web 命名空间
BUG 2

return render()

一般模板渲染有问题, 一般数据出错了 (前端HTML)

解决前端 : 把web: 都替换了

rbac/distribute/permissions/?uID=2

给用户分配不同的角色
分配权限用户信息   角色不同了  他的权限也跟着变(角色已有的权限)(点击保存)

给角色分配不同的权限
点击BOSS(背景颜色变了)  所有权限都出来了 ,可以修改,保存

distribute_permissions

去改成数据结构 chlIDren (写的非常复杂,不会前端,for循环里有数据联动)

distribute_permissions 2

用户uID

访问的时候没有保存 if uID ---》 有了保存

<a href="?uID={{ user.ID }}">{{ user.name }}</a></li>
角色rID

直接就改了私有变量

_开头私有变量 (python中可以改,告诉别人是私有变量)

<td><a href="?{% gen_role_url request role.ID %}">{{ role.name }}</a></td>    params = request.GET.copy()      deepcopy也是这么改 _deepcopy 有mutable方法    params._mutable = True      下划线是私有变量  可以修改了=true    params['rID'] = rID             return params.urlencode()       编码 拼接字符串 rID = role.ID  rID=1    答辩如何答辩                  {‘name’:'chao','xx':111} name=chao&xx=11    三个人站台上,全班提问                 request.get  在url =  ? 的时候才会拿到值            if 判断  把用户已有的角色 勾选上      用户分配角色  rID

<a href="?

权限

前端只负责给后端要数据,后端只给前端数据,怎么渲染不管             AJAX做的 权限       res是数据  返回的是        parent = Fk('Permision')(和self ) 也行 关联自己 pID

weight 权重 排序的

List(permissions) Json反序列化下的 列表套字典 safe=False (字典没错,别的要falseyixia )

JsonResponse(contype是Json的,调用内部解析器,解析成内部的数据结构了)

$.each(循环) (i(索引),permission({‘x1‘:xx},{‘x2‘:xxx}))

组织数据 val [ermission]

import copyrequest.GET.copy()          copy方法copy.copy(request.GET)      __copy__

ES6 新增的模板语法

var s=‘‘多行语法

‘menu_${menu_pk}’   ID = 'menu_1'

Json在线格式化

pID = none 父级s = 'tr 一级菜单  tr 二级菜单'input name = 'per_ID' value={{pk}} $(#body).append(s)

这样显示格式是可以的,渲染的不同

if (menu_@R_403_5979@): tr tr

else : tr (tr (td td td))

根据per_${pk} #per_+parent_ID append

如果同处一个menu_ID 的情况下,会生成,两个 信息管理 信息管理

所以给个if 条件 判断一级菜单是否生成了

if (#menu+menu_pk).length(或者不加length) : s = ‘td‘

$ (#menu+menu_pk).parent().append(s) 一级标签加

流程:

刚开始没有uID 没有rID 只有两条数据 和 权限的数据

if uID : vlaue_List = [(1,),(2,)] -->[1,2]

? p_ID_List = 权限有重复的 [1,2 ] 给了权限的AJAX

? --->permission2.HTML,role_ID_List p_ID_List

默认勾选

a 标签发了get请求 给了 渲染的成rID 渲染的p_ID

? if role.ID in role_List : checked 模板的时候做

AJAX模板渲染之后 发送的AJAX ---》per_tree (发送了JsR)

拿到数据,生成标签,加到对应的页面位置

AJAX var p_ID_List = {{per_ID_List}}

找到 value = pk 和 in p_ID_List 一样的 给他加个checked

$.each(p_i_l,func(i,j){    })

有个AJAX局部刷 ,点击user 或者 role 的话刷新

{% if role.ID in role_ID_List %}    //[1,2,3,4]   <input type="checkBox" name="roles" value="{{ role.ID }}" checked/>          {% else %}   <input  type="checkBox" name="roles" value="{{ role.ID }}"/>    {% endif %}
url: 'tree' var per_ID_List={{ per_ID_List }}   //[1,4]$.each(per_ID_List,function(i,j){           console.log($("[value='"+j+"']")[0])        $("#body [value='"+j+"']").prop("checked",true)})input生成标签的时候vlaue 是{{pk}} 值   默认值
3 简单版本

保存提交

用户的角色(自带权限)分配

user uID = 1

input name = ‘postType‘ value = ‘role‘ 就一个保存提交判断 是role 还是peRSSion

if method = ‘post‘ and request.POST .get(‘postType‘) ==‘role‘:

l = request.getList(‘roles‘)

user.first().roles.set(l) 基于对象的多表 *** 作 对象.

roles *** 作第三张表 set()先清空在赋值

user_List = 再查一遍 然后再渲染回去

role_List

@H_404_190@给角色分配权限

自定义标签 + rID = 1 ? gen_role_

uID=1 & rID = 1 boss

rID request.GET.get(‘rID‘)

之前的是 p_ID_List = user.pk=uID

现在应该是

else rID : p_ID_List = models.Role.obj.filter(‘peRSSins__pk‘=ID).cla正向

if uID: p_ID_List = models.user.obj.filter(‘peRSSins__pk‘=ID).cla

input name = ‘postType‘ value = ‘permission‘

if re.method ="POST" and value = ‘P‘:

? l= request.POST.getList(‘permission_ID‘)

? models.Role.objects.filter(pk=rID).first()取出对象.permissin.set(l)

r除了权限之外都是增删改查,但是业务要给人说,吹
总流程

两个BUG

第一个点击消失,二级菜单    if 路径第二个增删改查,点击消失    if pID

权限加到项目

1 settings 权限相关配置加到自己项目配置中

2 权限中间件更改一下,配置一下 (权限都写在rbac中,)(出现什么BUG,心里有数)

? (有一些功能对不上的,按着流程一步步揪)

3 白名单 ,登录

4 登录---表里面有没有这些数据--提取数据,session中 注入permission_List,[{‘pID‘,‘@R_403_5979@‘,‘url‘,‘pk‘}]

5 登录认证,权限认证 request.session[‘permission_List‘] request.path

6 url-视图-模板

7 模板渲染,左侧菜单栏权限(走到页面展示(流程图))

8 不同的客户对应不同的 *** 作

9 权限管理 (角色的增删改查 权限的增删改查)

nbcrm

setting 给了 rbac.

setting 配置一下 white .setting.confire = [‘‘,‘‘,‘‘]

注意 : 路径分配

rbac 有个user表

nbapp 有个user表

from nbapp.models import UserInfo

class User(models.Model):

? user = models.onttoonefIEld(‘nbapp.userinfo‘) 对应好了

查询的时候:

? login 登录成功之后注入权限:

? if user_obj :

? 用的是rbac 表里的对象 而不是nbapp

? init_session(request,) rbac里的关联的用户表

总结

以上是内存溢出为你收集整理的day78全部内容,希望文章能够帮你解决day78所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1066606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存