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'))
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")
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")
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")
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')
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")
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")
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')
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')
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")
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")
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')