Example #1
0
def login_message(app):
    lm = LoginManager()
    lm.login_view = "login"
    lm.login_message = u"Log in or the owl will eat you."
    lm.setup_app(app)
    lm.unauthorized()
    assert u"Log in or the owl will eat you." in get_flashed_messages()
Example #2
0
def unauthorized_redirect(app):
    lm = LoginManager()
    lm.login_view = "login"
    lm.setup_app(app)
    res = lm.unauthorized()
    assert res.headers["Location"] == "/login?next=%2F"
    assert LOGIN_MESSAGE in get_flashed_messages()
Example #3
0
def setup_interactive(app):
    lm = LoginManager()
    lm.login_view = "login"
    lm.user_loader(get_user)
    @lm.unauthorized_handler
    def unauth():
        return "UNAUTHORIZED!"
    lm.setup_app(app)
Example #4
0
def unauthorized_callback(app):
    lm = LoginManager()
    lm.login_view = "login"
    @lm.unauthorized_handler
    def unauth():
        return "UNAUTHORIZED!"
    lm.setup_app(app)
    assert lm.unauthorized() == "UNAUTHORIZED!"
    assert len(get_flashed_messages()) == 0
Example #5
0
def logging_in(app):
    lm = LoginManager()
    lm.login_view = "login"
    lm.user_loader(get_user)
    lm.setup_app(app)
    app.preprocess_request()
    assert not current_user.is_authenticated()
    assert current_user.is_anonymous()
    with assert_fired(user_logged_in):
        login_user(notch)
    assert current_user.name == u"Notch"
    assert session["user_id"] == u"1"
Example #6
0
def configure_login_manager(app):
    login_manager = LoginManager()
    login_manager.setup_app(app)
    login_manager.login_view = "login"
    login_manager.login_message = u"You must login!"

    @login_manager.user_loader
    def load_user(user_id):
        beaker_session = request.environ['beaker.session']
        beaker_user_id = beaker_session['user_id']
        #user = User()
        #user.id = beaker_user_id #use user_id in beaker!
        return user
Example #7
0
File: users.py Project: doublea/sfc
def create_users_blueprint(app, _db, login_redirect_view='main'):
    global db
    db = _db

    from .models import User
    from .forms import LoginForm, RegisterForm

    users_blueprint = Blueprint('users', __name__, template_folder='templates', static_folder='static')

    bcrypt = Bcrypt(app)

    login_manager = LoginManager()
    login_manager.setup_app(app)
    login_manager.login_view = 'users.login'

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

    @users_blueprint.route('/login/', methods=['GET', 'POST'])
    def login():
        form = LoginForm()
        if form.validate_on_submit():
            user = User.query.filter_by(email=form.email.data).first()
            if user is None or bcrypt.check_password_hash(user.password, form.password):
                flash("Invalid email or password", "error")
            else:
                login_user(user)
                flash("Login successful", 'success')
                return redirect(url_for(login_redirect_view))
        return render_template('users/login.html', form=form)

    @users_blueprint.route('/logout/')
    @login_required
    def logout():
        logout_user()
        return redirect(url_for(login_redirect_view))

    @users_blueprint.route('/register/', methods=['GET', 'POST'])
    def register():
        form = RegisterForm()
        if form.validate_on_submit():
            user = User(form.email.data, bcrypt.generate_password_hash(form.password.data))
            db.session.add(user)
            db.session.commit()
            login_user(user)
            flash("Login successful")
            return redirect(url_for(login_redirect_view))
        return render_template('users/register.html', form=form)

    return users_blueprint
Example #8
0
    def init_app(self, app):
        if app is None:
            return

        blueprint = Blueprint(AUTH_CONFIG_KEY.lower(), __name__)

        config = default_config.copy()
        try:
            config.update(app.config.get(AUTH_CONFIG_KEY, {}))
        except:
            pass
        app.config[AUTH_CONFIG_KEY] = config

        app.logger.debug("Auth Configuration: %s" % config)

        # setup the login manager extension
        login_manager = LoginManager()
        login_manager.anonymous_user = Anonymous
        login_manager.login_view = config[LOGIN_VIEW_KEY]
        login_manager.setup_app(app)

        # get some things form the config
        Provider = get_class_from_config(AUTH_PROVIDER_KEY, config)
        Encryptor = get_class_from_config(PASSWORD_ENCRYPTOR_KEY, config)
        Form = get_class_from_config(LOGIN_FORM_CLASS_KEY, config)

        # create the service and auth provider and add it to the app
        # so it can be referenced elsewhere
        app.login_manager = login_manager
        app.password_encryptor = Encryptor(config[SALT_KEY])
        app.auth_provider = Provider(Form)

        DEBUG_LOGIN = "******"
        ERROR_LOGIN = "******"
        DEBUG_LOGOUT = "User logged out, redirecting to: %s"
        FLASH_INACTIVE = "Inactive user"

        @login_manager.user_loader
        def load_user(id):
            try:
                return user_service.get_user_with_id(id)
            except Exception, e:
                current_app.logger.error("Error getting user: %s" % e)
                return None
