Beispiel #1
0
def create_app(config_filename=None):
    app = Flask(__name__)
    app.config.from_pyfile(config_filename or 'config.py')
    if 'CERTIFICATOR_SETTINGS' in os.environ:
        # Only try to load a config from it if set.
        app.config.from_envvar('CERTIFICATOR_SETTINGS')

    from .db import get_user_by_id, get_user
    login_manager = LoginManager()
    login_manager.user_loader(get_user_by_id)
    login_manager.init_app(app)

    browser_id = BrowserID()
    browser_id.user_loader(get_user)
    browser_id.init_app(app)

    Bootstrap(app)

    from .db import db as sqla
    sqla.init_app(app)
    sqla.app = app

    sqla.create_all()

    import stripe
    stripe.api_key = app.config['STRIPE_SECRET_KEY']

    from .views import root, quiz, dashboard, certificate
    app.register_blueprint(root)
    app.register_blueprint(quiz)
    app.register_blueprint(dashboard)
    app.register_blueprint(certificate)

    return app
Beispiel #2
0
app.version = "0.1a"
# Secret key can change with each new version this forces all old logins to expire :)
app.config['SECRET_KEY'] = '\xad\xdb\xe9o\x84\x03S\xa93\xc2X\x0ejlq\xad\xcd1\xb0Ub'

# Import here so database it can reach the app object.
from database.login import get_user, get_user_by_id

# Set up the authentication realm
login_manager = LoginManager()
# Point it to the function that retrieves active users
login_manager.user_loader(get_user_by_id)
login_manager.init_app(app)

# Now the actual login system
browser_id = BrowserID()
browser_id.user_loader(get_user)
browser_id.init_app(app)

@app.route("/servertime")
def time_at_server():
    """Generic default testy route. Handy for debugging."""
    return time.asctime()

@app.route("/persona/test")
def index():
    """Obsolete test for persona login."""
    return render_template("loginTest.html")

# Import application views here!
import views.index
import views.favicon
Beispiel #3
0
def get_admin(kwargs):
  try:
    admin = AdministratorModel.query.filter_by(email=kwargs['email']).first()
    return admin
  except NoResultFound:
    return None

app = Flask(__name__)

app.config['SECRET_KEY'] = "deterministic"

login_manager = LoginManager()
login_manager.user_loader(get_admin_by_id)
login_manager.init_app(app)
browser_id = BrowserID()
browser_id.user_loader(get_admin)
browser_id.redirect_url = 'admin'
browser_id.init_app(app)

@app.route('/init')
def first_run():
  import first_run
  first_run.init()
  return redirect(url_for("index"))

