diff -r 83b49d60effd -r 075360be6743 app/soc/views/site/user/profile.py --- a/app/soc/views/site/user/profile.py Fri Nov 07 22:13:20 2008 +0000 +++ b/app/soc/views/site/user/profile.py Fri Nov 07 22:24:01 2008 +0000 @@ -134,7 +134,7 @@ if form_id: # email provided, so attempt to look up user by email - user = models.user.logic.getFromFields(email=form_id.email()) + user = models.user.logic.getForFields({'id': form_id}, unique=True) if user: lookup_message = ugettext_lazy('User found by email.') @@ -234,8 +234,9 @@ key_name = self.data.get('key_name') user = models.user.logic.getFromKeyName(key_name) - - if user and user.link_name != link_name: + + linkname_user_exist = id_user.getUserFromLinkName(link_name) + if (user and user.link_name != link_name) and linkname_user_exist: raise forms.ValidationError("This link name is already in use.") return link_name @@ -245,6 +246,9 @@ if not id_user.isIdAvailable( form_id, existing_key_name=self.data.get('key_name')): raise forms.ValidationError("This account is already in use.") + if models.user.logic.isFormerId(form_id): + raise forms.ValidationError("This account is invalid. " + "It exists as former id.") return form_id @@ -398,8 +402,11 @@ def clean_id(self): new_email = self.cleaned_data.get('id') form_id = users.User(email=new_email) - if models.user.logic.getFromFields(email=form_id.email()): + if models.user.logic.getForFields({'id': form_id}, unique=True): raise forms.ValidationError("This account is already in use.") + if models.user.logic.isFormerId(form_id): + raise forms.ValidationError("This account is invalid. " + "It exists as former id.") return form_id