/**
  * Check for password weakness.
  *
  * @param \Gems_User_User $user
  * @param string $password Or null when you want a report on all the rules for this password.
  * @param array  $codes An array of code names that identify rules that should be used only for those codes.
  * @return mixed String or array of strings containing warning messages
  */
 public function reportPasswordWeakness(\Gems_User_User $user, $password, array $codes)
 {
     $this->user = $user;
     $this->_errors = array();
     $rules = $this->project->getPasswordRules($codes);
     // \MUtil_Echo::track($rules);
     foreach ($rules as $rule => $parameter) {
         if (method_exists($this, $rule)) {
             $this->{$rule}($parameter, $password);
         }
     }
     // \MUtil_Echo::track($this->_errors);
     return $this->_errors;
 }