Ejemplo n.º 1
0
def report(request):
    """
    通过csrf_exempt装饰器,跳过Django的csrf安全机制,让post的数据能被接收,但这又会带来新的安全问题。
    可以在客户端,使用自定义的认证token,进行身份验证。这部分工作,请根据实际情况,自己进行。
    :param request:
    :return:
    """
    if request.method == "POST":
        asset_data = request.POST.get('asset_data')
        data = json.loads(asset_data)
        print(asset_data)
        # 检测数据完整性
        if not data:
            return HttpResponse("无数据提交!请重试!")
        if not issubclass(dict, type(data)):
            return HttpResponse("提交的数据必须是字典格式!")
        # 通过SN号判断该资产该干嘛
        sn = data.get('sn', None)
        if sn:
            # 进入审批流程,判断是否是在线的资产
            asset_obj = models.Asset.objects.filter(sn=sn)
            if asset_obj:  # 如果是在线的SN,那么更新该资产的数据
                update_asset = asset_handler.UpdateAsset(request, asset_obj[0], data)
                return HttpResponse("已更新资产数据!")
            else:  # 如果不是在线的资产则新增资产
                obj = asset_handler.NewAsset(request, data)
                response = obj.add_to_new_assets_zone()
                return HttpResponse(response)
        else:
            return HttpResponse("没有资产SN号,请查验数据完整性!")

    return HttpResponse('200 ok')
Ejemplo n.º 2
0
def report(request):
    """
    通过csrf_exempt装饰器,跳过Django的csrf安全机制,让post的数据能被接收,但这又会带来新的安全问题。
    可以在客户端,使用自定义的认证token,进行身份验证。这部分工作,请根据实际情况,自己进行。
    :param request:
    :return:
    """
    if request.method == "POST":
        asset_data = request.POST.get('asset_data')
        data = json.loads(asset_data)
        # 各种数据检查,请自行添加和完善!
        if not data:
            return HttpResponse("没有数据!")
        if not issubclass(dict, type(data)):
            return HttpResponse("数据必须为字典格式!")
        # 是否携带了关键的sn号
        sn = data.get('sn', None)
        if sn:
            # 进入审批流程
            # 首先判断是否在上线资产中存在该sn
            asset_obj = models.Asset.objects.filter(sn=sn)
            if asset_obj:
                # 进入已上线资产的数据更新流程
                update_asset = asset_handler.UpdateAsset(
                    request, asset_obj[0], data)
                return HttpResponse("资产数据已经更新!")
            else:  # 如果已上线资产中没有,那么说明是未批准资产,进入新资产待审批区,更新或者创建资产。
                obj = asset_handler.NewAsset(request, data)
                response = obj.add_to_new_assets_zone()
                return HttpResponse(response)
        else:
            return HttpResponse("没有资产sn序列号,请检查数据!")
    return HttpResponse('200 ok')
Ejemplo n.º 3
0
def report(request):
    if request.method == "POST":
        asset_data = request.POST.get('asset_data')
        data = json.loads(asset_data)
        #数据检查
        if not data:
            return HttpResponse("没有数据 !")
        if not issubclass(dict,type(data)):
            return HttpResponse('数据必须是字典格式!')
        sn = data.get('sn',None)
        if sn:
        # 进入审批流程
        # 首先判断是否在上线资产中存在该sn
            asset_obj = models.Asset.objects.filter(sn=sn)
            if asset_obj:
                #进入已上线资产的数据更新流程
                update_asset = asset_handler.UpdateAsset(request,asset_obj[0],data)
                return HttpResponse('资产数据已经更新')

            else:
                obj = asset_handler.NewAsset(request,data)
                respponse = obj.add_to_new_assets_zone()
                return HttpResponse(respponse)
        else:
            return HttpResponse('没有资产sn序列号,请检查数据')


        print(asset_data)
        return HttpResponse("成功收到数据!")
Ejemplo n.º 4
0
def report(request):
    if request.method == 'POST':
        asset_data = request.POST.get('asset_data')
        data = json.loads(asset_data)
        if not data:
            return HttpResponse('没有数据!')
        if not issubclass(dict, type(data)):
            return HttpResponse('数据必须为字典格式!')
        # 你的检测代码

        sn = data.get('sn', None)

        if sn:
            asset_obj = models.Asset.objects.filter(sn=sn)  # [obj]
            if asset_obj:
                update_asset = asset_handler.UpdateAsset(
                    request, asset_obj[0], data)
                return HttpResponse('资产数据已经更新。')
            else:
                obj = asset_handler.NewAsset(request, data)
                response = obj.add_to_new_assets_zone()
                return HttpResponse(response)
        else:
            return HttpResponse('没有资产sn,请检查数据内容!')

    return HttpResponse('200 ok')
