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
128
129
130
131
132
133
134
135
136
137
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Integration\Helper\Oauth;
/**
* OAuth View Helper for Controllers
*/
class Data
{
/**
* @var \Magento\Framework\App\Config\ScopeConfigInterface
*/
protected $_scopeConfig;
/**
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
*/
public function __construct(\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig)
{
$this->_scopeConfig = $scopeConfig;
}
/**#@+
* Cleanup xpath config settings
*/
const XML_PATH_CLEANUP_PROBABILITY = 'oauth/cleanup/cleanup_probability';
const XML_PATH_CLEANUP_EXPIRATION_PERIOD = 'oauth/cleanup/expiration_period';
/**#@-*/
/**
* Cleanup expiration period in minutes
*/
const CLEANUP_EXPIRATION_PERIOD_DEFAULT = 120;
/**#@+
* Consumer xpath settings
*/
const XML_PATH_CONSUMER_EXPIRATION_PERIOD = 'oauth/consumer/expiration_period';
const XML_PATH_CONSUMER_POST_MAXREDIRECTS = 'oauth/consumer/post_maxredirects';
const XML_PATH_CONSUMER_POST_TIMEOUT = 'oauth/consumer/post_timeout';
/**#@-*/
/**#@+
* Consumer default settings
*/
const CONSUMER_EXPIRATION_PERIOD_DEFAULT = 300;
const CONSUMER_POST_TIMEOUT_DEFAULT = 5;
/**#@-*/
/**
* Calculate cleanup possibility for data with lifetime property
*
* @return bool
*/
public function isCleanupProbability()
{
// Safe get cleanup probability value from system configuration
$configValue = (int)$this->_scopeConfig->getValue(self::XML_PATH_CLEANUP_PROBABILITY);
return $configValue > 0 ? 1 == \Magento\Framework\Math\Random::getRandomNumber(1, $configValue) : false;
}
/**
* Get cleanup expiration period value from system configuration in minutes
*
* @return int
*/
public function getCleanupExpirationPeriod()
{
$minutes = (int)$this->_scopeConfig->getValue(self::XML_PATH_CLEANUP_EXPIRATION_PERIOD);
return $minutes > 0 ? $minutes : self::CLEANUP_EXPIRATION_PERIOD_DEFAULT;
}
/**
* Get consumer expiration period value from system configuration in seconds
*
* @return int
*/
public function getConsumerExpirationPeriod()
{
$seconds = (int)$this->_scopeConfig->getValue(self::XML_PATH_CONSUMER_EXPIRATION_PERIOD);
return $seconds > 0 ? $seconds : self::CONSUMER_EXPIRATION_PERIOD_DEFAULT;
}
/**
* Get the number of consumer post maximum redirects
*
* @return int
*/
public function getConsumerPostMaxRedirects()
{
$redirects = (int)$this->_scopeConfig->getValue(self::XML_PATH_CONSUMER_POST_MAXREDIRECTS);
return $redirects > 0 ? $redirects : 0;
}
/**
* Get the number seconds for the consumer post timeout
*
* @return int
*/
public function getConsumerPostTimeout()
{
$seconds = (int)$this->_scopeConfig->getValue(self::XML_PATH_CONSUMER_POST_TIMEOUT);
return $seconds > 0 ? $seconds : self::CONSUMER_POST_TIMEOUT_DEFAULT;
}
/**
* Get customer token lifetime from config.
*
* @return int hours
*/
public function getCustomerTokenLifetime()
{
$hours = (int)$this->_scopeConfig->getValue('oauth/access_token_lifetime/customer');
return $hours > 0 ? $hours : 0;
}
/**
* Get customer token lifetime from config.
*
* @return int hours
*/
public function getAdminTokenLifetime()
{
$hours = (int)$this->_scopeConfig->getValue('oauth/access_token_lifetime/admin');
return $hours > 0 ? $hours : 0;
}
}