From 4bb19ff8a9da7546fbbcdc7446a8fa2a3ed079e7 Mon Sep 17 00:00:00 2001 From: kitoy Date: Mon, 22 Aug 2022 05:34:56 +0200 Subject: [PATCH] Correction de bugs --- README.md | 30 ++++++++++++++++++++++-------- pywallter.py | 10 ++-------- templates/up_list.html | 2 +- views/inscription.py | 23 ++++++++++++++++------- 4 files changed, 41 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index fbcbe57..10e4723 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,14 @@ -# Pywallter est un projet de portail communautaire pour les utilisateur d'un serveur. -ça demande juste un identifiant et un mot de passe et voila. +# Pywallter est un projet de portail communautaire pour les utilisateurs d'un serveur. +Ça demande juste un identifiant et un mot de passe et voila. +Si les serveurs Mail et/ou XMPP sont configurer pywallter peut à gerer les alias et le mot de passe pour son compte mail et XMPP On peut y importer des fichiers que l'on pourra rendre accèssible en public par la suite. Je voulais tester cette idée de post-it pour que les utilisateur puisse s'échanger des messages -ou que les admins puisse faire des annonces... On verra +ou que les admins puisse faire des annonces... +On verra on pourrait ajoute de la double authentification mais bon ... -## Pour démarrer le programme +## Installer le programme ### Sur OpenBSD (7.1) Il faut installer FLask et quelques dépendances @@ -21,10 +23,10 @@ Il reste malheuresment une dépendances sur flask-bcrypt a installé avec pip: apt install python3-flask python3-flask-bcrypt python3-wtforms python3-pil python3-markdown \ python3-gevent python3-zope.interface -### Ensuite dans le dossier du projet tu fais : +## Démarrer le programme : - $ export FLASK_APP=pywallter.py - $ flask run + # cp config.py.example config.py + $ python3 pywallter.py #### En serveur de production $ python3 wsgi.py @@ -36,4 +38,16 @@ Et ça devrait démarrer sans soucis. Le logiciel a besoin de opensmtpd et prosody pour fonctionner. Le serveur mail et xmmp se base sur le domaine de la machine. Les scripts dans le dossier scripts sont la à titre d'exemple et peuvent être copié dans /usr/local/bin -si vous la configuration présenté dans le wiki +Une configuration fonctionnelle de prosody et opensmtpd est disponible dans le wiki. + +## Comment ça fonctionne ? +Globalement le programme stocke les fichiers des utilisateurs dans un dossiers, les fichiers de tous types +sont stocker dans le dossier files et les images sont mis dans le dossier images et son consultable dans le menu gallerie. +Pour les comptes XMPP le programme fait un appel à prosodyctl. +Pour les comptes mail vous devez avoir deux programmes set_mail_alias et set_mail_passwd. + +Les appels pour le compte mail se font ainsi : + set_mail_passwd example@votredomaine.fr 'le mot de passe' + + set_mail_alias example@votredomaine.fr add monalias@votredomaine.fr + set_mail_alias example@votredomaine.fr del monalias@votredomaine.fr diff --git a/pywallter.py b/pywallter.py index 5001e05..c7677f6 100755 --- a/pywallter.py +++ b/pywallter.py @@ -30,11 +30,6 @@ if init_dir(): print ("Le repertoire des utilisateurs a été créer") - -# Set the secret key. Keep this really secret -#app.secret_key = 'klfkdlfkdslfkln234325;cx!' # Chiffre les cookies si j'ai bien capté. -# À générer aléatoirement impérativement avant de mettre en ligne. - #### Variables #################################################################################### @@ -81,9 +76,8 @@ def create_app(): app.register_blueprint(logs) app.register_blueprint(loginlogout) app.register_blueprint(mygallery) - + return app if __name__ == '__main__' : - hostname=gethostname() - app.run(host='127.0.0.1', port=8080, debug=False) + app.run(host='127.0.0.1', port=8000, debug=False) diff --git a/templates/up_list.html b/templates/up_list.html index b5b663a..a4c94a6 100644 --- a/templates/up_list.html +++ b/templates/up_list.html @@ -23,7 +23,7 @@ {{ fichier[0] }} {{ fichier[1] }} {{ fichier[2] }} - + {% endfor %} {% endif %} diff --git a/views/inscription.py b/views/inscription.py index 16bbf8e..57a3ac5 100644 --- a/views/inscription.py +++ b/views/inscription.py @@ -36,13 +36,22 @@ def signin(token) : resp = redirect(url_for('profil.profile', _external=True)) else : if request.method == 'POST': - if not(request.form['user']) or not(request.form['passwd']) or not(request.form['mail']): - flash(u'Il faut remplir le formulaire en entier, les champs ne peuvent pas etre vide ', 'error') - return render_template('inscription.html', - signin_enable=app.config['SIGNIN_ENABLE'], - token=token, hostname=hostname, - url_inscription=url_inscription, - MAIL_SERVER=MAIL_SERVER) + if not(request.form['user']) or not(request.form['passwd']) : + if MAIL_SERVER: + if not(request.form['mail']): + flash(u'Il faut remplir le formulaire en entier, les champs ne peuvent pas etre vide ', 'error') + return render_template('inscription.html', + signin_enable=app.config['SIGNIN_ENABLE'], + token=token, hostname=hostname, + url_inscription=url_inscription, + MAIL_SERVER=MAIL_SERVER) + else: + flash(u'Il faut remplir le formulaire en entier, les champs ne peuvent pas etre vide ', 'error') + return render_template('inscription.html', + signin_enable=app.config['SIGNIN_ENABLE'], + token=token, hostname=hostname, + url_inscription=url_inscription, + MAIL_SERVER=MAIL_SERVER) user = request.form['user'] passwd = request.form['passwd']