Files
flask-security/flask_security/datastore/__init__.py
T
2012-03-08 16:03:53 -05:00

38 lines
1.4 KiB
Python

from datetime import datetime
from flask.ext.security import UserCreationError, pwd_context
class UserDatastore(object):
"""A sort of abstract user service"""
def with_id(self, id):
raise NotImplementedError(
"User datastore does not implement with_id method")
def find(self, user_identifier):
raise NotImplementedError(
"User datastore does not implement find_user method")
def create_role(self, **kwargs):
raise NotImplementedError(
"User datastore does not implement create_role method")
def create_user(self, **kwargs):
raise NotImplementedError(
"User datastore does not implement create_user method")
def _prepare_create_args(self, kwargs):
if not kwargs.has_key('username') and not kwargs.has_key('email'):
raise UserCreationError('Error creating user: username and/or '
'email arguments not provided')
if not kwargs.has_key('password'):
raise UserCreationError('Error creating user: password '
'argument not provided')
now = datetime.utcnow()
kwargs['created_at'], kwargs['modified_at'] = now, now
pw = kwargs['password']
if not pwd_context.identify(pw):
kwargs['password'] = pwd_context.encrypt(pw)
return kwargs