mirror of
				https://github.com/retspen/webvirtcloud
				synced 2025-07-31 12:41:08 +00:00 
			
		
		
		
	not superuser delete instance causes delete for all corresponding user_instances (not only current user)
This commit is contained in:
		
							parent
							
								
									8148620025
								
							
						
					
					
						commit
						bc0552e12e
					
				
					 1 changed files with 6 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -229,7 +229,7 @@ def instance(request, compute_id, vname):
 | 
			
		|||
                                      usr_inst.instance.compute.type)
 | 
			
		||||
                wvm_instance = conn.get_user_instances(usr_inst.instance.name)
 | 
			
		||||
                cpu += int(wvm_instance['vcpu'])
 | 
			
		||||
                memory += int(wvm_instance['memory'])/1024
 | 
			
		||||
                memory += int(wvm_instance['memory'])
 | 
			
		||||
        
 | 
			
		||||
        ua = request.user.userattributes
 | 
			
		||||
        if ua.max_instances > 0 and instance > ua.max_instances:
 | 
			
		||||
| 
						 | 
				
			
			@ -325,15 +325,11 @@ def instance(request, compute_id, vname):
 | 
			
		|||
                instance_name = instance.name
 | 
			
		||||
                instance.delete()
 | 
			
		||||
 | 
			
		||||
                if not request.user.is_superuser:
 | 
			
		||||
                    del_userinstance = UserInstance.objects.get(id=userinstace.id)
 | 
			
		||||
                try:
 | 
			
		||||
                    del_userinstance = UserInstance.objects.filter(instance__compute_id=compute_id, instance__name=vname)
 | 
			
		||||
                    del_userinstance.delete()
 | 
			
		||||
                else:
 | 
			
		||||
                    try:
 | 
			
		||||
                        del_userinstance = UserInstance.objects.filter(instance__compute_id=compute_id, instance__name=vname)
 | 
			
		||||
                        del_userinstance.delete()
 | 
			
		||||
                    except UserInstance.DoesNotExist:
 | 
			
		||||
                        pass
 | 
			
		||||
                except UserInstance.DoesNotExist:
 | 
			
		||||
                    pass
 | 
			
		||||
 | 
			
		||||
                msg = _("Destroy")
 | 
			
		||||
                addlogmsg(request.user.username, instance_name, msg)
 | 
			
		||||
| 
						 | 
				
			
			@ -585,7 +581,7 @@ def instance(request, compute_id, vname):
 | 
			
		|||
                        new_uuid = conn.clone_instance(clone_data)
 | 
			
		||||
                        new_instance = Instance(compute_id=compute_id, name=clone_data['name'], uuid=new_uuid)
 | 
			
		||||
                        new_instance.save()
 | 
			
		||||
                        userinstance = UserInstance(instance_id=new_instance.id, user_id=request.user.id)
 | 
			
		||||
                        userinstance = UserInstance(instance_id=new_instance.id, user_id=request.user.id, is_delete=True)
 | 
			
		||||
                        userinstance.save()
 | 
			
		||||
 | 
			
		||||
                        msg = _("Clone of '%s'" % instance.name)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue