CommunityID/libs/Monkeys/Validate/Username.php

48 lines
1.3 KiB
PHP

<?php
/*
* @copyright Copyright (C) 2005-2010 Keyboard Monkeys Ltd. http://www.kb-m.com
* @license http://creativecommons.org/licenses/BSD/ BSD Licensese
* @author Keyboard Monkeys Ltd.
* @package Monkeys Framework
* @packager Keyboard Monkeys
*/
/**
* Validates URL element syntax to avoid encoding issues, according to rfc 1738, section 2.2
*/
class Monkeys_Validate_Username extends Zend_Validate_Abstract
{
const BAD = 'bad';
const BAD2 = 'bad2';
protected $_messageTemplates = array(
self::BAD => 'Username can only contain US-ASCII alphanumeric characters, plus any of the symbols $-_.+!*\'(), and "',
self::BAD2 => 'Username is invalid'
);
public function isValid($value, $context = null)
{
$this->_setValue($value);
if (!preg_match('/^[A-Za-z\$-_.\+!\*\'\(\)",]+$/', $value)) {
$this->_error(self::BAD);
return false;
}
$config = Zend_Registry::get('config');
foreach ($config->security->usernames->exclude as $regex) {
if (!$regex) {
continue;
}
$regex = preg_quote($regex);
if (preg_match("/$regex/", $value)) {
$this->_error(self::BAD2);
return false;
}
}
return true;
}
}