# 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 . import os from flask import Flask, render_template from flask_babel import Babel from flask_security import SQLAlchemyUserDatastore, current_user class CalendarSocialApp(Flask): def __init__(self, name, config=None): from app.models import db, User, Role from app.security import security Flask.__init__(self, name) config_name = os.environ.get('ENV', config or 'dev') self.config.from_pyfile(f'config_{config_name}.py', True) # Make sure we look up users both by their usernames and email addresses self.config['SECURITY_USER_IDENTITY_ATTRIBUTES'] = ('username', 'email') db.init_app(self) babel = Babel(app=self) user_store = SQLAlchemyUserDatastore(db, User, Role) security.init_app(self, datastore=user_store) app = CalendarSocialApp(__name__) @app.route('/') def hello(): if not current_user.is_authenticated: return render_template('welcome.html') return render_template('index.html') if __name__ == '__main__': app.run()