This repository was archived by the owner on Feb 7, 2025. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 162
/
Copy pathScope.php
92 lines (84 loc) · 1.75 KB
/
Scope.php
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
<?php
declare(strict_types=1);
namespace Bitrix24\SDK\Core\Credentials;
use Bitrix24\SDK\Core\Exceptions\UnknownScopeCodeException;
/**
* Class Scope
*
* @package Bitrix24\SDK\Core\Credentials
*/
class Scope
{
/**
* @var string[]
*/
protected array $availableScope = [
'app',
'bizproc',
'calendar',
'call',
'catalog',
'contact_center',
'crm',
'delivery',
'department',
'disk',
'documentgenerator',
'entity',
'faceid',
'forum',
'im',
'imbot',
'imopenlines',
'intranet',
'landing',
'landing_cloud',
'lists',
'log',
'mailservice',
'messageservice',
'mobile',
'pay_system',
'placement',
'pull',
'pull_channel',
'rating',
'sale',
'smile',
'sonet_group',
'task',
'tasks_extended',
'telephony',
'timeman',
'user',
'userconsent',
];
/**
* @var array
*/
protected array $currentScope = [];
/**
* Scope constructor.
*
* @param array $scope
*
* @throws UnknownScopeCodeException
*/
public function __construct(array $scope = [])
{
$scope = array_unique(array_map('strtolower', $scope));
foreach ($scope as $item) {
if (!in_array($item, $this->availableScope, true)) {
throw new UnknownScopeCodeException(sprintf('unknown application scope code - %s', $item));
}
}
$this->currentScope = $scope;
}
/**
* @return array
*/
public function getScopeCodes(): array
{
return $this->currentScope;
}
}