Ejemplo n.º 5
0
def report(request):
    if request.method == "POST":
        asset_data = request.POST.get('asset_data')
        data = json.loads(asset_data)
        # 各种数据检查,请自行添加和完善!
        if not data:
            return HttpResponse("没有数据!")
        if not issubclass(dict, type(data)):
            return HttpResponse("数据必须为字典格式!")
        # 是否携带了关键的sn号
        sn = data.get('sn', None)
        if sn:
            # 进入审批流程
            # 首先判断是否在上线资产中存在该sn
            asset_obj = models.Asset.objects.filter(sn=sn)
            if asset_obj:
                # 进入已上线资产的数据更新流程
                update_asset = asset_handler.UpdateAsset(request, asset_obj[0], data)
                return HttpResponse("资产数据已经更新!")
            else:  # 如果已上线资产中没有,那么说明是未批准资产,进入新资产待审批区,更新或者创建资产。
                obj = asset_handler.NewAsset(request, data)
                response = obj.add_to_new_assets_zone()
                return HttpResponse(response)
        else:
            return HttpResponse('没有资产sn序列号, 请检查数据!')
    return HttpResponse('200 ok')
Ejemplo n.º 6
0
def report(request):
    if request.method == 'POST':
        asset_data = request.POST.get('asset_data')
        data = json.loads(asset_data)
        if not data:
            return HttpResponse('没有数据!')
        if not issubclass(dict, type(data)):
            return HttpResponse('数据必须为字典格式!')
        # 你的检测代码

        aud_sn = data.get('aud_sn', None)
        aud_asset_type = data.get('aud_asset_type', None)

        if aud_sn:
            asset_obj = models.Asset.objects.filter(sn=aud_sn)  # [obj]
            # print("++++++++++++")
            if asset_obj:
                update_asset = asset_handler.UpdateAsset(
                    request, asset_obj[0], data)
                return HttpResponse('资产数据已经更新。')
            else:
                # print("------------")
                obj = asset_handler.NewAsset(request, data)
                res = obj.add_to_new_assets_zone()
                if aud_asset_type == "server":
                    response = obj.add_to_new_assets_zone_server()
                elif aud_asset_type == "securitydevice":
                    response = obj.add_to_new_assets_zone_securitydevice()
                else:
                    response = "N--------------N"
                return HttpResponse(response)
        else:
            return HttpResponse('没有资产sn,请检查数据内容!')

    return HttpResponse('200 ok')
Ejemplo n.º 7
0
def report(request):
    if request.method == "POST":
        asset_data = request.POST.get('asset_data')
        data = json.loads(asset_data)
        if not data:
            return HttpResponse("No Data")

        if not issubclass(dict, type(data)):
            return HttpResponse("Data type should be Dictionary")

        sn = data.get('sn', None)
        if sn:
            asset_obj = models.Asset.objects.filter(sn=sn)
            if asset_obj:
                update_asset = asset_handler.UpdateAsset(
                    request, asset_obj[0], data)
                return HttpResponse("Asset info has been updated!")
            else:
                obj = asset_handler.NewAsset(request, data)
                response = obj.add_to_new_assets_zone()
                return HttpResponse(response)
        else:
            return HttpResponse(
                "Asset SN number not founded, Please check your data!")

    return HttpResponse('200 ok')
Ejemplo n.º 8
0
def report(request):
    """
    通过csrf_exempt 装饰器,跳过Django的csrf安全机制,让post的数据能够接收,但这又会带来安全问题。
    可以再客户端,使用自定义认证token,进行身份验证,这部分工作,根据实际情况,自己进行
    :param request:
    :return:
    """
    if request.method == 'POST':
        asset_data = request.POST.get('asset_data')
        data = json.loads(asset_data)
        if not data:
            return HttpResponse('没有数据!')
        if not issubclass(dict, type(data)):
            return HttpResponse('数据必须是字典格式')
        sn = data.get('sn', None)
        if not sn:
            return HttpResponse('没有资产sn序列号,请检查数据!')
        else:
            # 进入审批流程
            # 首先判断是否在上线资产存在该sn
            asset_obj = models.Asset.objects.filter(sn=sn)
            if asset_obj:
                update_asset = asset_handler.UpdateAsset(
                    request, asset_obj[0], data)
                # 进入已经上线资产的数据更新流程
                return HttpResponse('资产数据已更新!')
            else:
                obj = asset_handler.NewAsset(request, data)
                response = obj.add_to_new_assets_zone()
                return HttpResponse(response)
    return HttpResponse('200 ok')
Ejemplo n.º 9
0
def report(request):
    if request.method == "POST":
        asset_data = request.POST.get("asset_data")
        # 取数据
        data = json.loads(asset_data)
        if not data:
            return HttpResponse("没有数据!")
        if not issubclass(dict, type(data)):
            return HttpResponse("数据必须为字典格式!")

        sn = data.get("sn", None)
        if sn:
            asset_obj = models.Asset.objects.filter(sn=sn)
            if asset_obj:
                # 进入已上线资产的数据更新流程
                update_asset = asset_handler.UpdateAsset(
                    request, asset_obj[0], data)
                return HttpResponse("资产数据已更新!")
            else:
                obj = asset_handler.NewAsset(request, data)
                response = obj.add_to_new_assets_zone()
                return HttpResponse(response)
        else:
            return HttpResponse("没有资产sn序列号,请检查数据!")
    return HttpResponse('200 OK')
