/** * 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; }