mail configuration
This commit is contained in:
parent
253db849ff
commit
e19f1b50c6
33
app.py
33
app.py
|
@ -8,6 +8,7 @@ from flask_sqlalchemy import SQLAlchemy
|
||||||
from flask_security import Security, SQLAlchemyUserDatastore, auth_required, hash_password, uia_email_mapper
|
from flask_security import Security, SQLAlchemyUserDatastore, auth_required, hash_password, uia_email_mapper
|
||||||
from flask_security.models import fsqla_v2 as fsqla
|
from flask_security.models import fsqla_v2 as fsqla
|
||||||
from flask_security.forms import LoginForm, Required, PasswordField
|
from flask_security.forms import LoginForm, Required, PasswordField
|
||||||
|
from flask_mail import Mail
|
||||||
import bleach
|
import bleach
|
||||||
|
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
@ -16,10 +17,18 @@ from door_handle import DoorHandle
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument("--token_file", default="/etc/door_tokens")
|
parser.add_argument("--token_file", default="/etc/door_tokens", help="path to the file with door tokens and users")
|
||||||
parser.add_argument("--template_folder", default="/usr/share/door_admin/templates")
|
parser.add_argument("--template_folder", default="/usr/share/door_admin/templates", help="path to Flask templates folder")
|
||||||
parser.add_argument("--static_folder", default="/usr/share/door_admin/static")
|
parser.add_argument("--static_folder", default="/usr/share/door_admin/static", help="path to Flask static folder")
|
||||||
parser.add_argument("--mqtt_host", default="10.10.21.2")
|
parser.add_argument("--mqtt_host", default="10.10.21.2", help="IP address of MQTT broker")
|
||||||
|
parser.add_argument("--port", default=5000, help="Port for running the Flask server")
|
||||||
|
parser.add_argument("--mail_server", default="smtp.googlemail.com", help="email server for sending security messages")
|
||||||
|
|
||||||
|
parser.add_argument("--mail_port", default=465, help="port for security email server")
|
||||||
|
parser.add_argument("--mail_use_tls", default=False, help="use TLS for security emails")
|
||||||
|
parser.add_argument("--mail_use_ssl", default=True, help="use SSL for security emails")
|
||||||
|
parser.add_argument("--mail_username", default="admin@example.com", help="email account for sending security messages")
|
||||||
|
parser.add_argument("--mail_password", default="password", help="Password for email account")
|
||||||
config = parser.parse_args()
|
config = parser.parse_args()
|
||||||
|
|
||||||
# create door objects which provides access to the token file and current door state via MQTT
|
# create door objects which provides access to the token file and current door state via MQTT
|
||||||
|
@ -44,6 +53,20 @@ app.config['SECURITY_USER_IDENTITY_ATTRIBUTES'] = [
|
||||||
{"email": {"mapper": uia_email_mapper, "case_insensitive": True}},
|
{"email": {"mapper": uia_email_mapper, "case_insensitive": True}},
|
||||||
{"username": {"mapper": uia_username_mapper}}
|
{"username": {"mapper": uia_username_mapper}}
|
||||||
]
|
]
|
||||||
|
app.config['SECURITY_CHANGEABLE'] = True
|
||||||
|
app.config['SECURITY_RECOVERABLE'] = True
|
||||||
|
app.config['SECURITY_SEND_PASSWORD_CHANGE_EMAIL'] = False
|
||||||
|
|
||||||
|
# Mail Config
|
||||||
|
app.config['MAIL_SERVER'] = config.mail_server
|
||||||
|
app.config['MAIL_PORT'] = config.mail_port
|
||||||
|
app.config['MAIL_USE_TLS'] = config.mail_use_tls
|
||||||
|
app.config['MAIL_USE_SSL'] = config.mail_use_ssl
|
||||||
|
app.config['MAIL_USERNAME'] = config.mail_username
|
||||||
|
app.config['MAIL_PASSWORD'] = config.mail_password
|
||||||
|
app.config['MAIL_DEFAULT_SENDER'] = app.config['MAIL_USERNAME']
|
||||||
|
mail = Mail(app)
|
||||||
|
|
||||||
|
|
||||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///admin.db'
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///admin.db'
|
||||||
# As of Flask-SQLAlchemy 2.4.0 it is easy to pass in options directly to the
|
# As of Flask-SQLAlchemy 2.4.0 it is easy to pass in options directly to the
|
||||||
|
@ -267,4 +290,4 @@ def deactivate_token(token):
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(host='0.0.0.0')
|
app.run(host='0.0.0.0', port=config.port)
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<title>Space Token Administration - {% block title %}{% endblock %}</title>
|
<title>Space Token Administration - {% block title %}{% endblock %}</title>
|
||||||
<!--<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">-->
|
|
||||||
<nav>
|
<nav>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="{{ url_for('door_lock') }}">Home</a>
|
<li><a href="{{ url_for('door_lock') }}">Home</a>
|
||||||
<li><a href="{{ url_for('register') }}">Token Registrierung</a>
|
<li><a href="{{ url_for('register') }}">Token Registrierung</a>
|
||||||
<li><a href="{{ url_for('list_tokens') }}">Token Übersicht</a>
|
<li><a href="{{ url_for('list_tokens') }}">Token Übersicht</a>
|
||||||
{% if g.user %}
|
{% if current_user.is_authenticated %}
|
||||||
<li><span>{{ g.user['username'] }}</span>
|
<li><a href="{{ url_for('security.change_password') }}">Passwort ändern</a>
|
||||||
<li><a href="{{ url_for('security.logout') }}">Log Out</a>
|
<li><a href="{{ url_for('security.logout') }}">Benutzer <span>{{ current_user.username }}</span> ausloggen</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<li><a href="{{ url_for('security.login') }}">Log In</a>
|
<li><a href="{{ url_for('security.login') }}">Einloggen</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user