-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSystemSettings.php
More file actions
86 lines (75 loc) · 4.03 KB
/
SystemSettings.php
File metadata and controls
86 lines (75 loc) · 4.03 KB
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
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\OAuth2;
use Piwik\Piwik;
use Piwik\Plugins\OAuth2\Repositories\ScopeRepository;
use Piwik\Settings\FieldConfig;
use Piwik\Settings\Plugin\SystemSettings as BaseSystemSettings;
use Piwik\Settings\Setting;
class SystemSettings extends BaseSystemSettings
{
public Setting $accessTokenTtl;
public Setting $refreshTokenTtl;
public Setting $authCodeTtl;
public Setting $enableAuthorizationCode;
public Setting $enableClientCredentials;
public Setting $enableRefreshTokens;
public Setting $defaultScopes;
protected function init()
{
$this->title = Piwik::translate('OAuth2_SystemSettingOauthTitle');
$this->accessTokenTtl = $this->makeSetting('accessTokenTtl', 3600, FieldConfig::TYPE_INT, function (FieldConfig $field) {
$field->title = Piwik::translate('OAuth2_SystemSettingOAuthAccessTokenLifetimeTitle');
$field->description = Piwik::translate('OAuth2_SystemSettingOAuthAccessTokenLifetimeDescription');
$field->uiControl = FieldConfig::UI_CONTROL_TEXT;
$field->validate = function ($value) {
if ($value <= 0) {
throw new \Exception(Piwik::translate('OAuth2_InvalidValueException'));
}
};
});
$this->refreshTokenTtl = $this->makeSetting('refreshTokenTtl', 2592000, FieldConfig::TYPE_INT, function (FieldConfig $field) {
$field->title = Piwik::translate('OAuth2_SystemSettingOAuthRefreshTokenLifetimeTitle');
$field->description = Piwik::translate('OAuth2_SystemSettingOAuthRefreshTokenLifetimeDescription');
$field->uiControl = FieldConfig::UI_CONTROL_TEXT;
$field->validate = function ($value) {
if ($value <= 0) {
throw new \Exception(Piwik::translate('OAuth2_InvalidValueException'));
}
};
});
$this->authCodeTtl = $this->makeSetting('authCodeTtl', 600, FieldConfig::TYPE_INT, function (FieldConfig $field) {
$field->title = Piwik::translate('OAuth2_SystemSettingOAuthAuthorizationCodeLifetimeTitle');
$field->description = Piwik::translate('OAuth2_SystemSettingOAuthAuthorizationCodeLifetimeDescription');
$field->uiControl = FieldConfig::UI_CONTROL_TEXT;
$field->validate = function ($value) {
if ($value <= 0) {
throw new \Exception(Piwik::translate('OAuth2_InvalidValueException'));
}
};
});
$this->enableAuthorizationCode = $this->makeSetting('enableAuthorizationCode', true, FieldConfig::TYPE_BOOL, function (FieldConfig $field) {
$field->title = Piwik::translate('OAuth2_SystemSettingOAuthEnableAuthorizationCodeTitle');
});
$this->enableClientCredentials = $this->makeSetting('enableClientCredentials', true, FieldConfig::TYPE_BOOL, function (FieldConfig $field) {
$field->title = Piwik::translate('OAuth2_SystemSettingOAuthEnableAClientCredentialsTitle');
});
$this->enableRefreshTokens = $this->makeSetting('enableRefreshTokens', true, FieldConfig::TYPE_BOOL, function (FieldConfig $field) {
$field->title = Piwik::translate('OAuth2_SystemSettingOAuthEnableRefreshTokenTitle');
});
$scopes = ScopeRepository::getScopeDescriptions();
$defaultScopes = $scopes;
unset($defaultScopes['matomo:superuser']);
$this->defaultScopes = $this->makeSetting('defaultScopes', array_keys($defaultScopes), FieldConfig::TYPE_ARRAY, function (FieldConfig $field) use ($scopes) {
$field->title = Piwik::translate('OAuth2_SystemSettingOAuthScopeTitle');
$field->description = Piwik::translate('OAuth2_SystemSettingOAuthScopeDescription');
$field->uiControl = FieldConfig::UI_CONTROL_CHECKBOX;
$field->availableValues = $scopes;
});
}
}