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()
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()
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)
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
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"
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
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
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
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
@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
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')] '''
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
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
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
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")
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
# -*- 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)
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:
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)
# 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)
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()
#!/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
# 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'
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
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
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)