Extending user validation
Most user validation happens in UsersService::saveUser(), so restructure your code to this:



$success = craft()-&gt;users-&gt;saveUser($newUser);

if (!$success)
{
    return $newUser-&gt;getErrors();
}


If this is happening in a controller action, you’ll want to make the UserModel available to the original template, so it can access and display those errors.

$success = craft()-&gt;users-&gt;saveUser($newUser);

if ($success)
{
    // Redirect to whatever URL the 'redirect' param specified
    $this-&gt;redirectToPostedUrl($newUser);
}
else
{
    // Make the UserModel available to the original template
    // so it can access the submitted values and validation errors
    craft()-&gt;urlManager-&gt;setRouteVariables(array(
        'account' =&gt; $newUser
    ));
}