mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-06-12 00:50:40 +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