Ejemplo n.º 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
Ejemplo n.º 2
0
    def __init__(self, app):
        browser_id = BrowserID()

        @browser_id.user_loader
        def browser_id_user_loader(login_info):
            if login_info['status'] != 'okay':
                return None
            identity_changed.send(app, identity=Identity(login_info['email'], 'user'))
            flash("Authenticated as %s" % login_info['email'], 'success')
            return User(login_info['email'])

        # TODO: call identity_changed on logout, too

        # this really shouldn't be app config, but whatever
        app.config['BROWSERID_LOGIN_URL'] = '/userauth/login'
        app.config['BROWSERID_LOGOUT_URL'] = '/userauth/logout'
        browser_id.init_app(app)
Ejemplo n.º 3
0
app = Flask(__name__)
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
Ejemplo n.º 4
0
from functools import wraps
import flask
from flask.ext.login import LoginManager, current_user
from flask.ext.browserid import BrowserID
from mptracker import models

login_manager = LoginManager()

browser_id = BrowserID()

auth = flask.Blueprint('auth', __name__)


@login_manager.user_loader
def get_user_by_id(user_id):
    return models.User.query.get(user_id)


@browser_id.user_loader
def get_user(user_data):
    assert user_data['status'] == 'okay'
    return models.User.get_or_create(email=user_data['email'])


@auth.record
def register_login(state):
    login_manager.init_app(state.app)
    browser_id.init_app(state.app)


@auth.route('/login')
Ejemplo n.º 5
0
app = Flask(__name__)
app.config.from_object('config')

# Connect to AWS
ec2 = ec2_connect(app.config['AWS_REGION'])
ses = ses_connect('us-east-1')  # only supported region!
s3 = s3_connect(app.config['AWS_REGION'])
bucket = s3.get_bucket(app.config['TEMPORARY_BUCKET'], validate=False)
code_bucket = s3.get_bucket(app.config['CODE_BUCKET'], validate=False)

# Create login manager
login_manager = LoginManager()
login_manager.anonymous_user = AnonymousUser

# Initialize browser id login
browser_id = BrowserID()

# Cron-related constants:
CRON_IDX_MIN = 0
CRON_IDX_HOUR = 1
CRON_IDX_DOM = 2
CRON_IDX_MON = 3
CRON_IDX_DOW = 4
CRON_IDX_CMD = 5


def connect_db(db_url=None):
    if db_url is None:
        db_url = app.config['DB_URL']
    db = {}
    db['engine'] = create_engine(db_url)
Ejemplo n.º 6
0
# Create flask app
app = Flask(__name__)
app.config.from_object("config")

# Connect to AWS
ec2 = ec2_connect(app.config["AWS_REGION"])
ses = ses_connect("us-east-1")  # only supported region!
s3 = s3_connect(app.config["AWS_REGION"])
bucket = s3.get_bucket(app.config["TEMPORARY_BUCKET"], validate=False)

# Create login manager
login_manager = LoginManager()
login_manager.anonymous_user = AnonymousUser

# Initialize browser id login
browser_id = BrowserID()


def abs_url_for(rule, **options):
    return urljoin(request.url_root, url_for(rule, **options))


@browser_id.user_loader
def get_user(response):
    """Create User from BrowserID response"""
    if response["status"] == "okay":
        return User(response["email"])
    return User(None)


@login_manager.user_loader
Ejemplo n.º 7
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(
Ejemplo n.º 8
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?login=Success'
browser_id.redirect_url_after_logout = '/'
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'])
Ejemplo n.º 9
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)
Ejemplo n.º 10
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")
Ejemplo n.º 11
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:
Ejemplo n.º 12
0
from flask.ext.browserid import BrowserID

#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)
Ejemplo n.º 13
0
    m = Mozillian(nickname = None, engagement = None, email = kwargs['email'])
    return m
  else:
    return None



app = Flask(__name__)

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

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.redirect_url = '/u/me'
browser_id.init_app(app)


@app.errorhandler(404)
def not_found(error):
  return make_response(jsonify({'error':'Not found'}), 404)

@app.route('/api/mozillians', methods = ['GET'])
def getMozillians():
  moz = map(lambda em: em.toDict(), Mozillian.select())

  if len(moz) == 0:
    abort(404)
Ejemplo n.º 14
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
Ejemplo n.º 15
0
    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?login=Success'
browser_id.redirect_url_after_logout = '/'
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():
Ejemplo n.º 16
0
    if kwargs['status'] == 'okay':
        m = Mozillian(nickname=None, engagement=None, email=kwargs['email'])
        return m
    else:
        return None


app = Flask(__name__)

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

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.redirect_url = '/u/me'
browser_id.init_app(app)


@app.errorhandler(404)
def not_found(error):
    return make_response(jsonify({'error': 'Not found'}), 404)


@app.route('/api/mozillians', methods=['GET'])
@cross_origin(headers=['Content-Type'])
def getMozillians():
    moz = map(lambda em: em.toDict(), Mozillian.select())