Member: Added functions called when creating user/changing password.

This commit is contained in:
Robert Kolner committed 2013-02-22 14:35:05 +01:00
1 parent 71c5140743
commit 07d4c45ca9
1 file changed
+17
+17
View File
@@ -84,14 +84,17 @@ class MemberResource(ModelResource):
if bundle.obj.user_id == None: # true if new user
user = User(**user_params)
user.save()
self.member_created(**user_params)
bundle.data['user_id'] = user.id
bundle.obj.user_id = user.id
else:
# This happens only if we're editing existing user.
new_password = None # Needed later if we're changing password.
for key, value in user_params.items():
if key == 'password':
# Password has to be hashed before it can be set:
bundle.obj.user.set_password(value)
new_password = value
elif key == 'username':
if value != bundle.obj.user.username:
# We can't change username.
@@ -101,7 +104,21 @@ class MemberResource(ModelResource):
setattr(bundle.obj.user, key, value)
# hydrate is normally NOT used for updating Model objects, so we have to save it manually:
bundle.obj.user.save()
if new_password is not None:
self.member_password_changed(bundle.obj.user.username, new_password)
return bundle
def dehydrate(self, bundle):
return bundle
def member_created(self, **kwargs):
"""
TODO: This function is called every time new user is created.
"""
pass
def member_password_changed(self, username, new_password):
"""
TODO: This function is called every time user changes his password.
"""
pass