Change some conditions to properly check if the custom-profile-field really is using...
authorstronk7 <stronk7>
Fri, 1 Feb 2008 17:19:33 +0000 (17:19 +0000)
committerstronk7 <stronk7>
Fri, 1 Feb 2008 17:19:33 +0000 (17:19 +0000)
user/profile/definelib.php

index 38fc90e50e6ebe00350c408cbc08b675112ceb8f..937cdd4a96f2654d4e922ebc1d414aa3294ed580 100644 (file)
@@ -89,21 +89,26 @@ class profile_define_base {
      * @return  array    associative array of error messages
      */
     function define_validate_common($data, $files) {
+
         global $USER;
-        
+
         $err = array();
 
         /// Check the shortname was not truncated by cleaning
         if (empty($data->shortname)) {
             $err['shortname'] = get_string('required');
 
+        } else {
+        /// Fetch field-record from DB
+            $field = get_record('user_info_field', 'shortname', $data->shortname);
         /// Check the shortname is unique
-        } else if (($field = get_record('user_info_field', 'shortname', $data->shortname)) and ($field->id <> $data->id)) {
-            $err['shortname'] = get_string('profileshortnamenotunique', 'admin');
+            if ($field and $field->id <> $data->id) {
+                $err['shortname'] = get_string('profileshortnamenotunique', 'admin');
 
         /// Shortname must also be unique compared to the standard user fields
-        } else if (isset($USER->{$data->shortname})) {
-            $err['shortname'] = get_string('profileshortnamenotunique', 'admin');
+            } else if (!$field and isset($USER->{$data->shortname})) {
+                $err['shortname'] = get_string('profileshortnamenotunique', 'admin');
+            }
         }
 
         /// No further checks necessary as the form class will take care of it