From e9243cbfa7c8ee9724f8022b987feced43fbd824 Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev Date: Mon, 30 Jul 2012 02:15:00 -0400 Subject: fixed a bug in posting under new fake account --- askbot/forms.py | 2 +- askbot/models/__init__.py | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/askbot/forms.py b/askbot/forms.py index 64337883..ecf86717 100644 --- a/askbot/forms.py +++ b/askbot/forms.py @@ -757,7 +757,7 @@ class PostAsSomeoneForm(forms.Form): username = self.cleaned_data['post_author_username'] email= self.cleaned_data['post_author_email'] if user.is_administrator() and username and email: - post_user = user.get_or_create_user(username, email) + post_user = user.get_or_create_fake_user(username, email) else: post_user = user return post_user diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py index 3fd78ee9..df242967 100644 --- a/askbot/models/__init__.py +++ b/askbot/models/__init__.py @@ -344,7 +344,7 @@ def user_can_post_by_email(self): return askbot_settings.REPLY_BY_EMAIL and \ self.reputation > askbot_settings.MIN_REP_TO_POST_BY_EMAIL -def user_get_or_create_user(self, username, email): +def user_get_or_create_fake_user(self, username, email): """ Get's or creates a user, most likely with the purpose of posting under that account. @@ -354,11 +354,12 @@ def user_get_or_create_user(self, username, email): try: user = User.objects.get(username=username) except User.DoesNotExist: - user = User.objects.create_user( - username=username, - email=email, - is_fake=True - ) + user = User() + user.username = username + user.email = email + user.is_fake = True + user.set_unusable_password() + user.save() return user def _assert_user_can( @@ -2534,7 +2535,7 @@ User.add_to_class('get_absolute_url', user_get_absolute_url) User.add_to_class('get_avatar_url', user_get_avatar_url) User.add_to_class('get_default_avatar_url', user_get_default_avatar_url) User.add_to_class('get_gravatar_url', user_get_gravatar_url) -User.add_to_class('get_or_create_user', user_get_or_create_user) +User.add_to_class('get_or_create_fake_user', user_get_or_create_fake_user) User.add_to_class('get_marked_tags', user_get_marked_tags) User.add_to_class('get_marked_tag_names', user_get_marked_tag_names) User.add_to_class('strip_email_signature', user_strip_email_signature) -- cgit v1.2.3-1-g7c22