diff options
Diffstat (limited to 'engine/lib/users.php')
| -rw-r--r-- | engine/lib/users.php | 42 | 
1 files changed, 27 insertions, 15 deletions
| diff --git a/engine/lib/users.php b/engine/lib/users.php index ffa39570a..a4a9bded4 100644 --- a/engine/lib/users.php +++ b/engine/lib/users.php @@ -345,21 +345,33 @@  		if ($row)
  		{
 -			// Exists and you have access to it
 -			
 -			// Delete any existing stuff
 -			delete_user_entity($guid);
 -
 -			// Insert it
 -			$result = insert_data("INSERT into {$CONFIG->dbprefix}users_entity (guid, name, username, password, email, language, code) values ($guid, '$name', '$username', '$password', '$email', '$language', '$code')");
 -			if ($result!==false) {
 -				$entity = get_entity($guid);
 -				if (trigger_event('create',$entity->type,$entity)) {
 -					return true;
 -				} else {
 -					delete_entity($guid);
 -				}
 -			}				
 +			// Exists and you have access to it + +			$result = update_data("UPDATE {$CONFIG->dbprefix}users_entity set name='$name', username='$username', password='$password', email='$email', language='$language', code='$code' where guid=$guid"); +			if ($result!=false) +			{ +				// Update succeeded, continue +				$entity = get_entity($guid); +				if (trigger_event('update',$entity->type,$entity)) { +					return true; +				} else { +					delete_entity($guid); +				} +			} +			else +			{ +				// Update failed, attempt an insert. +				$result = insert_data("INSERT into {$CONFIG->dbprefix}users_entity (guid, name, username, password, email, language, code) values ($guid, '$name', '$username', '$password', '$email', '$language', '$code')"); +				if ($result!==false) { +					$entity = get_entity($guid); +					if (trigger_event('create',$entity->type,$entity)) { +						return true; +					} else { +						delete_entity($guid); +					} +				} +			} +					
  		}
  		return false;
 | 
