From 3e1c9439eccf1f2bb00f3f80c9f236dc689d3cdb Mon Sep 17 00:00:00 2001 From: kitoy Date: Sun, 21 Dec 2025 19:27:16 +0100 Subject: [PATCH] =?UTF-8?q?Remove=20Variable=20Global=20incoh=C3=A9rence?= =?UTF-8?q?=20in=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- views/profil.py | 67 +++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 35 deletions(-) diff --git a/views/profil.py b/views/profil.py index 982337d..efe90ba 100644 --- a/views/profil.py +++ b/views/profil.py @@ -5,6 +5,7 @@ from markupsafe import escape import time import sqlite3 import os +import subprocess from shutil import copy from socket import gethostname from flask_bcrypt import Bcrypt @@ -372,12 +373,12 @@ def invitation(): @profil.route('/gen_token/', methods=['GET']) @login_required def generate_token(): - UTILISATEUR='%s' % escape(session['username']) + user='%s' % escape(session['username']) conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée cursor = conn.cursor() # Création de l'objet "curseur" token = gen_token("Invitation") cursor.execute("UPDATE users SET Token=? WHERE name=?", - (token, UTILISATEUR)) + (token, user)) conn.commit() conn.close() return redirect(BASE_URL+'invitation/') @@ -386,62 +387,58 @@ def generate_token(): @profil.route( '/delete_me/', methods=['GET','POST']) @login_required def delete_account(): - UTILISATEUR='%s'% escape(session['username']) + user='%s'% escape(session['username']) resp = render_template('delete_account.html', time_backup=BACKUP_TIME) if request.method == 'POST' : conn = sqlite3.connect(DATABASE) # Connexion à la base de donnée cursor = conn.cursor() # Création de l'objet "curseur" - cursor.execute("""SELECT passwd FROM users WHERE name=?""", (UTILISATEUR,)) + cursor.execute("""SELECT passwd FROM users WHERE name=?""", (user,)) passwd = cursor.fetchone()[0] - cursor.execute("""SELECT mail FROM users WHERE name=?""", (UTILISATEUR,)) + cursor.execute("""SELECT mail FROM users WHERE name=?""", (user,)) mail = cursor.fetchone()[0] conn.close() - password = request.form['passwd'] + password = str(request.form['passwd']) if bcrypt.check_password_hash(passwd, password) is True: not_error = True - + # Delete mail account if MAIL_SERVER: try: - cmd = SETUID + ' set_mail_passwd del ' + '"'+mail+'"' - print(cmd) - os.system(cmd) + cmd = subprocess.run([SETUID, 'set_mail_passwd','del',mail]) except: not_error = False flash(u'Erreur lors de la suppression de votre compte Mail.', 'error') - - + # Delete the XMPP account if XMPP_SERVER: try: - tmp = mail.split('@') - cmd = SETUID+ ' prosodyctl deluser ' "'"+tmp[0]+"' " + "'"+tmp[1]+"'" - os.system(cmd) + cmd = subprocess.run([SETUID,'prosodyctl', 'deluser', mail]) + print(str(cmd)) except: not_error = False flash(u'Erreur lors de la suppression de votre compte XMPP.', 'error') + + # Delete files + try: + cmd = subprocess.run(['rm', '-r', DATAS_USER + '/' + user]) + print(str(cmd)) + if cmd.returncode != 0: + raise TypeError("Remove directory error") + except: + flash(u'Erreur lors de la suppression de votre dossier utilisateur.', 'error') + not_error = False + if not_error: - try: - cmd = 'rm -r ' + DATAS_USER + '/' + UTILISATEUR - if os.system(cmd) != 0: - raise TypeError("Remove directory error") - except: - flash(u'Erreur lors de la suppression de votre dossier utilisateur.', 'error') - - - try: - conn = sqlite3.connect(DATABASE) - cursor = conn.cursor() - cursor.execute("""DELETE FROM users WHERE name=?""", (UTILISATEUR,)) - cursor.execute("""DELETE FROM posts WHERE author=?""", (UTILISATEUR,)) - conn.commit() - conn.close() - except: - flash(u'Erreur lors de la suppression de votre compte.', 'error') - else: - flash(u'Désinscription réalisé avec succés, y\'a plus rien !', 'succes') - resp = redirect(url_for('loginlogout.logout')) + conn = sqlite3.connect(DATABASE) + cursor = conn.cursor() + cursor.execute("""DELETE FROM users WHERE name=?""", (user,)) + cursor.execute("""DELETE FROM Blog_posts WHERE author=?""", (user,)) + conn.commit() + conn.close() + flash(u'Désinscription réalisé avec succés, y\'a plus rien !', 'success') + resp = redirect(url_for('loginlogout.logout')) else: flash(u'Mauvais mot de passe', 'error') + return resp