/**
  * Validate Username.
  *
  *   -- Must start with a letter
  *   -- Uppercase and lowercase letters accepted
  *   -- 2-8 characters in length
  *   -- Letters, numbers, underscores, dots, and dashes only
  *   --
  *   -- An email is a preferred username
  *
  * @param string $userName The user provided username
  *
  * @return bool
  */
 public function validateUsername(string $userName = null) : bool
 {
     if (null === $userName) {
         $this->dbh->insertiNetRecordLog($userName, '-- Login Error: Username not provided or bad parameter.');
         return false;
     }
     if (!(bool) preg_match('/^[a-z][a-z\\d_.-]*$/i', trim(mb_substr(trim(strtolower($userName)), 0, 64, 'UTF-8')))) {
         $this->dbh->insertiNetRecordLog($userName, '-- Login Error: Username did not meet login requirements for AD Username.');
         return false;
     }
     return true;
 }