Exemplo n.º 1
0
def create_app():
    app = Flask(__name__, static_folder="./static", template_folder="./static")
    CORS(app)
    bcrypt = flask_bcrypt.Bcrypt(app)

    # infrastructure initialization and registration
    init_bd_mysql(app)
    app.config["hasher"] = bcrypt

    # error handlers
    init_authentication_error_handler(app)
    init_playlists_error_handler(app)
    init_search_error_handler(app)

    # blueprint routes registration
    app.register_blueprint(home)
    app.register_blueprint(authentication)
    app.register_blueprint(albums)
    app.register_blueprint(artists)
    app.register_blueprint(search)
    app.register_blueprint(songs)
    app.register_blueprint(profiles)
    app.register_blueprint(playlists)
    app.register_blueprint(artists)

    return app
Exemplo n.º 2
0
def get_hashed_password(password):
    """
    :param password: string (password)
    :return: empty string if password is empty or bcrypt - generated hash of the password
    """
    if password == "":
        return password

    bcrypt = flask_bcrypt.Bcrypt()
    return bcrypt.generate_password_hash(password)
Exemplo n.º 3
0
import flask_bcrypt as _fb
import flask_migrate as _fm
import flask_sqlalchemy as _fs
import json

db = _fs.SQLAlchemy()
migrate = _fm.Migrate(db=db)
bcrypt = _fb.Bcrypt()


def init_app(app, **kwargs):
    db.app = app
    db.init_app(app)
    migrate.init_app(app)


from sqlalchemy.inspection import inspect


class Serializer(object):
    def serialize(self):
        return {c: getattr(self, c) for c in inspect(self).attrs.keys()}

    @staticmethod
    def serialize_list(l):
        return [m.serialize() for m in l]


from .example import ExampleData
Exemplo n.º 4
0
from flask import Flask, render_template, request, redirect
import flask_mongoengine
import flask_login
import flask_bcrypt

import os

app = Flask(__name__)

app.config['MONGODB_SETTINGS'] = {'host': os.environ.get('MONGOLAB_URI', 'mongodb://localhost/demo')}
app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY', 'secret-key')

db = flask_mongoengine.MongoEngine(app)
app.session_interface = flask_mongoengine.MongoEngineSessionInterface(db)

flask_bcrypt = flask_bcrypt.Bcrypt(app)

login_manager = flask_login.LoginManager()
login_manager.init_app(app)

from auth import auth
app.register_blueprint(auth)

from app import auth, models, forms
Exemplo n.º 5
0
import ssl
import smtplib
import threading
import email
import flask
import flask_bcrypt
import flask_uploads
from urllib.parse import urlparse, urljoin

# Note that if a module imports this as only "bcrypt", it will override
# the actual `bcrypt` library if imported. To avoid namespace issues,
# do instead: `from flasquelistan import util; util.bcrypt(...)`
bcrypt = flask_bcrypt.Bcrypt()

image_uploads = flask_uploads.UploadSet('images', flask_uploads.IMAGES)


def send_email(toaddr, subject, body):
    """Send an email with SMTP & STARTTLS.

    Uses the best security defaults according to the python documentation at
    the time of writing:
    https://docs.python.org/3/library/ssl.html#ssl-security

    "[ssl.create_default_context()] will load the system’s trusted CA
    certificates, enable certificate validation and hostname checking, and try
    to choose reasonably secure protocol and cipher settings."
    """

    msg = email.message.EmailMessage()
    msg.set_content(body)
Exemplo n.º 6
0
import flask

from flaskshop import app
# from flaskshop.database import battels
# from flaskshop.database import db
from flaskshop.database import photo as photo_model  # pylint: disable=unused-import
from flaskshop.database import membership
from flaskshop.helpers import util
#DB = db.DB
from flaskshop.app import oussshopdb as DB

APP = app.APP

from werkzeug.security import generate_password_hash, check_password_hash

BCRYPT = bcrypt.Bcrypt(APP)


class User(DB.Model):
    """Model for users."""
    __tablename__ = 'user'

    object_id = DB.Column(DB.Integer, primary_key=True)

    # Class level properties for Flask-Login
    #
    # Sessions don't expire, and no users are anonymous, so these can be hard
    # coded
    is_authenticated = True
    is_anonymous = False
Exemplo n.º 7
0
import config
import flask
import flask_bcrypt
import flask_login
import flask_sqlalchemy

tgeni = flask.Flask(__name__)
tgeni.config.from_object('config.Config')

# set up password encryption
crypt = flask_bcrypt.Bcrypt(tgeni)

# initialize database settings
db = flask_sqlalchemy.SQLAlchemy(tgeni)

# initialize login settings
login_manager = flask_login.LoginManager()
login_manager.login_view = 'signin'
login_manager.init_app(tgeni)

# expose packages
from app import views, models
Exemplo n.º 8
0
app.config["ENABLE_BROWSER_HASH_CHECK"] = False
app.config["BCRYPT_LOG_ROUNDS"] = 15  # Number Of Rounds To Hash With Bcrypt
app.config["JSONIFY_PRETTYPRINT_REGULAR"] = False  # Fixes: https://github.com/pallets/flask/issues/2549

# Generate Secret Configs If Not Present
instance_folder = pathlib.Path('instance')
if not instance_folder.is_dir():
    warnings.warn("No Instance Folder: It will now be created")
    instance_folder.mkdir()
    conf_file = instance_folder / "config.py"
    conf_file.write_text("SECRET_KEY='{sk}'".format(sk=os.urandom(64).hex()))
app.config.from_pyfile('config.py')

# Load Plugins
db = flask_sqlalchemy.SQLAlchemy(app)  # ORM - Handles Database Operations
bcrypt = flask_bcrypt.Bcrypt(app)  # Handles Password Hashing


###########
# HELPERS #
###########

@app.shell_context_processor
def make_shell_context() -> Dict:
    """Helps In Development By Making All Variables Available For Testing"""
    return globals()


@app.cli.command()
def init() -> None:
    """Performs All Functions Needed To Initialise The App