calendar-social/app/__init__.py

55 lines
1.7 KiB
Python
Raw Normal View History

# Calendar.social
# Copyright (C) 2018 Gergely Polonkai
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import os
2018-06-26 05:23:53 +00:00
from flask import Flask, render_template
from flask_babel import Babel
2018-06-29 06:03:49 +00:00
from flask_security import SQLAlchemyUserDatastore, current_user
class CalendarSocialApp(Flask):
def __init__(self, name, config=None):
2018-06-29 06:03:49 +00:00
from app.models import db, User, Role
from app.security import security
2018-06-28 12:41:14 +00:00
Flask.__init__(self, name)
config_name = os.environ.get('ENV', config or 'dev')
self.config.from_pyfile(f'config_{config_name}.py', True)
2018-06-29 06:03:49 +00:00
# Make sure we look up users both by their usernames and email addresses
self.config['SECURITY_USER_IDENTITY_ATTRIBUTES'] = ('username', 'email')
2018-06-28 12:41:14 +00:00
db.init_app(self)
babel = Babel(app=self)
2018-06-29 06:03:49 +00:00
user_store = SQLAlchemyUserDatastore(db, User, Role)
security.init_app(self, datastore=user_store)
app = CalendarSocialApp(__name__)
@app.route('/')
def hello():
2018-06-29 06:03:49 +00:00
if not current_user.is_authenticated:
return render_template('welcome.html')
return render_template('index.html')
if __name__ == '__main__':
app.run()