diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2013-05-01 21:09:24 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2013-05-01 21:09:24 -0400 |
commit | cb01a8d0fc658821a9fcf313007da00a528c2008 (patch) | |
tree | 3a70190e37a151db31228de4ad48f1aaaf8373d8 | |
parent | db853927d7c6adf8f89e1b0ac7d6c9f9691e0592 (diff) | |
download | askbot-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.py | 9 | ||||
-rw-r--r-- | askbot/deps/django_authopenid/forms.py | 27 | ||||
-rw-r--r-- | askbot/forms.py | 21 | ||||
-rw-r--r-- | askbot/media/js/post.js | 17 | ||||
-rw-r--r-- | askbot/tests/email_alert_tests.py | 2 | ||||
-rw-r--r-- | askbot/utils/forms.py | 24 |
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), |