Example #9
0
    def init_app(self, app):
        if app is None: return

        blueprint = Blueprint(AUTH_CONFIG_KEY.lower(), __name__)

        config = default_config.copy()
        try:
            config.update(app.config.get(AUTH_CONFIG_KEY, {}))
        except:
            pass
        app.config[AUTH_CONFIG_KEY] = config

        app.logger.debug("Auth Configuration: %s" % config)

        # setup the login manager extension
        login_manager = LoginManager()
        login_manager.anonymous_user = Anonymous
        login_manager.login_view = config[LOGIN_VIEW_KEY]
        login_manager.setup_app(app)

        # get some things form the config
        Provider = get_class_from_config(AUTH_PROVIDER_KEY, config)
        Encryptor = get_class_from_config(PASSWORD_ENCRYPTOR_KEY, config)
        Form = get_class_from_config(LOGIN_FORM_CLASS_KEY, config)

        # create the service and auth provider and add it to the app
        # so it can be referenced elsewhere
        app.login_manager = login_manager
        app.password_encryptor = Encryptor(config[SALT_KEY])
        app.auth_provider = Provider(Form)

        DEBUG_LOGIN = '******'
        ERROR_LOGIN = '******'
        DEBUG_LOGOUT = 'User logged out, redirecting to: %s'
        FLASH_INACTIVE = 'Inactive user'

        @login_manager.user_loader
        def load_user(id):
            try:
                return user_service.get_user_with_id(id)
            except Exception, e:
                current_app.logger.error('Error getting user: %s' % e)
                return None
Example #10
0
@app.errorhandler(404)
def page_not_found(e):
    return render_template('cms_404.html'), 404

@app.errorhandler(500)
def page_not_found(e):
    return render_template('cms_500.html'), 500



########################## User Authentication and Registration ##########################

login_manager = LoginManager()
login_manager.setup_app(app)
login_manager.login_view = "/login/"
login_manager.login_message = u"You need to login to access this resource."

class User(UserMixin):
    
    def __init__(self, email, key_id):
        self.name = email
        self.id = key_id
        self.user = db.get(self.id)
    
    def is_active(self):
        if self.user.active == True:
            return True
        else:
            return False
    
Example #11
0
from flask import Flask, redirect, request, url_for
www = Flask(__name__)
www.config.from_pyfile('../config.cfg')

from flaskext.login import LoginManager, current_user
login = LoginManager()
login.setup_app(www, add_context_processor=True)
login.login_view = 'login'

from flaskext.sqlalchemy import SQLAlchemy
db = SQLAlchemy(www)

from flaskext.mail import Mail
mail = Mail(www)

from flaskext.bcrypt import Bcrypt
bcrypt = Bcrypt(www)

from www import tweaks
from www import main
from www import user
from www.menu import register
from werkzeug.utils import import_string
from flask.ext import admin
from flask.ext.admin.datastore.sqlalchemy import SQLAlchemyDatastore

'''
example config line:
WWW_BLUEPRINTS=[('www.blog',{'url_prefix': '/blog'}, ('blog', '/blog')),\
				('www.contact',{'url_prefix': '/contact'}, ('contact', '/contact')]
'''
Example #12
0
import hashlib
from flaskext.login import LoginManager
from model.models import User

login_manager = LoginManager()
login_manager.login_view = "login"


@login_manager.user_loader
def load_user(user_id):
    """Used by Flask-Login to get a user by its id."""
    try:
        ret = User.query.get(user_id)
        ret.authenticated = True
    except Exception as ex:
        print type(ex)
        print ex
        ret = None
    return ret


def check_login(username, password):
    """Checks whether or not the given username and password are valid."""
    user = User.query.filter(User.username ==
            username).first()
    if user:
        hasher = hashlib.sha1()
        salt, pwd = user.password.split('$', 2)
        hasher.update(salt + password)
        if hasher.hexdigest() == pwd:
            user.authenticated = True
Example #13
0
login_manager = LoginManager()

import pwdmanager
from pwdmanager import LmfdbUser, LmfdbAnonymousUser

# TODO update this url, needed for the user login token
base_url = "http://www.l-functions.org"


@login_manager.user_loader
def load_user(userid):
    from pwdmanager import LmfdbUser
    return LmfdbUser(userid)


login_manager.login_view = "users.info"

# this anonymous user has the is_admin() method
login_manager.anonymous_user = LmfdbAnonymousUser


