3�U�B��/Please check your email for a confirmation link�����'\MZ�(Vehica\Providers\UserRoleServiceProviderceProvider; ��ۨ��o�(vehica\providers\userroleserviceproviderphpphp���)/** @noinspection PhpIncludeInspection */tion; use Veh�66�[Xx�-vehica\panel\panelfield\descriptionpanelfield@����A�`��6�-vehica\panel\panelfield\customfieldpanelfield�A�`��6�-vehica\panel\panelfield\customfieldpanelfield�66�[Xx�-vehica\panel\panelfield\descriptionpanelfield�66�[Xx�-vehica\panel\panelfield\descriptionpanelfieldq����q�-vehica\providers\frontendpanelserviceproviderz9kmqT0P_oW �;�j/�-Vehica\Providers\FrontendPanelServiceProviderp�����3KB�(�-Vehica\Panel\PanelField\CustomFieldPanelField use Vehicʼn~��k��-Vehica\Panel\PanelField\DescriptionPanelFieldphp�•�� �+vehica\providers\get_post_type_archive_link?�Y�.`�+Vehica\Providers\get_post_type_archive_link���������x�(Vehica\Providers\SettingsServiceProviderSimpleTextAttri{�P��2�&Firebase\JWT\SignatureInvalidExceptionn�^��%\��(vehica\providers\settingsserviceproviderphpon.phpң ��Y�)Vehica\Providers\ElementorServiceProviderse Vehica\Corer�q�h�)vehica\providers\elementorserviceproviderphp use Vehic�˩@�)Vehica\Providers\WordpressServiceProvideron; use Vehic�a�>N��-Vehica\Providers\NotificationsServiceProviderphp use �Ɏ*�ѐ�+Vehica\Providers\ContactFormServiceProvider exit; }g~��%��+vehica\providers\contactformserviceproviderphp:16:"han�hy��)�(vehica\providers\currencyserviceprovidern.phpn_monsterr��Gz��(Vehica\Providers\CurrencyServiceProviderphplators:insɎw��>6�1Hybridauth\Exception\AuthorizationDeniedExceptionnteSp�;[��F�+Hybridauth\Exception\BadMethodCallExceptionn�Pq1�2O�)vehica\providers\wordpressserviceproviderphp exit; `I�R1,U�'Hybridauth\Exception\ExceptionInterfacee��Ň2vr�/Hybridauth\Exception\HttpClientFailureExceptionnq��]Q��q0�/Hybridauth\Exception\HttpRequestFailedExceptionn�7ϴ�0Hybridauth\Exception\InvalidAccessTokenExceptionn����^���� �-Hybridauth\Exception\InvalidArgumentExceptionn@���!&���/Hybridauth\Exception\InvalidOauthTokenExceptionn����7<�2�5Hybridauth\Exception\InvalidOpenidIdentifierExceptionnT��fsBȍ,Hybridauth\Exception\NotImplementedExceptionnH�Ï�-��¿�3Hybridauth\Exception\UnexpectedApiResponseExceptionna���:��-Hybridauth\Exception\UnexpectedValueExceptionn)/** @noinspection PhpIncludeInspection */ exit; }ridath/sX�K��t/Gu�������� ��T��)Hybridauth\HttpClient\HttpClientInterfacee���rt tim�-/** * @return Loco_fs_Locations */��Ï�-/** * @return Loco_fs_Locations */��,/** * @return Loco_fs_Locations */face.php-/** * @return Loco_fs_Locations */apper.php-/** * @return Loco_fs_Locations */php)/** * Handles various file locations */tions extends 萲@��@p�@ /�@�Ϩ@���@�?�@��@hO�@��ڎ�@�(��@array_pop($pathParts); // array_pop($pathParts); // $parentPath = implode('/', $pathParts); // if (!empty($parentPath)) { // $parentPath .= '/'; // } // // $parentDirectory = new StorageFile('DIR', $parentPath, '..'); // array_unshift($files, $parentDirectory); // } $mtypes = array_values(get_allowed_mime_types(get_current_user_id())); $mtypes[] = 'image/psd'; Tracker::trackView('Storage Browser', '/browser'); echo View::render_view('storage/storage-browser', [ 'title' => 'Cloud Storage Browser', 'bucketName' => $storageTool->client()->bucket(), "path" => $currentPath, "directUploads" => $directUploads, // 'files' => $files, 'allowUploads' => $this->settings->multisiteAllowUploads, 'allowDeleting' => $this->settings->multisiteAllowDeleting, 'allowedMimes' => $mtypes ]); } public function selectDirectory() { if (!check_ajax_referer('storage-browser', 'nonce')) { json_response([ 'status' => 'error', 'message' => 'Invalid nonce' ]); } $currentPath = (empty($_POST['key'])) ? '' : $_POST['key']; $this->renderDirectory($currentPath); } public function browserSelectDirectory() { if (!check_ajax_referer('storage-browser', 'nonce')) { json_response([ 'status' => 'error', 'message' => 'Invalid nonce' ]); } $currentPath = (empty($_POST['key'])) ? '' : $_POST['key']; $this->renderDirectory($currentPath, true, true, false, false); } protected function renderDirectory($currentPath, $tableOnly = false, $hideCheckBoxes = false, $hideActions = false, $allowDeleting = true) { if (is_multisite() && !empty($this->settings->multisiteRoot)) { if (strpos($currentPath, $this->settings->multisiteRoot) === false) { $currentPath = $this->settings->multisiteRoot; } } /** @var StorageTool $storageTool */ $storageTool = ToolsManager::instance()->tools['storage']; $files = $storageTool->client()->dir($currentPath)['files']; if (!empty($currentPath)) { $pathParts = explode('/', $currentPath); array_pop($pathParts); array_pop($pathParts); $parentPath = implode('/', $pathParts); if (!empty($parentPath)) { $parentPath .= '/'; } $parentDirectory = new StorageFile('DIR', $parentPath, '..'); array_unshift($files, $parentDirectory); } $table = View::render_view('storage/browser-table', [ 'hideCheckBoxes' => $hideCheckBoxes, 'hideActions' => $hideActions, 'files' => $files, 'allowUploads' => $this->settings->multisiteAllowUploads, 'allowDeleting' => ($allowDeleting && $this->settings->multisiteAllowDeleting) ]); $data = [ 'status' => 'ok', 'table' => $table, 'nextNonce' => wp_create_nonce('storage-browser') ]; if (empty($tableOnly)) { $header = View::render_view('storage/browser-header', [ 'bucketName' => $storageTool->client()->bucket(), 'path' => $currentPath ]); $data['header'] = $header; } json_response($data); } public function createDirectory() { if (!check_ajax_referer('storage-browser', 'nonce')) { json_response([ 'status' => 'error', 'message' => 'Invalid nonce' ]); } $currentPath = (empty($_POST['key'])) ? '' : $_POST['key']; if (!empty($currentPath)) { $currentPath = rtrim($currentPath, '/').'/'; } $newDirectory = sanitize_title((empty($_POST['directory'])) ? '' : $_POST['directory']); Tracker::trackView('Storage Browser - Create Directory', '/browser/create'); /** @var StorageTool $storageTool */ $storageTool = ToolsManager::instance()->tools['storage']; if (!$storageTool->client()->createDirectory($currentPath.$newDirectory)) { json_response([ 'status' => 'error', 'nextNonce' => wp_create_nonce('storage-browser') ]); } else { $this->renderDirectory($currentPath); } } public function deleteItems() { if (!check_ajax_referer('storage-browser', 'nonce')) { json_response([ 'status' => 'error', 'message' => 'Invalid nonce' ]); } if (empty($_POST['keys']) || !is_array($_POST['keys'])) { json_response([ 'status' => 'error', 'message' => 'Missing keys' ]); } Tracker::trackView('Storage Browser - Delete', '/browser/delete'); /** @var StorageTool $storageTool */ $storageTool = ToolsManager::instance()->tools['storage']; foreach($_REQUEST['keys'] as $key) { if (is_multisite() && !empty($this->settings->multisiteRoot)) { if (strpos($key, $this->settings->multisiteRoot) === false) { continue; } } if (strpos(strrev($key), '/') === 0) { $storageTool->client()->deleteDirectory($key); } else { $storageTool->client()->delete($key); } } wp_send_json([ 'status' => 'ok' ], 200); } public function listFiles() { if (!check_ajax_referer('storage-browser', 'nonce')) { json_response([ 'status' => 'error', 'message' => 'Invalid nonce' ]); } if (empty($_POST['keys']) || !is_array($_POST['keys'])) { json_response([ 'status' => 'error', 'message' => 'Missing keys' ]); } /** @var StorageTool $storageTool */ $storageTool = ToolsManager::instance()->tools['storage']; $fileList = $storageTool->getFileList($_REQUEST['keys'], (isset($_POST['skipThumbnails']) && ($_POST['skipThumbnails'] != "false"))); json_response([ 'status' => 'ok', 'files' => $fileList['files'], 'nextNonce' => wp_create_nonce('storage-browser') ]); } public function listFilesChunk() { if (!check_ajax_referer('storage-browser', 'nonce')) { json_response([ 'status' => 'error', 'message' => 'Invalid nonce' ]); } $next = isset($_REQUEST['next']) ? $_REQUEST['next'] : null; $path = isset($_REQUEST['path']) ? $_REQUEST['path'] : ''; if (is_multisite() && !empty($this->settings->multisiteRoot)) { if (strpos($path, $this->settings->multisiteRoot) === false) { $path = $this->settings->multisiteRoot; } } if ($path == '/') { $path = ''; } /** @var StorageTool $storageTool */ $storageTool = ToolsManager::instance()->tools['storage']; $fileList = $storageTool->client()->dir($path, '/', 30, $next); json_response([ 'status' => 'ok', 'path' => $path, 'files' => $fileList['files'], 'next' => $fileList['next'], 'nextNonce' => wp_create_nonce('storage-browser') ]); } public function importFile() { if (!check_ajax_referer('storage-browser', 'nonce')) { json_response([ 'status' => 'error', 'message' => 'Invalid nonce' ]); } $key = (empty($_POST['key'])) ? '' : $_POST['key']; if (is_multisite() && !empty($this->settings->multisiteRoot)) { if (strpos($key, $this->settings->multisiteRoot) === false) { json_response([ 'status' => 'error', 'message' => 'Invalid path' ]); } } if (empty($key)) { json_response([ 'status' => 'error', 'message' => 'Missing key' ]); } $thumbs = (isset($_POST['thumbs'])) ? $_POST['thumbs'] : []; $importOnly = (isset($_POST['importOnly']) && ($_POST['importOnly'] == 'true')); $preservePaths = (isset($_POST['preservePaths']) && ($_POST['preservePaths'] == 'true')); /** @var StorageTool $storageTool */ $storageTool = ToolsManager::instance()->tools['storage']; $success = $storageTool->importFileFromStorage($key, $thumbs, $importOnly, $preservePaths); json_response([ 'status' => ($success) ? 'ok' : 'error', 'nextNonce' => wp_create_nonce('storage-browser') ]); } public function trackAction() { if (!check_ajax_referer('storage-browser', 'nonce')) { json_response([ 'status' => 'error', 'message' => 'Invalid nonce' ]); } if (!isset($_POST['track'])) { json_response([ 'status' => 'error', 'message' => 'Missing track variable' ]); } $track = $_POST['track']; if (!in_array($track, ['upload', 'import'])) { json_response([ 'status' => 'error', 'message' => 'Invalid track' ]); } $title = ($track == 'upload') ? 'Storage Browser - Upload' : 'Storage Browser - Import'; Tracker::trackView($title, "/browser/{$track}"); json_response([ 'status' => 'ok' ]); } }