1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Integration\Model\Oauth\Consumer\Validator;
/**
* Validate OAuth keys
*/
class KeyLength extends \Zend_Validate_StringLength
{
/**
* Default key name
*
* @var string
*/
protected $_name = 'Key';
/**
* @var array
*/
protected $_messageTemplates = [
self::INVALID => "Invalid type given for %name%. String expected",
self::TOO_SHORT => "%name% '%value%' is less than %min% characters long",
self::TOO_LONG => "%name% '%value%' is more than %max% characters long",
];
/**
* Additional variables available for validation failure messages
*
* @var array
*/
protected $_messageVariables = ['min' => '_min', 'max' => '_max', 'name' => '_name'];
/**
* Sets KeyLength validator options
*
* Default encoding is set to utf-8 if none provided
* New option name added to allow adding key name in validation error messages
*
* @inheritdoc
*/
public function __construct($options = [])
{
if (!is_array($options)) {
$options = func_get_args();
if (!isset($options[1])) {
$options[1] = 'utf-8';
}
parent::__construct($options[0], $options[0], $options[1]);
return;
} else {
if (isset($options['length'])) {
$options['max'] = $options['min'] = $options['length'];
}
if (isset($options['name'])) {
$this->_name = $options['name'];
}
}
parent::__construct($options);
}
/**
* Set length
*
* @param int|null $length
* @return $this
*/
public function setLength($length)
{
parent::setMax($length);
parent::setMin($length);
return $this;
}
/**
* Set length
*
* @return int
*/
public function getLength()
{
return parent::getMin();
}
/**
* Defined by \Zend_Validate_Interface
*
* Returns true if and only if the string length of $value is at least the min option and
* no greater than the max option (when the max option is not null).
*
* @param string $value
* @return boolean
* @throws \Exception
*/
public function isValid($value)
{
$result = parent::isValid($value);
if (!$result && isset($this->_messages[self::INVALID])) {
throw new \Exception($this->_messages[self::INVALID]);
}
return $result;
}
/**
* Set key name
*
* @param string $name
* @return $this
*/
public function setName($name)
{
$this->_name = $name;
return $this;
}
/**
* Get key name
*
* @return string
*/
public function getName()
{
return $this->_name;
}
}