day113-django_CMDB系统开发二

CMDB系统开发二

一、用户组管理模块

1、展示用户组列表

​ Django自带了用户表,同时也带了用户组表。他们是多对多关系。用户组模型很简单,和User模型是多对多的关系。用户组顾名思义,就是对用户进行了分组。其作用在权限控制中就是可以批量的对用户的权限许可进行分配,而不用一个一个的按用户分配,节省维护的工作量。

RBAC

①功能实现

路由

在这里插入图片描述

视图

使用用户组模型

在这里插入图片描述

在这里插入图片描述

模板

在这里插入图片描述

②添加测试数据

在这里插入图片描述

在这里插入图片描述

添加用户到用户组

在这里插入图片描述

在这里插入图片描述

2、创建用户组

添加用户组合之前添加用户方法类似。

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

展示用户列表

在这里插入图片描述

在这里插入图片描述

3、更新用户组

更新用户组合更新用户类似,需要额外处理的是,回显用户列表,需要判断用户是否在用户组,如果在处理为下拉框选中状态。

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

当前用户组 用户选中

在这里插入图片描述

更新用户组 发送ajax请求

在这里插入图片描述

4、删除用户组

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

在这里插入图片描述

二、权限管理模块

1、Django权限介绍

Django的框架提供了模型级的权限控制, 即可以检查用户是否对某个数据表拥有增(add), 改(change), 删(delete)权限。

Django默认权限模型

from django.contrib.auth.models import Permission

Django的权限表和用户是多对多关系,同时跟用户组也是多对多关系。

也就是代表一个用户可以有自己的权限同时也可以有所属组的权限。

​ Django的权限表,里面有一个content_type_id关联的就是django_content_type表,所以而django_content_type表中关联了APP和模型。所以这是模型级别的权限控制。

举个例子,我们可以控制某个用户是否具有查看用户列表或者创建用户列表的权限。而无法判断某个用户对某条数据是不是有权限。

​ 当然也可以后期自己去扩展数据权限,但是在当前系统控制在模型权限就足够了。

在这里插入图片描述

在这里插入图片描述

2、展示权限列表

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

在这里插入图片描述

在这里插入图片描述

以上显示的都是系统默认权限,不能够进行增加或者修改。

过滤掉系统的默认权限,自定义权限,并显示出来。

①过滤掉默认的系统权限

发现都是英文的,可以使用正则匹配,把含有英文的过滤掉

regex=’[a-zA-Z0-9]’

重写模板类的get_queryset方法

在这里插入图片描述

已经显示过滤系统默认权限(英文显示的)

在这里插入图片描述

②自定义权限
models.py
在这里插入图片描述

③迁移数据

在这里插入图片描述

显示出自定义权限

在这里插入图片描述

3、用户权限设置功能

①用户列表添加权限设置按钮

在这里插入图片描述

②显示可设置权限

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

在这里插入图片描述

③设置权限

视图

在这里插入图片描述

2.0报错需要使用
user.user_permissions.set(data.getlist(‘perm_list[]’))
模板

在这里插入图片描述

4、用户组权限设置功能

用户组权限设置和用户权限设置功能基本类似。

5、权限使用

权限限制实现:

①前端限制 页面中不显示功能入口

在这里插入图片描述

缺点 可以直接通过url访问

②后端限制 查询数据库是否具有权限

使用导入模块

from django.utils.decorators import method_decorator
from django.contrib.auth.decorators import login_required, permission_required

视图

在这里插入图片描述

2.0以上报错需使用如下

 @method_decorator(login_required())
 @method_decorator(permission_required('user.add_user'))
 def get(self, request, *args, **kwargs):
 	context = self.get_context_data(**kwargs)
    return self.render_to_response(context)

三、资产机房模块

新建一个resource应用模块,用来进行资产资源的管理。

在这里插入图片描述

在这里插入图片描述

1、资产机房模型设计

资产机房,就是平常所说的IDC机房。托管主机的地方。

资产机房信息:

机房简称、机房名称、机房地址、机房座机电话、机房负责人姓名、机房负责人邮箱、机房负责人手机号。

①创建模型

在这里插入图片描述

②迁移数据

在这里插入图片描述

2、展示资产机房列表

路由

在这里插入图片描述

在这里插入图片描述

视图

在这里插入图片描述

模板

在这里插入图片描述

添加测试数据,查看效果

在这里插入图片描述

在这里插入图片描述

3、添加资产机房

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

在列表页面增加添加按钮

在这里插入图片描述

表单

在这里插入图片描述

提交请求

在这里插入图片描述

4、更新资产机房

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

更新按钮处理

在这里插入图片描述

在这里插入图片描述

post数据方法

在这里插入图片描述

5、删除资产机房

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

绑定事件

在这里插入图片描述

发送请求

在这里插入图片描述

四、资产用户模块

1、资产用户模型设计

资产用户跟系统用户没关系,资产用户跟主机是有关系的。每台主机都需要账号密码,资产用户主要是针对主机去关联的。

模型字段:名称、系统用户、系统密码、备注

①创建模型

在这里插入图片描述

②迁移数据

在这里插入图片描述

2、展示资产用户列表

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

在这里插入图片描述

添加测试数据

在这里插入图片描述

展示效果

在这里插入图片描述

3、添加资产用户

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

在列表页面添加创建资产用户按钮

在这里插入图片描述

收集数据的表单

在这里插入图片描述

通过ajax方法post请求

在这里插入图片描述

4、更新资产用户

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

修改列表页面中更新按钮的链接

在这里插入图片描述

数据回显

在这里插入图片描述

通过ajax发送修改后的数据

在这里插入图片描述

5、删除资产用户

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

在列表页面绑定事件 通过按钮点击事件 触发删除js方法(发送数据给后端)

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爪蛙毁一生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值