photofloat/scanner/floatapp/login.py

36 lines
631 B
Python

from flask import abort
from flask_login import UserMixin, LoginManager
login_manager = LoginManager()
class User(UserMixin):
def __init__(self, id, admin=False):
self.admin = admin
self.id = id
def __unicode__(self):
return u"{}".format(self.id)
def __str__(self):
return str(self.id)
@property
def is_admin(self):
return self.admin
admin_user = User("admin", True)
@login_manager.user_loader
def load_user(id):
if id == "admin":
return admin_user
return User(id)
@login_manager.unauthorized_handler
def unauthorized():
return abort(403)