예제 #1
0
파일: auth.py 프로젝트: next-exec/nextres
    def __init__(self, app):
        AuthController.instance = self
        self.manager = LoginManager(app)
        self.manager.login_message = None
        self.manager.login_view = 'certificates'
        self.authorize = Authorize(app)

        @app.errorhandler(Unauthorized)
        def unauthorized(_):
            return render_template('auth/nonresident.html'), 403

        @app.route('/certificates')
        def certificates():
            return render_template('auth/certificates.html',
                                   base=app.config['BASE_URL'])

        @self.manager.request_loader
        def load_kerberos(_):
            email = getenv('SSL_CLIENT_S_DN_Email')
            if email:
                return first_or_instance(User, kerberos=email.split('@')[0])
예제 #2
0
from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_login import LoginManager
from flask_authorize import Authorize
from flask_mail import Mail, Message

app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
login = LoginManager(app)
authorize = Authorize(app)
mail = Mail(app)

from app import routes, models, errors

if __name__ == "__main__":
    app.run(debug=True)
예제 #3
0
# application
# -----------
class Config(object):
    ENV = 'testing'
    TESTING = True
    SQLALCHEMY_ECHO = False
    PROPAGATE_EXCEPTIONS = False
    SQLALCHEMY_DATABASE_URI = 'sqlite:///{}/app.db'.format(SANDBOX)
    AUTHORIZE_ALLOW_ANONYMOUS_ACTIONS = True


app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
authorize = Authorize(app, current_user=lambda: g.user)

# models
# ------
UserGroup = db.Table(
    'user_group', db.Model.metadata,
    db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
    db.Column('group_id', db.Integer, db.ForeignKey('groups.id')))

UserRole = db.Table(
    'user_role', db.Model.metadata,
    db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
    db.Column('role_id', db.Integer, db.ForeignKey('roles.id')))


class User(db.Model):
예제 #4
0
from flask_authorize import Authorize
from flask_login import current_user
authorize = Authorize()
예제 #5
0
            (
                "The environment variable FLASK_DEBUG is being overidden by "
                "the configuration option 'debug' ({})"
            ).format(options["debug"])
        )
    os.environ["FLASK_DEBUG"] = options["debug"]

# continue the setup
mail = Mail()
cors = CORS()
compress = Compress()

bootstrap = Bootstrap()

jwt = flask_jwt_extended.JWTManager()
authorize = Authorize(current_user=flask_jwt_extended.get_current_user)
moment = Moment()

db = SQLAlchemy()
ma = Marshmallow()


@jwt.user_lookup_loader
def user_loader_callback(jwt_header, jwt_payload):
    """Function for app, to return user object"""

    if jwt_header:
        from seamm_datastore.database.models import User

        username = jwt_payload["sub"]["username"]
        user = User.query.filter_by(username=username).one_or_none()