|
- from __future__ import absolute_import
-
- from flask import render_template
- from flask_login import login_user
- from flask_ldap_login import LDAPLoginForm
-
- from realms import ldap
- from realms.modules.auth.models import BaseUser
-
-
- users = {}
-
-
- @ldap.save_user
- def save_user(username, userdata):
- user = User(username, userdata.get('email'))
- users[user.id] = user
- return user
-
-
- class User(BaseUser):
- type = 'ldap'
-
- def __init__(self, username, email='null@localhost.local', password=None):
- self.id = username
- self.username = username
- 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():
- return render_template('auth/ldap/login.html', form=LDAPLoginForm())
-
- @staticmethod
- 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
|