@@ -29,48 +29,48 @@ |
||
29 | 29 | } |
30 | 30 | |
31 | 31 | switch ($data['function']) { |
32 | - default: |
|
33 | - return; |
|
34 | - case 'get_files_list': |
|
35 | - echo _json_encode(get_files_list($data['dir'], $data['mask'], $data['mode'], $data['prefix_path'], $data['subfolders'], $data['sort'], $data['exclusion'], $data['system_files'], null, $data['limit'])); |
|
36 | - return; |
|
37 | - case 'file': |
|
38 | - echo _json_encode(file($data['filename'], $data['flags'])); |
|
39 | - return; |
|
40 | - case 'file_get_contents': |
|
41 | - echo file_get_contents($data['filename'], $data['flags'], null, $data['offset'], $data['maxlen']); |
|
42 | - return; |
|
43 | - case 'file_put_contents': |
|
44 | - echo file_put_contents($data['filename'], $data['data'], $data['flags']); |
|
45 | - return; |
|
46 | - case 'copy': |
|
47 | - echo copy($data['source'], $data['dest']); |
|
48 | - return; |
|
49 | - case 'unlink': |
|
50 | - echo unlink($data['filename']); |
|
51 | - return; |
|
52 | - case 'file_exists': |
|
53 | - echo file_exists($data['filename']); |
|
54 | - return; |
|
55 | - case 'move_uploaded_file': |
|
56 | - echo copy($data['filename'], $data['destination']); |
|
57 | - return; |
|
58 | - case 'rename': |
|
59 | - echo rename($data['oldname'], $data['newname']); |
|
60 | - return; |
|
61 | - case 'mkdir': |
|
62 | - echo mkdir($data['pathname']); |
|
63 | - return; |
|
64 | - case 'rmdir': |
|
65 | - echo rmdir($data['dirname']); |
|
66 | - return; |
|
67 | - case 'is_file': |
|
68 | - echo is_file($data['filename']); |
|
69 | - return; |
|
70 | - case 'is_dir': |
|
71 | - echo is_dir($data['filename']); |
|
72 | - return; |
|
73 | - case 'test': |
|
74 | - echo 'OK'; |
|
75 | - return; |
|
32 | + default: |
|
33 | + return; |
|
34 | + case 'get_files_list': |
|
35 | + echo _json_encode(get_files_list($data['dir'], $data['mask'], $data['mode'], $data['prefix_path'], $data['subfolders'], $data['sort'], $data['exclusion'], $data['system_files'], null, $data['limit'])); |
|
36 | + return; |
|
37 | + case 'file': |
|
38 | + echo _json_encode(file($data['filename'], $data['flags'])); |
|
39 | + return; |
|
40 | + case 'file_get_contents': |
|
41 | + echo file_get_contents($data['filename'], $data['flags'], null, $data['offset'], $data['maxlen']); |
|
42 | + return; |
|
43 | + case 'file_put_contents': |
|
44 | + echo file_put_contents($data['filename'], $data['data'], $data['flags']); |
|
45 | + return; |
|
46 | + case 'copy': |
|
47 | + echo copy($data['source'], $data['dest']); |
|
48 | + return; |
|
49 | + case 'unlink': |
|
50 | + echo unlink($data['filename']); |
|
51 | + return; |
|
52 | + case 'file_exists': |
|
53 | + echo file_exists($data['filename']); |
|
54 | + return; |
|
55 | + case 'move_uploaded_file': |
|
56 | + echo copy($data['filename'], $data['destination']); |
|
57 | + return; |
|
58 | + case 'rename': |
|
59 | + echo rename($data['oldname'], $data['newname']); |
|
60 | + return; |
|
61 | + case 'mkdir': |
|
62 | + echo mkdir($data['pathname']); |
|
63 | + return; |
|
64 | + case 'rmdir': |
|
65 | + echo rmdir($data['dirname']); |
|
66 | + return; |
|
67 | + case 'is_file': |
|
68 | + echo is_file($data['filename']); |
|
69 | + return; |
|
70 | + case 'is_dir': |
|
71 | + echo is_dir($data['filename']); |
|
72 | + return; |
|
73 | + case 'test': |
|
74 | + echo 'OK'; |
|
75 | + return; |
|
76 | 76 | } |
@@ -233,86 +233,86 @@ |
||
233 | 233 | return; |
234 | 234 | } |
235 | 235 | switch ($_GET['response_type']) { |
236 | - case 'code': |
|
237 | - _header( |
|
238 | - 'Location: '.http_build_url( |
|
239 | - urldecode($redirect_uri), |
|
240 | - [ |
|
241 | - 'code' => $code, |
|
242 | - 'state' => isset($_GET['state']) ? $_GET['state'] : false |
|
243 | - ] |
|
244 | - ), |
|
245 | - true, |
|
246 | - 302 |
|
247 | - ); |
|
248 | - $Page->Content = ''; |
|
249 | - return; |
|
250 | - case 'token': |
|
251 | - $token_data = $OAuth2->get_code($code, $client['id'], $client['secret'], $redirect_uri); |
|
252 | - if ($token_data) { |
|
253 | - unset($token_data['refresh_token']); |
|
236 | + case 'code': |
|
254 | 237 | _header( |
255 | - 'Location: '.uri_for_token( |
|
256 | - http_build_url( |
|
257 | - urldecode($redirect_uri), |
|
258 | - array_merge( |
|
259 | - $token_data, |
|
260 | - [ |
|
261 | - 'state' => isset($_GET['state']) ? $_GET['state'] : false |
|
262 | - ] |
|
263 | - ) |
|
264 | - ) |
|
238 | + 'Location: '.http_build_url( |
|
239 | + urldecode($redirect_uri), |
|
240 | + [ |
|
241 | + 'code' => $code, |
|
242 | + 'state' => isset($_GET['state']) ? $_GET['state'] : false |
|
243 | + ] |
|
265 | 244 | ), |
266 | 245 | true, |
267 | 246 | 302 |
268 | 247 | ); |
269 | 248 | $Page->Content = ''; |
270 | 249 | return; |
271 | - } else { |
|
272 | - error_redirect('server_error', "Server can't get token data, try later"); |
|
273 | - return; |
|
274 | - } |
|
275 | - case 'guest_token': |
|
276 | - _header('Cache-Control: no-store'); |
|
277 | - _header('Pragma: no-cache'); |
|
278 | - interface_off(); |
|
279 | - if ($User->user()) { |
|
280 | - $e = new ExitException( |
|
281 | - [ |
|
282 | - 'access_denied', |
|
283 | - 'Only guests, not users allowed to access this response_type' |
|
284 | - ], |
|
285 | - 403 |
|
286 | - ); |
|
287 | - $e->setJson(); |
|
288 | - throw $e; |
|
289 | - } |
|
290 | - $code = $OAuth2->add_code($client['id'], 'token', urldecode($_GET['redirect_uri'])); |
|
291 | - if (!$code) { |
|
292 | - $e = new ExitException( |
|
293 | - [ |
|
294 | - 'server_error', |
|
295 | - "Server can't generate code, try later" |
|
296 | - ], |
|
297 | - 500 |
|
298 | - ); |
|
299 | - $e->setJson(); |
|
300 | - throw $e; |
|
301 | - } |
|
302 | - $token_data = $OAuth2->get_code($code, $client['id'], $client['secret'], urldecode($_GET['redirect_uri'])); |
|
303 | - if ($token_data) { |
|
304 | - unset($token_data['refresh_token']); |
|
305 | - $Page->json($token_data); |
|
306 | - return; |
|
307 | - } else { |
|
308 | - $e = new ExitException( |
|
309 | - [ |
|
310 | - 'server_error', |
|
311 | - "Server can't get token data, try later" |
|
312 | - ], |
|
313 | - 500 |
|
314 | - ); |
|
315 | - $e->setJson(); |
|
316 | - throw $e; |
|
317 | - } |
|
250 | + case 'token': |
|
251 | + $token_data = $OAuth2->get_code($code, $client['id'], $client['secret'], $redirect_uri); |
|
252 | + if ($token_data) { |
|
253 | + unset($token_data['refresh_token']); |
|
254 | + _header( |
|
255 | + 'Location: '.uri_for_token( |
|
256 | + http_build_url( |
|
257 | + urldecode($redirect_uri), |
|
258 | + array_merge( |
|
259 | + $token_data, |
|
260 | + [ |
|
261 | + 'state' => isset($_GET['state']) ? $_GET['state'] : false |
|
262 | + ] |
|
263 | + ) |
|
264 | + ) |
|
265 | + ), |
|
266 | + true, |
|
267 | + 302 |
|
268 | + ); |
|
269 | + $Page->Content = ''; |
|
270 | + return; |
|
271 | + } else { |
|
272 | + error_redirect('server_error', "Server can't get token data, try later"); |
|
273 | + return; |
|
274 | + } |
|
275 | + case 'guest_token': |
|
276 | + _header('Cache-Control: no-store'); |
|
277 | + _header('Pragma: no-cache'); |
|
278 | + interface_off(); |
|
279 | + if ($User->user()) { |
|
280 | + $e = new ExitException( |
|
281 | + [ |
|
282 | + 'access_denied', |
|
283 | + 'Only guests, not users allowed to access this response_type' |
|
284 | + ], |
|
285 | + 403 |
|
286 | + ); |
|
287 | + $e->setJson(); |
|
288 | + throw $e; |
|
289 | + } |
|
290 | + $code = $OAuth2->add_code($client['id'], 'token', urldecode($_GET['redirect_uri'])); |
|
291 | + if (!$code) { |
|
292 | + $e = new ExitException( |
|
293 | + [ |
|
294 | + 'server_error', |
|
295 | + "Server can't generate code, try later" |
|
296 | + ], |
|
297 | + 500 |
|
298 | + ); |
|
299 | + $e->setJson(); |
|
300 | + throw $e; |
|
301 | + } |
|
302 | + $token_data = $OAuth2->get_code($code, $client['id'], $client['secret'], urldecode($_GET['redirect_uri'])); |
|
303 | + if ($token_data) { |
|
304 | + unset($token_data['refresh_token']); |
|
305 | + $Page->json($token_data); |
|
306 | + return; |
|
307 | + } else { |
|
308 | + $e = new ExitException( |
|
309 | + [ |
|
310 | + 'server_error', |
|
311 | + "Server can't get token data, try later" |
|
312 | + ], |
|
313 | + 500 |
|
314 | + ); |
|
315 | + $e->setJson(); |
|
316 | + throw $e; |
|
317 | + } |
|
318 | 318 | } |
@@ -142,118 +142,118 @@ |
||
142 | 142 | * Tokens operations processing |
143 | 143 | */ |
144 | 144 | switch ($_POST['grant_type']) { |
145 | - case 'authorization_code': |
|
146 | - if (!isset($_POST['code'])) { |
|
147 | - $e = new ExitException( |
|
148 | - [ |
|
149 | - 'invalid_request', |
|
150 | - 'code parameter required' |
|
151 | - ], |
|
152 | - 400 |
|
153 | - ); |
|
154 | - $e->setJson(); |
|
155 | - throw $e; |
|
156 | - } |
|
157 | - $token_data = $OAuth2->get_code($_POST['code'], $client['id'], $client['secret'], urldecode($_POST['redirect_uri'])); |
|
158 | - if (!$token_data) { |
|
159 | - $e = new ExitException( |
|
160 | - [ |
|
161 | - 'access_denied', |
|
162 | - "Server can't get token data, check parameters and try again" |
|
163 | - ], |
|
164 | - 403 |
|
165 | - ); |
|
166 | - $e->setJson(); |
|
167 | - throw $e; |
|
168 | - } |
|
169 | - if ($token_data['expires_in'] < 0) { |
|
170 | - $e = new ExitException( |
|
171 | - [ |
|
172 | - 'access_denied', |
|
173 | - 'access_token expired' |
|
174 | - ], |
|
175 | - 403 |
|
176 | - ); |
|
177 | - $e->setJson(); |
|
178 | - throw $e; |
|
179 | - } |
|
180 | - $Page->json($token_data); |
|
181 | - return; |
|
182 | - case 'refresh_token': |
|
183 | - if (!isset($_POST['refresh_token'])) { |
|
184 | - $e = new ExitException( |
|
185 | - [ |
|
186 | - 'invalid_request', |
|
187 | - 'refresh_token parameter required' |
|
188 | - ], |
|
189 | - 400 |
|
190 | - ); |
|
191 | - $e->setJson(); |
|
192 | - throw $e; |
|
193 | - } |
|
194 | - $token_data = $OAuth2->refresh_token($_POST['refresh_token'], $client['id'], $client['secret']); |
|
195 | - if (!$token_data) { |
|
196 | - $e = new ExitException( |
|
197 | - [ |
|
198 | - 'access_denied', |
|
199 | - 'User session invalid' |
|
200 | - ], |
|
201 | - 403 |
|
202 | - ); |
|
203 | - $e->setJson(); |
|
204 | - throw $e; |
|
205 | - } |
|
206 | - $Page->json($token_data); |
|
207 | - return; |
|
208 | - case 'guest_token': |
|
209 | - if (User::instance()->user()) { |
|
210 | - $e = new ExitException( |
|
211 | - [ |
|
212 | - 'access_denied', |
|
213 | - 'Only guests, not user allowed to access this grant_type' |
|
214 | - ], |
|
215 | - 403 |
|
216 | - ); |
|
217 | - $e->setJson(); |
|
218 | - throw $e; |
|
219 | - } |
|
220 | - if (!$Config->module('OAuth2')->guest_tokens) { |
|
221 | - $e = new ExitException( |
|
222 | - [ |
|
223 | - 'access_denied', |
|
224 | - 'Guest tokens disabled' |
|
225 | - ], |
|
226 | - 403 |
|
227 | - ); |
|
228 | - $e->setJson(); |
|
229 | - throw $e; |
|
230 | - } |
|
231 | - $code = $OAuth2->add_code($client['id'], 'code', ''); |
|
232 | - if (!$code) { |
|
233 | - $e = new ExitException( |
|
234 | - [ |
|
235 | - 'server_error', |
|
236 | - "Server can't generate code, try later" |
|
237 | - ], |
|
238 | - 500 |
|
239 | - ); |
|
240 | - $e->setJson(); |
|
241 | - throw $e; |
|
242 | - } |
|
243 | - $token_data = $OAuth2->get_code($code, $client['id'], $client['secret'], ''); |
|
244 | - if ($token_data) { |
|
245 | - unset($token_data['refresh_token']); |
|
145 | + case 'authorization_code': |
|
146 | + if (!isset($_POST['code'])) { |
|
147 | + $e = new ExitException( |
|
148 | + [ |
|
149 | + 'invalid_request', |
|
150 | + 'code parameter required' |
|
151 | + ], |
|
152 | + 400 |
|
153 | + ); |
|
154 | + $e->setJson(); |
|
155 | + throw $e; |
|
156 | + } |
|
157 | + $token_data = $OAuth2->get_code($_POST['code'], $client['id'], $client['secret'], urldecode($_POST['redirect_uri'])); |
|
158 | + if (!$token_data) { |
|
159 | + $e = new ExitException( |
|
160 | + [ |
|
161 | + 'access_denied', |
|
162 | + "Server can't get token data, check parameters and try again" |
|
163 | + ], |
|
164 | + 403 |
|
165 | + ); |
|
166 | + $e->setJson(); |
|
167 | + throw $e; |
|
168 | + } |
|
169 | + if ($token_data['expires_in'] < 0) { |
|
170 | + $e = new ExitException( |
|
171 | + [ |
|
172 | + 'access_denied', |
|
173 | + 'access_token expired' |
|
174 | + ], |
|
175 | + 403 |
|
176 | + ); |
|
177 | + $e->setJson(); |
|
178 | + throw $e; |
|
179 | + } |
|
246 | 180 | $Page->json($token_data); |
247 | 181 | return; |
248 | - } else { |
|
249 | - $e = new ExitException( |
|
250 | - [ |
|
251 | - 'server_error', |
|
252 | - "Server can't get token data, try later" |
|
253 | - ], |
|
254 | - 500 |
|
255 | - ); |
|
256 | - $e->setJson(); |
|
257 | - throw $e; |
|
258 | - } |
|
182 | + case 'refresh_token': |
|
183 | + if (!isset($_POST['refresh_token'])) { |
|
184 | + $e = new ExitException( |
|
185 | + [ |
|
186 | + 'invalid_request', |
|
187 | + 'refresh_token parameter required' |
|
188 | + ], |
|
189 | + 400 |
|
190 | + ); |
|
191 | + $e->setJson(); |
|
192 | + throw $e; |
|
193 | + } |
|
194 | + $token_data = $OAuth2->refresh_token($_POST['refresh_token'], $client['id'], $client['secret']); |
|
195 | + if (!$token_data) { |
|
196 | + $e = new ExitException( |
|
197 | + [ |
|
198 | + 'access_denied', |
|
199 | + 'User session invalid' |
|
200 | + ], |
|
201 | + 403 |
|
202 | + ); |
|
203 | + $e->setJson(); |
|
204 | + throw $e; |
|
205 | + } |
|
206 | + $Page->json($token_data); |
|
207 | + return; |
|
208 | + case 'guest_token': |
|
209 | + if (User::instance()->user()) { |
|
210 | + $e = new ExitException( |
|
211 | + [ |
|
212 | + 'access_denied', |
|
213 | + 'Only guests, not user allowed to access this grant_type' |
|
214 | + ], |
|
215 | + 403 |
|
216 | + ); |
|
217 | + $e->setJson(); |
|
218 | + throw $e; |
|
219 | + } |
|
220 | + if (!$Config->module('OAuth2')->guest_tokens) { |
|
221 | + $e = new ExitException( |
|
222 | + [ |
|
223 | + 'access_denied', |
|
224 | + 'Guest tokens disabled' |
|
225 | + ], |
|
226 | + 403 |
|
227 | + ); |
|
228 | + $e->setJson(); |
|
229 | + throw $e; |
|
230 | + } |
|
231 | + $code = $OAuth2->add_code($client['id'], 'code', ''); |
|
232 | + if (!$code) { |
|
233 | + $e = new ExitException( |
|
234 | + [ |
|
235 | + 'server_error', |
|
236 | + "Server can't generate code, try later" |
|
237 | + ], |
|
238 | + 500 |
|
239 | + ); |
|
240 | + $e->setJson(); |
|
241 | + throw $e; |
|
242 | + } |
|
243 | + $token_data = $OAuth2->get_code($code, $client['id'], $client['secret'], ''); |
|
244 | + if ($token_data) { |
|
245 | + unset($token_data['refresh_token']); |
|
246 | + $Page->json($token_data); |
|
247 | + return; |
|
248 | + } else { |
|
249 | + $e = new ExitException( |
|
250 | + [ |
|
251 | + 'server_error', |
|
252 | + "Server can't get token data, try later" |
|
253 | + ], |
|
254 | + 500 |
|
255 | + ); |
|
256 | + $e->setJson(); |
|
257 | + throw $e; |
|
258 | + } |
|
259 | 259 | } |