mirror of
https://github.com/wassname/flask-security.git
synced 2026-07-03 17:10:25 +08:00
38 lines
1.4 KiB
Python
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 |