mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-03 20:02:47 +00:00 
			
		
		
		
	Move job and user delete functions to utils.py
This commit is contained in:
		@@ -6,9 +6,9 @@ from .. import db
 | 
			
		||||
from .forms import (ChangePasswordForm, LoginForm, PasswordResetForm,
 | 
			
		||||
                    PasswordResetRequestForm, RegistrationForm, EditProfileForm)
 | 
			
		||||
from ..email import send_email
 | 
			
		||||
from ..models import User, Job
 | 
			
		||||
import logging
 | 
			
		||||
from ..models import User
 | 
			
		||||
import threading
 | 
			
		||||
from app.utils import background_delete_user
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@auth.route('/login', methods=['GET', 'POST'])
 | 
			
		||||
@@ -169,30 +169,10 @@ def settings():
 | 
			
		||||
@auth.route('/settings/delete_self', methods=['GET', 'POST'])
 | 
			
		||||
@login_required
 | 
			
		||||
def delete_self():
 | 
			
		||||
    logger = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
    def background_delete(app, current_user_id):
 | 
			
		||||
        with app.app_context():
 | 
			
		||||
            logger.warning('Called by delete_thread.')
 | 
			
		||||
            logger.warning('User id is: {}.'.format(current_user_id))
 | 
			
		||||
            jobs = Job.query.join(User).filter_by(id=current_user_id).all()
 | 
			
		||||
            logger.warning('Jobs to delete are: {}'.format(jobs))
 | 
			
		||||
            for job in jobs:
 | 
			
		||||
                job.flag_for_stop()
 | 
			
		||||
                logger.warning('Job status: {}'.format(job.status))
 | 
			
		||||
                deleted = False
 | 
			
		||||
                while deleted is False:
 | 
			
		||||
                    db.session.refresh(job)
 | 
			
		||||
                    if job.status == 'deleted':
 | 
			
		||||
                        logger.warning('Job status is deleted.')
 | 
			
		||||
                        job.delete_job()
 | 
			
		||||
                        deleted = True
 | 
			
		||||
 | 
			
		||||
    delete_thread = threading.Thread(target=background_delete,
 | 
			
		||||
    delete_thread = threading.Thread(target=background_delete_user,
 | 
			
		||||
                                     args=(current_app._get_current_object(),
 | 
			
		||||
                                           current_user.id))
 | 
			
		||||
    delete_thread.start()
 | 
			
		||||
    db.session.delete(current_user)
 | 
			
		||||
    db.session.commit()
 | 
			
		||||
    logout_user()
 | 
			
		||||
    flash('Your account has been deleted!')
 | 
			
		||||
    return redirect(url_for('main.index'))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user