Example #1
0
def settings_delete(request, project_id):
    """项目删除"""
    if request.method == 'GET':
        return render(request, 'web/settings_delete.html')

    if request.method == 'POST':
        project_name = request.POST.get('project_name')

        if not project_name or project_name != request.tracer.project.name:
            return render(request, 'web/settings_delete.html',
                          {'error': "项目名错误"})

        # 删除项目
        if request.tracer.user != request.tracer.project.create_user:
            return render(request, 'web/settings_delete.html',
                          {'error': "不是项目创建者,无法删除"})

        # 删除桶文件及桶
        delete_bucket(request.tracer.project.bucket,
                      request.tracer.project.region)

        # 删除数据库文件
        Project.objects.filter(id=request.tracer.project.id).delete()

        # 重定向到项目首页
        return redirect(reverse('web:project_list'))
Example #2
0
def delete(request, project_id):
    """删除项目"""
    if request.method == 'GET':
        return render(request, 'setting_delete.html')

    # setting_delete.html中input框中name参数
    # <input type="text" class="form-control" placeholder="请输入项目名称" name="project_name">
    project_name = request.POST.get('project_name')
    if not project_name or project_name != request.tracer.project.name:
        return render(request, 'setting_delete.html', {'error': "项目名错误"})

    # 项目名写对了则删除, 只有项目创建者才能删除项目
    if request.tracer.user != request.tracer.project.creator:
        return render(request, 'setting_delete.html',
                      {'error': "只有项目创建者才能删除项目"})

    # 1. 删除桶
    #    - 删除桶中的所有文件(找到桶中的所有文件+删除文件)
    #    - 删除桶中的所有文件碎片(找到桶中的所有文件+删除碎片)
    #    - 删除桶
    # 2. 删除项目并且返回项目列表页面
    delete_bucket(request.tracer.project.bucket, request.tracer.project.region)
    models.Project.objects.filter(id=request.tracer.project.id).delete()

    return redirect("project_list")
Example #3
0
def delete(request, project_id):
    """删除项目"""
    if request.method == 'GET':
        return render(request, 'setting_delete.html')

    project_name = request.POST.get('project_name')
    if not project_name or project_name != request.tracer.project.name:
        return render(request, 'setting_delete.html', {'error': "项目名错误"})

    # 项目名写对了则删除(只有创建者可以删除)
    if request.tracer.user != request.tracer.project.creator:
        return render(request, 'setting_delete.html',
                      {'error': "只有项目创建者可删除项目"})

    # 1. 删除桶
    #       - 删除桶中的所有文件(找到桶中的所有文件 + 删除文件 )
    #       - 删除桶中的所有碎片(找到桶中的所有碎片 + 删除碎片 )
    #       - 删除桶
    # 2. 删除项目
    #       - 项目删除

    delete_bucket(request.tracer.project.bucket, request.tracer.project.region)
    models.Project.objects.filter(id=request.tracer.project.id).delete()

    return redirect("project_list")
Example #4
0
def delete(request, project_id):
    """
    删除项目
    :param request:
    :param project_id:
    :return:
    """
    if request.method == "GET":
        return render(request, "setting_delete.html")
    project_name = request.POST.get("project_name")
    if not project_name or project_name != request.tracer.project.name:
        return render(request, "setting_delete.html", {"error": "项目名错误"})
    # 项目名写对了就删除(创建者和当前登录者可以删除)
    if request.tracer.user != request.tracer.project.creator:
        return render(request, "setting_delete.html",
                      {"error": "只有项目创建者可删除项目"})
    # 1、删除桶
    #    -- 删除桶中的所有文件(找到桶中的所有文件 + 删除文件)
    #    -- 删除桶中的所有碎片(找到桶中的所有碎片 + 删除碎片)
    #    -- 删除桶
    # 2、删除项目
    #    --项目删除
    delete_bucket(request.tracer.project.bucket, request.tracer.project.region)
    models.Project.objects.filter(id=request.tracer.project.id).delete()

    return redirect("project_list")
Example #5
0
def delete(request, project_id):
    if request.method == 'GET':
        return render(request, 'web/setting_delete.html')

    project_name = request.POST.get('project_name')

    if request.lxyker.user != request.lxyker.project.creator:
        return render(request, 'web/setting_delete.html', {'error': '权限不足!'})
    if not project_name or project_name != request.lxyker.project.name:
        return render(request, 'web/setting_delete.html', {'error': '项目名称不正确!'})

    # 执行删除项目操作:1、删除cos中的桶;2、删除数据库中的所有文件
    delete_bucket(request.lxyker.project.bucket, request.lxyker.project.region)
    models.Project.objects.filter(id=project_id).delete()

    return redirect('project_list')
Example #6
0
def delete(request, project_id):
    if request.method == 'GET':
        return render(request, 'setting_delete.html')
    project_name = request.POST.get('project_name')
    if not project_name or project_name != request.blog.project.name:
        return render(request, 'setting_delete.html', {'error': '项目名错误'})
    if request.blog.user != request.blog.project.creator:
        return render(request, 'setting_delete.html',
                      {'error': '没有权限仅有项目创建者可以删除该项目'})

    #删除桶和删除项目
    delete_bucket(request.blog.project.bucket, request.blog.project.region)
    models.Project.objects.filter(
        id=project_id, creator=request.blog.project.creator).delete()

    return redirect("project_list")
