Changed so deleting a PlayerDB object will automatically also destroy its connected User object.

This commit is contained in:
Griatch 2012-08-14 00:40:48 +02:00
parent 891dcbbf9c
commit a2e7246d15
2 changed files with 13 additions and 2 deletions

View file

@ -372,8 +372,8 @@ class CmdDelPlayer(MuxCommand):
for session in sessions:
session.msg(string)
session.disconnect()
player.delete()
user.delete()
player.delete()
caller.msg("Player %s was successfully deleted." % uname)

View file

@ -363,7 +363,18 @@ class PlayerDB(TypedObject):
"""
return self.__class__.objects.swap_character(self, new_character, delete_old_character=delete_old_character)
def delete(self, *args, **kwargs):
"Make sure to delete user also when deleting player - the two may never exist separately."
try:
if self.user:
self.user.delete()
except AssertionError:
pass
try:
super(PlayerDB, self).delete(*args, **kwargs)
except AssertionError:
# this means deleting the user already cleared out the Player object.
pass
#
# Execution/action methods
#