app/soc/views/site/user/profile.py
changeset 448 075360be6743
parent 445 31927f21970d
child 481 94834a1e6c01
--- 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