# globally define the user and username
@app.context_processor
def ctx_proc_userdata():
    userdata = {}
    userdata['username'] = '******' if current_user.is_anonymous(
    ) else current_user.name
    userdata['user_is_authenticated'] = current_user.is_authenticated()
    userdata['user_is_admin'] = current_user.is_admin()
    return userdata
Example #14
0
from flaskext.login import LoginManager
login_manager = LoginManager()

import pwdmanager
from pwdmanager import LmfdbUser, LmfdbAnonymousUser

# TODO update this url, needed for the user login token
base_url = "http://www.l-functions.org"

@login_manager.user_loader
def load_user(userid):
  from pwdmanager import LmfdbUser
  return LmfdbUser(userid) 

login_manager.login_view = "users.info"

# this anonymous user has the is_admin() method
login_manager.anonymous_user = LmfdbAnonymousUser

# globally define the user and username
@app.context_processor
def ctx_proc_userdata():
  userdata = {}
  userdata['username'] = '******' if current_user.is_anonymous() else current_user.name
  userdata['user_is_authenticated'] =  current_user.is_authenticated()
  userdata['user_is_admin'] = current_user.is_admin()
  return userdata

# blueprint specific definition of the body_class variable
@login_page.context_processor
Example #15
0
USERS = {1: User(u"Notch", 1), 2: User(u"Steve", 2), 3: User(u"Creeper", 3, False)}

USER_NAMES = dict((u.name, u) for u in USERS.itervalues())


app = Flask(__name__)

SECRET_KEY = "yeah, not actually a secret"
DEBUG = True

app.config.from_object(__name__)

login_manager = LoginManager()

login_manager.anonymous_user = Anonymous
login_manager.login_view = "login"
login_manager.login_message = u"Please log in to access this page."
login_manager.refresh_view = "reauth"


@login_manager.user_loader
def load_user(id):
    return USERS.get(int(id))


login_manager.setup_app(app)


@app.route("/")
def index():
    return render_template("index.html")
Example #16
0
        self.id = id
        self.name = name
        self.active = active

    def is_active(self):
        return self.active


class Anonymous(AnonymousUser):
    name = u"Anonymous"


login_manager = LoginManager()

login_manager.anonymous_user = Anonymous
login_manager.login_view = "account"
login_manager.login_message = u"Please log in to access this page."
login_manager.refresh_view = "reauth"

from ims import app

login_manager.setup_app(app)


@login_manager.user_loader
def load_user(id):
    try:
        return LoginUser(int(id), User.query.get(id).username)
    except:
        return None
Example #17
0
# -*- coding:utf-8 -*-
import os

from flask import Flask, request, render_template, flash, redirect, url_for
from flaskext.login import LoginManager, login_required, login_user, logout_user

from diandou import app
from diandou.models import Movie, db, User
from diandou.utils import get_movie, douban_search

login_manager = LoginManager()
login_manager.setup_app(app)
login_manager.login_view = 'login'


@login_manager.user_loader
def load_user(userid):
    return User.query.get(userid)


@app.route("/login", methods=["GET", "POST"])
def login():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        user = User.query.authenticate(username, password)
        if user is None:
            flash('Login failed.')
            return redirect(url_for('login'))
        else:
            login_user(user)
Example #18
0
    import logging
    from logging import FileHandler
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    file_handler = FileHandler('%s/app.logger.log' % app.config['APPROOT'])
    file_handler.setLevel(logging.WARNING)
    file_handler.setFormatter(formatter)
    app.logger.addHandler(file_handler)
    
    
# Auth
from flaskext.login import LoginManager
from user.models import User
login_manager = LoginManager()
login_manager.setup_app(app)
login_manager.login_message = u'请先登录'
login_manager.login_view = 'user.login'
@login_manager.user_loader
def load_user(user_id):
    return User.query.get(user_id)
    

# Principal 权限控制器
from user.models import User
from flaskext.principal import Principal, identity_loaded, RoleNeed, \
                               UserNeed
principals = Principal(app)

@identity_loaded.connect_via(app)
def on_identity_loaded(sender, identity):
    user = User.query.get(identity.name)
    for role in user.role_list:
Example #19
0
from flaskext.login import LoginManager
from models import User

#flask-login
login_manager = LoginManager()
login_manager.login_view = "public.login"
#login
@login_manager.user_loader
def load_user(userid):
    return User.query.get(userid)
Example #20
0
# encoding=utf-8

from flask import g
from flaskext.login import LoginManager, AnonymousUser
from calepin.models import Blog

login_manager = LoginManager()

AnonymousUser.json = {}

login_manager.anonymous_user = AnonymousUser
login_manager.login_view = "frontend.site"

@login_manager.user_loader
def get_user(id):
    return Blog.query.get(id)
