summaryrefslogtreecommitdiffstats
path: root/askbot/models/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'askbot/models/__init__.py')
-rw-r--r--askbot/models/__init__.py19
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)