diff options
Diffstat (limited to 'askbot/models/__init__.py')
-rw-r--r-- | askbot/models/__init__.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py index c4c11cb4..3fd78ee9 100644 --- a/askbot/models/__init__.py +++ b/askbot/models/__init__.py @@ -83,6 +83,7 @@ User.add_to_class( choices = const.USER_STATUS_CHOICES ) ) +User.add_to_class('is_fake', models.BooleanField(default=False)) User.add_to_class('email_isvalid', models.BooleanField(default=False)) #@UndefinedVariable User.add_to_class('email_key', models.CharField(max_length=32, null=True)) @@ -343,6 +344,23 @@ 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): + """ + Get's or creates a user, most likely with the purpose + of posting under that account. + """ + assert(self.is_administrator()) + + try: + user = User.objects.get(username=username) + except User.DoesNotExist: + user = User.objects.create_user( + username=username, + email=email, + is_fake=True + ) + return user + def _assert_user_can( user = None, post = None, #related post (may be parent) @@ -2516,6 +2534,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_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) |