summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-05-01 21:09:24 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-05-01 21:09:24 -0400
commitcb01a8d0fc658821a9fcf313007da00a528c2008 (patch)
tree3a70190e37a151db31228de4ad48f1aaaf8373d8
parentdb853927d7c6adf8f89e1b0ac7d6c9f9691e0592 (diff)
downloadaskbot-cb01a8d0fc658821a9fcf313007da00a528c2008.tar.gz
askbot-cb01a8d0fc658821a9fcf313007da00a528c2008.tar.bz2
askbot-cb01a8d0fc658821a9fcf313007da00a528c2008.zip
removed possibility to have >1 account with the same email address
-rw-r--r--askbot/conf/email.py9
-rw-r--r--askbot/deps/django_authopenid/forms.py27
-rw-r--r--askbot/forms.py21
-rw-r--r--askbot/media/js/post.js17
-rw-r--r--askbot/tests/email_alert_tests.py2
-rw-r--r--askbot/utils/forms.py24
6 files changed, 50 insertions, 50 deletions
diff --git a/askbot/conf/email.py b/askbot/conf/email.py
index 3847b18a..db1fc813 100644
--- a/askbot/conf/email.py
+++ b/askbot/conf/email.py
@@ -230,15 +230,6 @@ settings.register(
)
settings.register(
- livesettings.BooleanValue(
- EMAIL,
- 'EMAIL_UNIQUE',
- default=True,
- description=_('Allow only one account per email address')
- )
-)
-
-settings.register(
livesettings.StringValue(
EMAIL,
'ANONYMOUS_USER_EMAIL',
diff --git a/askbot/deps/django_authopenid/forms.py b/askbot/deps/django_authopenid/forms.py
index 332496b5..4ce7242b 100644
--- a/askbot/deps/django_authopenid/forms.py
+++ b/askbot/deps/django_authopenid/forms.py
@@ -363,21 +363,18 @@ class ChangeEmailForm(forms.Form):
def clean_email(self):
""" check if email don't exist """
if 'email' in self.cleaned_data:
- if askbot_settings.EMAIL_UNIQUE == True:
- try:
- user = User.objects.get(email = self.cleaned_data['email'])
- if self.user and self.user == user:
- return self.cleaned_data['email']
- except User.DoesNotExist:
+ try:
+ user = User.objects.get(email = self.cleaned_data['email'])
+ if self.user and self.user == user:
return self.cleaned_data['email']
- except User.MultipleObjectsReturned:
- raise forms.ValidationError(u'There is already more than one \
- account registered with that e-mail address. Please try \
- another.')
- raise forms.ValidationError(u'This email is already registered \
- in our database. Please choose another.')
- else:
+ except User.DoesNotExist:
return self.cleaned_data['email']
+ except User.MultipleObjectsReturned:
+ raise forms.ValidationError(u'There is already more than one \
+ account registered with that e-mail address. Please try \
+ another.')
+ raise forms.ValidationError(u'This email is already registered \
+ in our database. Please choose another.')
class AccountRecoveryForm(forms.Form):
"""with this form user enters email address and
@@ -395,9 +392,9 @@ class AccountRecoveryForm(forms.Form):
if 'email' in self.cleaned_data:
email = self.cleaned_data['email']
try:
- user = User.objects.get(email__iexact=email)
+ user = User.objects.filter(email__iexact=email)[0]
self.cleaned_data['user'] = user
- except User.DoesNotExist:
+ except KeyError:
del self.cleaned_data['email']
message = _('Sorry, we don\'t have this email address in the database')
raise forms.ValidationError(message)
diff --git a/askbot/forms.py b/askbot/forms.py
index 39a390be..1ef8cefa 100644
--- a/askbot/forms.py
+++ b/askbot/forms.py
@@ -1449,21 +1449,20 @@ class EditUserForm(forms.Form):
"""For security reason one unique email in database"""
if self.user.email != self.cleaned_data['email']:
#todo dry it, there is a similar thing in openidauth
- if askbot_settings.EMAIL_UNIQUE is True:
- if 'email' in self.cleaned_data:
- try:
- User.objects.get(email=self.cleaned_data['email'])
- except User.DoesNotExist:
- return self.cleaned_data['email']
- except User.MultipleObjectsReturned:
- raise forms.ValidationError(_(
- 'this email has already been registered, '
- 'please use another one')
- )
+ if 'email' in self.cleaned_data:
+ try:
+ User.objects.get(email=self.cleaned_data['email'])
+ except User.DoesNotExist:
+ return self.cleaned_data['email']
+ except User.MultipleObjectsReturned:
raise forms.ValidationError(_(
'this email has already been registered, '
'please use another one')
)
+ raise forms.ValidationError(_(
+ 'this email has already been registered, '
+ 'please use another one')
+ )
return self.cleaned_data['email']
diff --git a/askbot/media/js/post.js b/askbot/media/js/post.js
index 7b18e7f1..4a2fb0d6 100644
--- a/askbot/media/js/post.js
+++ b/askbot/media/js/post.js
@@ -2588,9 +2588,24 @@ FoldedEditor.prototype.getOpenHandler = function() {
return function() {
promptBox.hide();
editorBox.show();
- me.getElement().addClass('unfolded');
+ var element = me.getElement();
+ element.addClass('unfolded');
+
+ /* make the editor one shot - once it unfolds it's
+ * not accepting any events
+ */
+ element.unbind('click');
+ element.unbind('focus');
+
+ /* this function will open the editor
+ * and focus cursor on the editor
+ */
me.onAfterOpenHandler();
+ /* external trigger is a clickable target
+ * placed outside of the this._element
+ * that will cause the editor to unfold
+ */
if (externalTrigger) {
var label = me.makeElement('label');
label.html(externalTrigger.html());
diff --git a/askbot/tests/email_alert_tests.py b/askbot/tests/email_alert_tests.py
index c9fe4b99..199fd12d 100644
--- a/askbot/tests/email_alert_tests.py
+++ b/askbot/tests/email_alert_tests.py
@@ -1071,7 +1071,7 @@ class PostApprovalTests(utils.AskbotTestCase):
u2.approve_post_revision(question.get_latest_revision())
outbox = django.core.mail.outbox
- self.assertEquals(len(outbox), 1)
+ self.assertEquals(len(outbox), 2)
#moderation notification
self.assertEquals(outbox[0].recipients(), [u1.email,])
#self.assertEquals(outbox[1].recipients(), [u1.email,])#approval
diff --git a/askbot/utils/forms.py b/askbot/utils/forms.py
index 4dfc8b4f..c799ff56 100644
--- a/askbot/utils/forms.py
+++ b/askbot/utils/forms.py
@@ -247,19 +247,17 @@ class UserEmailField(forms.EmailField):
allowed_email_domains=allowed_domains
):
raise forms.ValidationError(self.error_messages['unauthorized'])
- if askbot_settings.EMAIL_UNIQUE == True:
- try:
- user = User.objects.get(email = email)
- logging.debug('email taken')
- raise forms.ValidationError(self.error_messages['taken'])
- except User.DoesNotExist:
- logging.debug('email valid')
- return email
- except User.MultipleObjectsReturned:
- logging.debug('email taken many times over')
- raise forms.ValidationError(self.error_messages['taken'])
- else:
- return email
+
+ try:
+ user = User.objects.get(email__iexact=email)
+ logging.debug('email taken')
+ raise forms.ValidationError(self.error_messages['taken'])
+ except User.DoesNotExist:
+ logging.debug('email valid')
+ return email
+ except User.MultipleObjectsReturned:
+ logging.critical('email taken many times over')
+ raise forms.ValidationError(self.error_messages['taken'])
class SetPasswordForm(forms.Form):
password1 = forms.CharField(widget=forms.PasswordInput(attrs=login_form_widget_attrs),