Beispiel #1
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:
                #进入已上线资产的更新流程
                pass
                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")
Beispiel #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)
        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')
Beispiel #3
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')
Beispiel #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:
        # 进入审批流程
        # 首先判断是否在上线资产中存在该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("成功收到数据!")
Beispiel #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 = 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')
Beispiel #6
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')
Beispiel #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('没有数据!')
        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')
Beispiel #8
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')
Beispiel #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号
        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')
Beispiel #10
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')
Beispiel #11
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')
Beispiel #12
0
def report(request):
    if request.method == 'POST':
        asset_data = request.POST.get('asset_data')
        data = json.loads(asset_data)
        if not data:
            print('上报的数据为空')
        if not issubclass(dict,type(data)):
            print('数据必须为字典格式')
        sn = data.get('sn',None)
        if sn:
            asset_obj = models.Asset.objects.filter(sn=sn)
            if asset_obj:
                pass
                return HttpResponse('资产数据已更新')
            else:
                obj = asset_handler.NewAsset(data)
                response = obj.add_to_new_zone()
                return HttpResponse(response)
        else:
            return HttpResponse('没有资产序列号,请检查数据')
Beispiel #13
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')
Beispiel #14
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! 成功收到数据!')
Beispiel #15
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:
            asset_obj = models.Asset.objects.filter(sn=sn)
            if asset_obj:
                pass
                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('服务器获取到数据!')
    return HttpResponse("200")
Beispiel #16
0
def asset_manage_new(request, asset_type):
    if request.method == "POST":

        # data = dict()
        # # general assets info
        # data["asset_type"] = asset_type
        # data["business_unit"] = request.POST.get("business_unit")
        # data["name"] = request.POST.get("name")
        # data["sn"] = request.POST.get("sn")
        # data["status"] = request.POST.get("status")
        # data["manufacturer"] = request.POST.get("manufacturer")
        # data["manage_ip"] = request.POST.get("manage_ip")
        # data["idc"] = request.POST.get("idc")
        # data["admin"] = request.POST.get("admin")
        # data["approved_by"] = request.POST.get("approved_by")
        # data["contract"] = request.POST.get("contract")
        # data["price"] = request.POST.get("price")
        # data["purchase_day"] = request.POST.get("purchase_day")
        # data["expire_day"] = request.POST.get("expire_day")
        # data["tags"] = request.POST.get("tags")
        # data["remark"] = request.POST.get("remark")

        # data = dict(request.POST.lists())     # request 的 POST、GET 属性都是 QueryDict 实例,lists() 是 QueryDict 的方法,格式与dict控件兼容,可以用于以字典的形式返回所有 POST 中的值,此处用于直接将request 的 form 表单中的所有值转换为字典类型
        data = dict(request.POST.dict())        # lists() 转换为 dict 对象后,每一个item 的value 均为 list 类型;使用 dict() 方法 转换后的value 为 string 类型,但要对真实存在的list value 进行处理
        # request.POST.dict() 处理 list 类型的 value时只返回 list的最后一个值,需要额外处理
        tags = request.POST.getlist("tags")
        data["tags"] = tags

        # 各类别独有信息处理
        obj = asset_handler.NewAsset(request, data)
        response = obj.add_to_new_assets_zone()

        created_by = request.POST.get("created_by")
        # 手动录入提交,成功返回资产列表,失败返回录入页面重新修改
        if created_by == "manual":
            if response:
                assets = models.Asset.objects.filter(asset_type=asset_type)
                asset_list_page = "assets/manage/%s_list.html" % asset_type
                return render(request, asset_list_page, locals())
            else:
                asset_manage_page = "assets/manage/%s_manage_new.html" % asset_type
                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()
                return render(request, asset_manage_page, locals())
        # 自动录入,即 client 传输过来的数据,直接返回 response,也即 True/False
        else:
            return HttpResponse(response)
    else:
        asset_manage_page = "assets/manage/%s_manage_new.html" % asset_type
        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()

        return render(request, asset_manage_page, locals())