示例#1
0
def create_app(settings_override=None):
    """Returns an API application instance."""

    # Create and extend a minimal application
    app = framework.create_app(__name__, __path__, settings_override, security_register_blueprint=False)

    # Initialize extensions
    app.extensions['classy_api'] = ClassyAPI(app, catch_all_404s=True)

    # Register API
    bp = create_blueprint()
    register_blueprint(app, bp)

    # Log the sent email to the console
    if app.debug:
        import logging
        from flask_security.signals import user_registered
        from flask import url_for

        _log = logging.getLogger(__name__)
        user_registered.connect(lambda(user, confirm_token): _log.info(
            '{0} registered, confirm at {1}'.format(user, url_for('security.confirm_email', token=confirm_token))
        ))

    return app
示例#2
0
def registrations(app):
    records = []

    def record(sender, *args, **kwargs):
        records.append(kwargs)
    user_registered.connect(record, app)

    try:
        yield records
    finally:
        user_registered.disconnect(record, app)
示例#3
0
        def connect_signals():
            """Connect OAuthClient signals."""
            from invenio_oauthclient.signals import account_info_received
            from flask_security.signals import user_registered

            from .utils import (
                _create_and_associate_local_user,
                _create_and_associate_oauth_user,
            )

            account_info_received.connect(_create_and_associate_oauth_user)
            user_registered.connect(_create_and_associate_local_user)
示例#4
0
def capture_registrations():
    """Testing utility for capturing registrations."""
    registrations = []

    def _on(app, **data):
        registrations.append(data)

    user_registered.connect(_on)

    try:
        yield registrations
    finally:
        user_registered.disconnect(_on)
示例#5
0
    def test_confirm_email(self):
        e = '*****@*****.**'

        tokens = []
        def on_registered(sender, **kwargs):
            tokens.append(kwargs['confirm_token'])

        user_registered.connect(on_registered, self.app)

        r = self.register(e)
        self.assertEqual(len(tokens), 1)
        r = self.client.get('/confirm/' + tokens[0], follow_redirects=True)
        msg = self.app.config['SECURITY_MSG_EMAIL_CONFIRMED'][0]
        self.assertIn(msg.encode('utf-8'), r.data)
示例#6
0
        for c in User.query.filter_by(batch_id=str(id)).order_by('id').all()
    ]
    print(choices)
    return choices


# @app.route('/create_trainer')
# @app.before_first_request
# def crt():
# 	user_datastore.create_user(leap_id='LS180000090', password=encrypt_password('qwerty'),first_name='Trainer', last_name='Trainer')
# 	db.session.commit()


def leap_id_gen(id):
    num = format(id, "06d")
    l_id = "LS18" + num
    return l_id


def user_registered_sighandler(sender, **extra):
    user = extra.get('user')
    role = user_datastore.find_or_create_role('student')
    user_datastore.add_role_to_user(user, role)
    user.leap_id = leap_id_gen(user.id)
    db.session.commit()


user_registered.connect(user_registered_sighandler)

if __name__ == '__main__':
    app.run()