@app.route('/addCategory', methods=['GET', 'POST'])
def add_category():
    # categories = category_controller.list()
    # category = CategoryModel(request.form['name'])
    category_controller.create(
        name=request.form['name']
Beispiel #4
0
def load_user_by_browserid(browserid_data):
    from yelandur.models import User
    return User.get_or_create_by_email(browserid_data.get('email'))


# Create the actual blueprint
auth = Blueprint('auth', __name__)

# Create the login manager
login_manager = LoginManager()
login_manager.user_loader(load_user_by_user_id)

# Create the BrowserID manager
browser_id = BrowserID()
browser_id.user_loader(load_user_by_browserid)

# Add the after-request CORS-adding function
browser_id.views.after_request(add_cors_headers)


@cors()
def debug_login():
    from yelandur.models import User
    try:
        user_id = request.args['id']
        u = User.get(user_id)
        if not u:
            abort(404)
        login_user(u)
        return "Logged '{}' in".format(user_id)
Beispiel #5
0
# Secret key can change with each new version this forces all old logins to expire :)
app.config[
    'SECRET_KEY'] = '\xad\xdb\xe9o\x84\x03S\xa93\xc2X\x0ejlq\xad\xcd1\xb0Ub'

# Import here so database it can reach the app object.
from database.login import get_user, get_user_by_id

# Set up the authentication realm
login_manager = LoginManager()
# Point it to the function that retrieves active users
login_manager.user_loader(get_user_by_id)
login_manager.init_app(app)

# Now the actual login system
browser_id = BrowserID()
browser_id.user_loader(get_user)
browser_id.init_app(app)


@app.route("/servertime")
def time_at_server():
    """Generic default testy route. Handy for debugging."""
    return time.asctime()


@app.route("/persona/test")
def index():
    """Obsolete test for persona login."""
    return render_template("loginTest.html")

Beispiel #6
0
def get_admin(kwargs):
  try:
    admin = AdministratorModel.query.filter_by(email=kwargs['email']).first()
    return admin
  except NoResultFound:
    return None

app = Flask(__name__)

app.config['SECRET_KEY'] = "deterministic"

login_manager = LoginManager()
login_manager.user_loader(get_admin_by_id)
login_manager.init_app(app)
browser_id = BrowserID()
browser_id.user_loader(get_admin)
browser_id.redirect_url = 'admin'
browser_id.init_app(app)

@app.route('/init')
def first_run():
  import first_run
  first_run.init()
  return redirect(url_for("index"))

@app.route('/addCategory', methods=['GET', 'POST'])
def add_category():
    # categories = category_controller.list()
    # category = CategoryModel(request.form['name'])
    try:
        category_controller.create(
Beispiel #7
0
#from formencode import Invalid

from grano.core import app
from grano.model import User

from grano.views.sessions import blueprint as sessions
from grano.views.users import blueprint as users
from grano.views.projects import blueprint as projects

login_manager = LoginManager()
login_manager.user_loader(User.by_email)
login_manager.init_app(app)

browser_id = BrowserID()
browser_id.user_loader(User.from_browserid)
browser_id.init_app(app)

app.register_blueprint(sessions, url_prefix='/api/1')
app.register_blueprint(users, url_prefix='/api/1')
app.register_blueprint(projects, url_prefix='/api/1')


def angular_templates():
    #if app.config.get('ASSETS_DEBUG'):
    #    return
    partials_dir = os.path.join(app.static_folder, 'templates')
    for (root, dirs, files) in os.walk(partials_dir):
        for file_name in files:
            file_path = os.path.join(root, file_name)
            with open(file_path, 'rb') as fh:
Beispiel #8
0
from flask.ext.misaka import Misaka
from flask_mail import Mail
from application import config, models

app = Flask(__name__)
app.config.from_object(config)
app.config.from_pyfile('../config.py', silent=True)
app.config.from_envvar('NARCRO_CONFIG', silent=True)

models.bind(app)
db = models.db

from application.session import SQLSession
app.session_interface = SQLSession()

login_manager = LoginManager()
login_manager.user_loader(models.get_user_by_id)
login_manager.init_app(app)

browser_id = BrowserID()
browser_id.user_loader(models.get_user_from_browserid)
browser_id.init_app(app)

Misaka(app, fenced_code=True, html=True, strikethrough=True, superscript=True,
       tables=True, toc=True, xhtml=False, intra_emphasis=False)

mail = Mail(app)

import application.hooks
import application.routes
Beispiel #9
0
@app.route("/checkdomain/<string:domain>")
def checkdomain(domain):
    return jsonify({"valid": check_domain_available(domain)})


# default fallback
@app.route("/<string:template>")
def show_template(template):
    return render_template(template + '.html')


#### APP CONFIGURATION

## Database teardown
@app.teardown_appcontext
def shutdown_session(exception=None):
    db_session.remove()

# This should go into a config file
app.secret_key = config.SESSION_SECRET
app.add_url_rule("/", endpoint='/', redirect_to="/packages")

# Add Login Management
login_manager = LoginManager()
login_manager.user_loader(get_user_by_id)
login_manager.init_app(app)

browser_id = BrowserID()
browser_id.user_loader(get_user_from_browserid)
browser_id.init_app(app)