Beispiel #1
0
class UserInvitation(db.Model):
    __tablename__ = 'user_invite'
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), nullable=False)
    # save the user of the invitee
    invited_by_user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    # token used for registration page to identify user registering
    token = db.Column(db.String(100), nullable=False, server_default='')

def password_validator(form, field):
    if len(field.data) < 8:
        raise wtforms.validators.ValidationError('Password must have at least 8 characters')

# Setup Flask-User. Creating the UserManager will register all kinds of stuff,
# such as routes for login, register, etc.
db_adapter = flask_user.SQLAlchemyAdapter(database.sqla, User, UserInvitationClass=UserInvitation)
user_manager = flask_user.UserManager(
                app=app,
                db_adapter=db_adapter,
                password_validator=password_validator,
)

@app.cli.command('invite')
@click.argument('email')
def initdb_command(email):
    """Invite a user to this project."""
    user_invite = db_adapter.add_object(
                db_adapter.UserInvitationClass,
                    email = email,
                    invited_by_user_id = -1,
                )
Beispiel #2
0
from ntg_common import db_tools
from ntg_common.exceptions import EditException

import login
import main
import info
import static
import textflow
import comparison
import editor
import set_cover
import checks

dba = flask_sqlalchemy.SQLAlchemy()
user, _role, _roles_users = login.declare_user_model_on(dba)
db_adapter = flask_user.SQLAlchemyAdapter(dba, user)
login_manager = flask_login.LoginManager()
login_manager.anonymous_user = login.AnonymousUserMixin
user_manager = flask_user.UserManager(db_adapter)
mail = flask_mail.Mail()


class Config():
    """ Default configuration object. """

    APPLICATION_HOST = 'localhost'
    APPLICATION_PORT = 5000
    APPLICATION_DESCRIPTION = ''
    CONFIG_FILE = '_global.conf'  # default = ./instance/_global.conf
    STATIC_FOLDER = 'static'
    STATIC_URL_PATH = 'static'
Beispiel #3
0
    # because heroku will capture and log that output
    app.logger.addHandler(logging.StreamHandler())
    app.logger.setLevel(logging.INFO)

# We have to import these after defining app, api and db as these
# imports will be looking for those variables.
import backend.common.auth as auth
import backend.common.response as response
import backend.missions.views as mission_views
import backend.organizations.views as organization_views
import backend.quests.views as quest_views
import backend.questions.views as question_views
import backend.users.models as user_models
import backend.users.views as user_views

db_adapter = flask_user.SQLAlchemyAdapter(db, user_models.User)
flask_user.UserManager(db_adapter, app)


@app.route('/')
def index():
    """Return the index page."""
    return app.send_static_file('index.html')


@app.route('/app')
@flask_user.login_required
@response.no_cache
def app_page():
    """Return the javascript for the app."""
    return app.send_static_file('app.html')
Beispiel #4
0
import flask_migrate
import sqlalchemy
import wtforms

# flask app setup
app = flask.Flask(__name__)
app.config.from_object(config)
migrate = flask_migrate.Migrate(app, models.db)

manager = flask_migrate.Manager(app)
manager.add_command('db', flask_migrate.MigrateCommand)

models.db.init_app(app)  # ???
# flask user
mail = flask_mail.Mail(app)
db_adapter = flask_user.SQLAlchemyAdapter(models.db, models.User)
user_manager = flask_user.UserManager(db_adapter, app)


class AddUrlForm(wtforms.Form):
    """Validation and fields for the form/page which allows a user
    to save/add a URL/link.

    """

    url = wtforms.StringField(
        'url',
        [
            wtforms.validators.URL(require_tld=True),
        ],
        render_kw={