1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Oauth
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * Validate OAuth keys
29: *
30: * @category Mage
31: * @package Mage_Oauth
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34: class Mage_Oauth_Model_Consumer_Validator_KeyLength extends Zend_Validate_StringLength
35: {
36: /**
37: * Key name
38: *
39: * @var string
40: */
41: protected $_name = 'Key';
42:
43: /**
44: * Sets validator options
45: *
46: * @param integer|array|Zend_Config $options
47: */
48: public function __construct($options = array())
49: {
50: if (!is_array($options)) {
51: $options = func_get_args();
52: if (!isset($options[1])) {
53: $options[1] = 'utf-8';
54: }
55: parent::__construct($options[0], $options[0], $options[1]);
56: return;
57: } else {
58: if (isset($options['length'])) {
59: $options['max'] =
60: $options['min'] = $options['length'];
61: }
62: if (isset($options['name'])) {
63: $this->_name = $options['name'];
64: }
65: }
66: parent::__construct($options);
67: }
68:
69: /**
70: * Init validation failure message template definitions
71: *
72: * @return Mage_Oauth_Model_Consumer_Validator_KeyLength
73: */
74: protected function _initMessageTemplates()
75: {
76: $_messageTemplates[self::TOO_LONG] =
77: Mage::helper('oauth')->__("%name% '%value%' is too long. It must has length %min% symbols.");
78: $_messageTemplates[self::TOO_SHORT] =
79: Mage::helper('oauth')->__("%name% '%value%' is too short. It must has length %min% symbols.");
80:
81: return $this;
82: }
83:
84: /**
85: * Additional variables available for validation failure messages
86: *
87: * @var array
88: */
89: protected $_messageVariables = array(
90: 'min' => '_min',
91: 'max' => '_max',
92: 'name' => '_name'
93: );
94:
95: /**
96: * Set length
97: *
98: * @param $length
99: * @return Mage_Oauth_Model_Consumer_Validator_KeyLength
100: */
101: public function setLength($length)
102: {
103: parent::setMax($length);
104: parent::setMin($length);
105: return $this;
106: }
107:
108: /**
109: * Set length
110: *
111: * @return int
112: */
113: public function getLength()
114: {
115: return parent::getMin();
116: }
117:
118: /**
119: * Defined by Zend_Validate_Interface
120: *
121: * Returns true if and only if the string length of $value is at least the min option and
122: * no greater than the max option (when the max option is not null).
123: *
124: * @param string $value
125: * @return boolean
126: */
127: public function isValid($value)
128: {
129: $result = parent::isValid($value);
130: if (!$result && isset($this->_messages[self::INVALID])) {
131: throw new Exception($this->_messages[self::INVALID]);
132: }
133: return $result;
134: }
135:
136: /**
137: * Set key name
138: *
139: * @param string $name
140: * @return Mage_Oauth_Model_Consumer_Validator_KeyLength
141: */
142: public function setName($name)
143: {
144: $this->_name = $name;
145: return $this;
146: }
147:
148: /**
149: * Get key name
150: *
151: * @return string
152: */
153: public function getName()
154: {
155: return $this->_name;
156: }
157: }
158: