ldap second pass, working state
This commit is contained in:
parent
838eb3cb06
commit
e9709b6c8f
6 changed files with 37 additions and 28 deletions
|
@ -1,24 +1,38 @@
|
|||
from flask import current_app, render_template
|
||||
from flask import render_template
|
||||
from flask.ext.login import login_user
|
||||
from realms import ldap
|
||||
from flask_ldap_login import LDAPLoginForm
|
||||
from ..models import BaseUser
|
||||
import bcrypt
|
||||
|
||||
|
||||
users = {}
|
||||
|
||||
@ldap.save_user
|
||||
def save_user(username, userdata):
|
||||
users[username] = User(username, userdata)
|
||||
return users[username]
|
||||
user = User(userdata.get('username'), userdata.get('email'))
|
||||
users[user.id] = user
|
||||
return user
|
||||
|
||||
class User(BaseUser):
|
||||
type = 'ldap'
|
||||
|
||||
def __init__(self, username, data):
|
||||
def __init__(self, username, email='null@localhost.local', password=None):
|
||||
self.id = username
|
||||
self.username = username
|
||||
self.data = data
|
||||
self.email = email
|
||||
self.password = password
|
||||
|
||||
@property
|
||||
def auth_token_id(self):
|
||||
return self.password
|
||||
|
||||
@staticmethod
|
||||
def load_user(*args, **kwargs):
|
||||
return User.get_by_id(args[0])
|
||||
|
||||
@staticmethod
|
||||
def get_by_id(user_id):
|
||||
return users.get(user_id)
|
||||
|
||||
@staticmethod
|
||||
def login_form():
|
||||
|
@ -26,6 +40,13 @@ class User(BaseUser):
|
|||
return render_template('auth/ldap/login.html', form=form)
|
||||
|
||||
@staticmethod
|
||||
def auth(*args):
|
||||
login_user(args[0].user, remember=True)
|
||||
return True
|
||||
def auth(user, password):
|
||||
password = User.hash_password(password)
|
||||
user.password = password
|
||||
users[user.id] = user
|
||||
if user:
|
||||
login_user(user, remember=True)
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue