Correction de bugs
This commit is contained in:
parent
f5cd7021c5
commit
4bb19ff8a9
30
README.md
30
README.md
@ -1,12 +1,14 @@
|
|||||||
# Pywallter est un projet de portail communautaire pour les utilisateur d'un serveur.
|
# 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.
|
Ç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.
|
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
|
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 ...
|
on pourrait ajoute de la double authentification mais bon ...
|
||||||
|
|
||||||
|
|
||||||
## Pour démarrer le programme
|
## Installer le programme
|
||||||
|
|
||||||
### Sur OpenBSD (7.1)
|
### Sur OpenBSD (7.1)
|
||||||
Il faut installer FLask et quelques dépendances
|
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 \
|
apt install python3-flask python3-flask-bcrypt python3-wtforms python3-pil python3-markdown \
|
||||||
python3-gevent python3-zope.interface
|
python3-gevent python3-zope.interface
|
||||||
|
|
||||||
### Ensuite dans le dossier du projet tu fais :
|
## Démarrer le programme :
|
||||||
|
|
||||||
$ export FLASK_APP=pywallter.py
|
# cp config.py.example config.py
|
||||||
$ flask run
|
$ python3 pywallter.py
|
||||||
|
|
||||||
#### En serveur de production
|
#### En serveur de production
|
||||||
$ python3 wsgi.py
|
$ 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 logiciel a besoin de opensmtpd et prosody pour fonctionner.
|
||||||
Le serveur mail et xmmp se base sur le domaine de la machine.
|
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
|
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
|
||||||
|
10
pywallter.py
10
pywallter.py
@ -30,11 +30,6 @@ if init_dir():
|
|||||||
print ("Le repertoire des utilisateurs a été créer")
|
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 ####################################################################################
|
#### Variables ####################################################################################
|
||||||
|
|
||||||
|
|
||||||
@ -81,9 +76,8 @@ def create_app():
|
|||||||
app.register_blueprint(logs)
|
app.register_blueprint(logs)
|
||||||
app.register_blueprint(loginlogout)
|
app.register_blueprint(loginlogout)
|
||||||
app.register_blueprint(mygallery)
|
app.register_blueprint(mygallery)
|
||||||
|
|
||||||
return app
|
return app
|
||||||
|
|
||||||
if __name__ == '__main__' :
|
if __name__ == '__main__' :
|
||||||
hostname=gethostname()
|
app.run(host='127.0.0.1', port=8000, debug=False)
|
||||||
app.run(host='127.0.0.1', port=8080, debug=False)
|
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
<td>{{ fichier[0] }}</td>
|
<td>{{ fichier[0] }}</td>
|
||||||
<td><a href="/myfiles/{{ fichier[1] }}">{{ fichier[1] }}</a></td>
|
<td><a href="/myfiles/{{ fichier[1] }}">{{ fichier[1] }}</a></td>
|
||||||
<td>{{ fichier[2] }}</td>
|
<td>{{ fichier[2] }}</td>
|
||||||
<td><a href="{{ url_for('remove', nom=fichier[1]) }}"><button type="button" class="btn btn-sm btn-danger">Supprimer</button></a></td>
|
<td><a href="{{ url_for('filesupload.remove', nom=fichier[1]) }}"><button type="button" class="btn btn-sm btn-danger">Supprimer</button></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -36,13 +36,22 @@ def signin(token) :
|
|||||||
resp = redirect(url_for('profil.profile', _external=True))
|
resp = redirect(url_for('profil.profile', _external=True))
|
||||||
else :
|
else :
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
if not(request.form['user']) or not(request.form['passwd']) or not(request.form['mail']):
|
if not(request.form['user']) or not(request.form['passwd']) :
|
||||||
flash(u'Il faut remplir le formulaire en entier, les champs ne peuvent pas etre vide ', 'error')
|
if MAIL_SERVER:
|
||||||
return render_template('inscription.html',
|
if not(request.form['mail']):
|
||||||
signin_enable=app.config['SIGNIN_ENABLE'],
|
flash(u'Il faut remplir le formulaire en entier, les champs ne peuvent pas etre vide ', 'error')
|
||||||
token=token, hostname=hostname,
|
return render_template('inscription.html',
|
||||||
url_inscription=url_inscription,
|
signin_enable=app.config['SIGNIN_ENABLE'],
|
||||||
MAIL_SERVER=MAIL_SERVER)
|
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']
|
user = request.form['user']
|
||||||
passwd = request.form['passwd']
|
passwd = request.form['passwd']
|
||||||
|
Loading…
Reference in New Issue
Block a user