Example #21
0
    ADMINS = app.config.get('ADMINS', '')
    if not app.debug and ADMINS:
        mail_handler = SMTPHandler('127.0.0.1',
                                   '*****@*****.**',
                                   ADMINS, 'error')
        mail_handler.setLevel(logging.ERROR)
        app.logger.addHandler(mail_handler)

from logging.handlers import RotatingFileHandler
from logging import Formatter
def setup_logging(app):
    log_file_path = app.config.get('LOG_FILE')
    log_level = app.config.get('LOG_LEVEL', logging.WARN)
    if log_file_path:
        file_handler = RotatingFileHandler(log_file_path)
        file_handler.setFormatter(Formatter(
            '%(name)s:%(levelname)s:[%(asctime)s] %(message)s '
            '[in %(pathname)s:%(lineno)d]'
            ))
        file_handler.setLevel(log_level)
        app.logger.addHandler(file_handler)
        logger = logging.getLogger('pybossa')
        logger.setLevel(log_level)
        logger.addHandler(file_handler)

login_manager = LoginManager()
login_manager.login_view = "/account/signin"
login_manager.login_message = u"Please sign in to access this page."
app = create_app()

Example #22
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""Authentication data models."""

import datetime

from flask import Blueprint
from flaskext.login import LoginManager, UserMixin
from micromongo import *

login_manager = LoginManager()
login_manager.login_view = "auth.login"

blueprint = Blueprint("auth", __name__,
    template_folder="templates",
    static_folder="static",
)

class User(Model, UserMixin):
    collection = "jmoiron.user"
    spec = {
        "username": Field(required=True),
        "password": Field(required=True),
        "email": Field(required=True),
    }

    def get_id(self):
        return self.username

Example #23
0
# shut up useless SA warning:
import warnings; 
warnings.filterwarnings('ignore', 'Unicode type received non-unicode bind param value.')
from sqlalchemy.exc import SAWarning
warnings.filterwarnings('ignore', category=SAWarning)
from migrate.versioning.util import construct_engine

from flask import Flask
from flaskext.login import LoginManager, current_user
from flaskext.sqlalchemy import SQLAlchemy

from grano import default_settings

app = Flask(__name__)
app.config.from_object(default_settings)
app.config.from_envvar('GRANO_SETTINGS', silent=True)

db = SQLAlchemy(app)

login_manager = LoginManager()
login_manager.setup_app(app)
login_manager.login_view = 'account.login'
Example #24
0
    
app = create_app()
app.secret_key = str(uuid.uuid4())

login_manager = LoginManager()

login_manager.setup_app(app)

@login_manager.user_loader
def load_user(userid):
    return HubUser.find(userid)

#load up some configuration settings
app.config.from_object('hubology.settings')

login_manager.login_view = "/sign-in"
login_manager.login_message = u"Please sign in to access hub-ology."

#Setup 404 handler
@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404
    
#Setup 500 handler
@app.errorhandler(500)
def internal_server_error(e):
    if current_user:
        from hubology.views.sign_out import sign_out
        sign_out()
    return render_template('500.html'), 500
Example #25
0
from flaskext.login import LoginManager, login_required, login_user, logout_user
from flask.ext.sqlalchemy import *

import ldap
from lib.ldapuser import LDAPUser

import json

from apps.addressbook.addressbook import addressbook

login_manager = LoginManager()
app = Flask(__name__)
app.debug = True
app.secret_key = 'foobar'
login_manager.setup_app(app)
login_manager.login_view = 'login'
#app.config.from_pyfile('test1.cfg')
#db = SQLAlchemy(app)

server = 'ldap://ford.fachschaft.cs.uni-kl.de'

l = ldap.initialize(server)

@login_manager.user_loader
def load_user(user_id):
	user = LDAPUser(l, user_id)
	if user.get_id:
		return user
	else:
		return None
Example #26
0
def setup_logging(app):
    log_file_path = app.config.get("LOG_FILE")
    log_level = app.config.get("LOG_LEVEL", logging.WARN)
    if log_file_path:
        file_handler = RotatingFileHandler(log_file_path)
        file_handler.setFormatter(
            Formatter("%(name)s:%(levelname)s:[%(asctime)s] %(message)s " "[in %(pathname)s:%(lineno)d]")
        )
        file_handler.setLevel(log_level)
        app.logger.addHandler(file_handler)
        logger = logging.getLogger("pybossa")
        logger.setLevel(log_level)
        logger.addHandler(file_handler)


login_manager = LoginManager()
login_manager.login_view = "account.signin"
login_manager.login_message = u"Please sign in to access this page."
app = create_app()

cache = Cache(config=app.config)

cache.init_app(app)

# toolbar = DebugToolbarExtension(app)
db = SQLAlchemy(app)
mail = Mail(app)
signer = URLSafeTimedSerializer(app.config["ITSDANGEORUSKEY"])
if app.config.get("SENTRY_DSN"):
    sentr = Sentry(app)