Ejemplo n.º 10
0
def report(request):
    if request.method == 'POST':
        asset_data = request.POST.get('asset_data')
        data = json.loads(asset_data)
        # print(asset_data)
        if not data:
            return HttpResponse("没有数据")
        if not issubclass(dict, type(data)):
            return HttpResponse("数据必须为字典格式!")
        sn = data.get('sn', None)
        if sn:
            # 判断是否已经有此资产
            asset_obj = models.Asset.objects.filter(sn=sn)
            if asset_obj:
                # 数据更新
                update_asset = asset_handler.UpdateAsset(
                    request, asset_obj[0], data)
                return HttpResponse("资产数据已更新!")
            else:  #没有则创建新资产
                obj = asset_handler.NewAsset(request, data)
                response = obj.add_to_new_assets_zone()
                return HttpResponse(response)
        else:
            return HttpResponse("没有资产sn序列号,请检查数据")

    return HttpResponse('200 ok')
Ejemplo n.º 11
0
def report(request):
    if request.method == "POST":
        asset_data = request.POST.get('asset_data')
        data = json.loads(asset_data)
        if not data:
            return HttpResponse("没有数据!")
        if not issubclass(dict, type(data)):
            return HttpResponse("数据必须为字典格式!")
        sn = data.get('sn', None)
        if sn:
            asset_obj = models.Asset.objects.filter(sn=sn)
            if asset_obj:
                update_asset = asset_handler.UpdateAsset(
                    request, asset_obj[0], data)
                return HttpResponse("资产数据已经更新!")
            else:
                obj = asset_handler.NewAsset(request, data)
                response = obj.add_to_new_assets_zone()
                return HttpResponse(response)
        else:
            return HttpResponse("没有资产SN序列号请检查数据!")
    return HttpResponse('200 ok')
Ejemplo n.º 12
0
def report(request):
    if request.method == "POST":
        asset_data = request.POST.get('asset_data')
        data = json.loads(asset_data)
        # print(asset_data)
        if not data:
            return HttpResponse('未收到数据...')
        if not issubclass(dict, type(data)):
            return HttpResponse('数据必须是字典格式...')
        sn = data.get('sn', None)
        if sn:
            asset_obj = models.Asset.objects.filter(sn=sn)
            print(asset_obj)
            if asset_obj:
                update_asset = asset_handler.UpdateAsset(
                    request, asset_obj[0], data)
                return HttpResponse('数据已经更新...')
            else:
                obj = asset_handler.NewAsset(request, data)
                reponse = obj.add_to_new_asset_zone()
                return HttpResponse(reponse)
        else:
            return HttpResponse('没有资产序列,请检查...')
    return HttpResponse('200 ok! 成功收到数据!')
Ejemplo n.º 13
0
def asset_manage_update(request, asset_id):
    """
    管理如下资产的修改
    服务器 server
    网络设备 networkdevice
    安全设备 securitydevice
    存储设备 storagedevice
    软件 software
    """
    asset = models.Asset.objects.get(pk=asset_id)
    asset_type = asset.asset_type
    asset_list_page = "assets/manage/%s_list.html" % asset_type
    asset_manage_page = "assets/manage/%s_manage.html" % asset_type

    if request.method == "POST":

        data = dict(request.POST.dict())
        tags = request.POST.getlist("tags")
        data["tags"] = tags

        obj = asset_handler.UpdateAsset(request, asset, data)
        response = obj.asset_update()
        print("表单提交 %s" % asset_type)

        return redirect("/assets/asset_list/%s" % asset_type)
    ##  asset_data = request.POST.get("asset_data")
    ##  data = json.loads(asset_data)
    ##  # 各种数据检查,请自行添加和完善
    ##  if not data:
    ##      return HttpResponse("没有数据!")
    ##  if not issubclass(dict, type(data)):
    ##      return HttpResponse("数据必须为字典格式!")
    ##  # 是否携带了关键的sn号
    ##  sn = data.get('sn', None)
    ##  if sn:
    ##      # 进入审批流程
    ##      # 首先判断是否在上线资产中存在该sn
    ##      asset_obj = models.Asset.objects.filter(sn=sn)
    ##      if asset_obj:
    ##          # 进入已上线资产的数据更新流程
    ##          udpate_asset = asset_handler.UpdateAsset(request, asset_obj[0], data)
    ##          return HttpResponse("资产数据已经更新!")
    ##      else:
    ##          obj = asset_handler.NewAsset(request, data)
    ##          response = obj.add_to_new_assets_zone()
    ##          return HttpResponse(response)
    ##  else:
    ##      return HttpResponse("没有资产sn序列号,请检查数据!")
    else:
        # 用于 修改页面的下拉框,后续改为从 Redis 获取
        # server = models.Server.objects.get(asset_id=asset_id)
        asset = models.Asset.objects.get(pk=asset_id)
        businessunit = models.BusinessUnit.objects.all()
        manufacturer = models.Manufacturer.objects.all()
        tags = models.Tag.objects.all()
        users = ['张三', '李四']
        idcs = models.IDC.objects.all()
        contract = models.Contract.objects.all()

        # 根据asset_type 拼接出页面名称
        return render(request, asset_manage_page, locals())