Example #7
0
def settings_delete(request, project_id):
    if request.method == "GET":
        return render(request, 'settings_delete.html')
    project_name = request.POST.get('project_name').strip('')
    if not project_name or project_name != request.userInfo.project.name:
        return render(request, 'settings_delete.html', {"error": '项目不存在'})
    if request.userInfo.user != request.userInfo.project.creator:
        return render(request, 'settings_delete.html',
                      {'error': "只有项目创建者可删除项目"})
    # 删除项目
    # 1.先删除桶(先删除桶所有的文件和文件碎片,再删除桶)
    # 2.再删除数据库
    delete_bucket(bucket_name=request.userInfo.project.bucket,
                  bucket_region=request.userInfo.project.region)
    models.Project.objects.filter(id=project_id).delete()
    return redirect("app01:project_list")
Example #8
0
def delete(request, project_id):
    if request.method == 'GET':
        return render(request, 'setting_delete.html')

    project_name = request.POST.get('project_name')
    if not project_name or project_name != request.tracer.project.name:
        return render(request, 'setting_delete.html', {'error': '项目名错误'})
    if request.tracer.user != request.tracer.project.creator:
        return render(request, 'setting_delete.html', {'error': '只有项目创建者才能删除项目'})

    # 删除桶
    delete_bucket(request.tracer.project.bucket, request.tracer.project.region)
    # 删除项目
    models.Project.objects.filter(id=project_id).delete()

    return redirect('web:project_list')
Example #9
0
def setting_delete(request,project_id):
    """删除项目"""
    if request.method == 'GET':
        return render(request,'setting_delete.html')

    project_name = request.POST.get('project_name')
    if not project_name or project_name != request.saas.project.name:
        return render(request, 'setting_delete.html',{'error':'项目名错误'})

    #项目名对了删除(只有创建者可以删除)
    if request.saas.user != request.saas.project.creator:
        return render(request, 'setting_delete.html',{'error':'本项目只有创建者才可以删除'})

    #1.删除桶(先删除文件(和碎片),才可以删除桶),
    #2.删除项目
    delete_bucket(request.saas.project.bucket,request.saas.project.region)
    Project.objects.filter(id=request.saas.project.id).delete()
    return redirect('project_list')
Example #10
0
def delete(request, project_id):
    """删除项目"""
    if request.method == 'GET':
        return render(request, 'web/setting_delete.html')
    project_name = request.POST.get('project_name')
    if not project_name or project_name != request.bug_mgt.project.name:
        return render(request, 'web/setting_delete.html', {'error': "项目名错误"})
    # 项目名写对了则从数据库中删除(只有创建者才能删除当前项目)
    if request.bug_mgt.user != request.bug_mgt.project.creator:
        return render(request, 'web/setting_delete.html',
                      {'error': "只有项目创建者才能删除项目"})
    # 删除桶
    #   -删除桶中的所有文件(找到桶,再删除桶中所有的文件)
    #   -删除桶中的所有碎片,(当上传很大文件的过程中中断网页等操作,会产生文件碎片)
    # 删除项目
    delete_bucket(request.bug_mgt.project.bucket,
                  request.bug_mgt.project.region)
    models.Project.objects.filter(id=request.bug_mgt.project.id).delete()

    return redirect("project_list")
Example #11
0
    def post(self, request, project_id):
        project_name = request.POST.get("project_name")
        if not project_name or project_name != request.tracer.project.name:
            return render(request, 'manages/instal/delete.html',
                          {"error": "项目名错误!"})

        # 这时候说明项目名是正确的
        if request.tracer.user != request.tracer.project.creator:
            return render(request, 'manages/instal/delete.html',
                          {"error": "只有项目创建者可以删除项目"})
        """
        创建者执行删除:
            - 删除桶:
                - 找到并删除桶中的所有文件
                - 找到并删除桶中的所有碎片
                - 删除桶
            - 删除项目
        """
        delete_bucket(request.tracer.project.bucket,
                      request.tracer.project.region)
        Project.objects.filter(id=request.tracer.project.id).delete()
        return redirect("project:list")
Example #12
0
def setting_delete(request, project_id):
    """ 删除项目 """
    if request.method == 'GET':
        return render(request, 'setting_delete.html')

    project_name = request.POST.get('project_name')
    if not project_name or project_name != request.tracer.project.name:
        return render(request, 'setting_delete.html', {'error': '项目名错误'})

    # 项目名写对了删除
    if request.tracer.user != request.tracer.project.creator:
        return render(request, 'setting_delete.html', {'error': '只有项目创建者可删除项目'})

    # 删除桶
    # - 删除桶中的所有文件
    # - 删除桶中的所有碎片
    # - 删除桶
    # 删除项目
    # - 项目删除
    delete_bucket(request.tracer.project.bucket, request.tracer.project.region)

    models.ProjectInfo.objects.filter(id=request.tracer.project.id).delete()
    return redirect('project_list')