1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
security_service_hotbox.php
См. документацию.
1<?php
2
4{
5 /* @var $service CCloudStorageService_HotBox */
6 protected $service = null;
7 protected $arBucket = false;
8
9 public function __construct()
10 {
12 }
13
14 public static function GetObject()
15 {
17 }
18
19 public function GetID()
20 {
21 return 'hotbox_ss';
22 }
23
24 public function GetName()
25 {
26 return 'HotBox Security Token Service';
27 }
28
29 public function SetBucketArray($arBucket)
30 {
31 $this->arBucket = $arBucket;
32 }
33
34 public function CreatePrefixKey($UserName, $Prefix)
35 {
36 $this->service->SetLocation($this->arBucket['LOCATION']);
37 $response = $this->service->SendRequest(
38 $this->arBucket['SETTINGS'],
39 'PUT',
40 $this->arBucket['BUCKET'],
41 '/',
42 '?pak=&username=' . urlencode($UserName) . '&prefix=' . urlencode($UserName)
43 );
44
45 if (
46 is_array($response)
47 && isset($response['CreatePrefixKeyResult'])
48 && is_array($response['CreatePrefixKeyResult'])
49 && isset($response['CreatePrefixKeyResult']['#'])
50 && is_array($response['CreatePrefixKeyResult']['#'])
51 )
52 {
53 $Credentials = $response['CreatePrefixKeyResult']['#'];
54
55 if (
56 isset($Credentials['AccessKey'])
57 && is_array($Credentials['AccessKey'])
58 && isset($Credentials['AccessKey'][0])
59 && is_array($Credentials['AccessKey'][0])
60 && isset($Credentials['AccessKey'][0]['#'])
61 )
62 {
63 $AccessKeyId = $Credentials['AccessKey'][0]['#'];
64 }
65 else
66 {
67 return 1;
68 }
69
70 if (
71 isset($Credentials['SecretKey'])
72 && is_array($Credentials['SecretKey'])
73 && isset($Credentials['SecretKey'][0])
74 && is_array($Credentials['SecretKey'][0])
75 && isset($Credentials['SecretKey'][0]['#'])
76 )
77 {
78 $SecretAccessKey = $Credentials['SecretKey'][0]['#'];
79 }
80 else
81 {
82 return 2;
83 }
84
85 return [
86 'ACCESS_KEY' => $AccessKeyId,
87 'SECRET_KEY' => $SecretAccessKey,
88 ];
89 }
90 else
91 {
92 return false;
93 }
94 }
95
96 public function ListPrefixKeys($namePrefix = '')
97 {
98 $result = [];
99 $marker = '';
100 while (true)
101 {
102 $this->service->SetLocation($this->arBucket['LOCATION']);
103 $response = $this->service->SendRequest(
104 $this->arBucket['SETTINGS'],
105 'GET',
106 $this->arBucket['BUCKET'],
107 '/',
108 '?pak=&max-keys=50&marker=' . urlencode($marker) . '&name-prefix=' . urlencode($namePrefix)
109 );
110 if (
111 $this->service->GetLastRequestStatus() == 200
112 && is_array($response)
113 && isset($response['ListPrefixKeysResult'])
114 && is_array($response['ListPrefixKeysResult'])
115 && isset($response['ListPrefixKeysResult']['#'])
116 && is_array($response['ListPrefixKeysResult']['#'])
117 )
118 {
119 $lastKey = null;
120 if (
121 isset($response['ListPrefixKeysResult']['#']['Contents'])
122 && is_array($response['ListPrefixKeysResult']['#']['Contents'])
123 )
124 {
125 foreach ($response['ListPrefixKeysResult']['#']['Contents'] as $a)
126 {
127 $last_key = $user_name = $a['#']['UserName'][0]['#'];
128 $result[$user_name] = $a['#']['Prefix'][0]['#'];
129 }
130 }
131
132 if (
133 isset($response['ListPrefixKeysResult']['#']['IsTruncated'])
134 && is_array($response['ListPrefixKeysResult']['#']['IsTruncated'])
135 && $response['ListPrefixKeysResult']['#']['IsTruncated'][0]['#'] === 'true'
136 )
137 {
138 if (isset($last_key))
139 {
140 $marker = $last_key;
141 continue;
142 }
143 }
144 }
145 break;
146 }
147 return $result;
148 }
149
150 public function IsUserExists($UserName)
151 {
152 $users = $this->ListPrefixKeys($UserName);
153 return isset($users[$UserName]);
154 }
155
156 public function DeletePrefixKey($UserName, $prefix)
157 {
158 $this->service->SetLocation($this->arBucket['LOCATION']);
159 $this->service->SendRequest(
160 $this->arBucket['SETTINGS'],
161 'DELETE',
162 $this->arBucket['BUCKET'],
163 '/',
164 '?pak=&prefix=' . urlencode($prefix) . '&username=' . urlencode($UserName)
165 );
166 return $this->service->GetLastRequestStatus() === 200;
167 }
168}
ListPrefixKeys($namePrefix='')
Определения security_service_hotbox.php:96
CreatePrefixKey($UserName, $Prefix)
Определения security_service_hotbox.php:34
DeletePrefixKey($UserName, $prefix)
Определения security_service_hotbox.php:156
static GetObjectInstance()
Определения storage_service.php:316
$result
Определения get_property_values.php:14
else $a
Определения template.php:137
$response
Определения result.php:21