HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/hcv/wp-content/plugins/w3-total-cache/Cdn_GoogleDrive_AdminActions.php
<?php
namespace W3TC;



class Cdn_GoogleDrive_AdminActions {
	private $_config = null;

	function __construct() {
		$this->_config = Dispatcher::config();
	}



	function w3tc_cdn_google_drive_auth_return() {
		$view = new Cdn_GoogleDrive_Popup_AuthReturn();
		$view->render();
		exit();
	}



	function w3tc_cdn_google_drive_auth_set() {
		// thanks wp core for wp_magic_quotes hell
		$client_id = stripslashes( $_POST['client_id'] );
		$access_token = stripslashes( $_POST['access_token'] );
		$refresh_token = stripslashes( $_POST['refresh_token'] );

		$client = new \W3TCG_Google_Client();
		$client->setClientId( $client_id );
		$client->setAccessToken( $access_token );

		//
		// get folder details
		//
		$service = new \W3TCG_Google_Service_Drive( $client );

		if ( empty( $_POST['folder'] ) ) {
			$file = new \W3TCG_Google_Service_Drive_DriveFile( array(
					'title' => $_POST['folder_new'],
					'mimeType' => 'application/vnd.google-apps.folder' ) );

			$created_file = $service->files->insert( $file );
			$used_folder_id = $created_file->id;
		} else {
			$used_folder_id = $_POST['folder'];
		}

		$permission = new \W3TCG_Google_Service_Drive_Permission();
		$permission->setValue( '' );
		$permission->setType( 'anyone' );
		$permission->setRole( 'reader' );

		$service->permissions->insert( $used_folder_id, $permission );

		$used_folder = $service->files->get( $used_folder_id );


		//
		// save new configuration
		//
		delete_transient( 'w3tc_cdn_google_drive_folder_ids' );
		$this->_config->set( 'cdn.google_drive.client_id', $client_id );
		$this->_config->set( 'cdn.google_drive.refresh_token', $refresh_token );
		$this->_config->set( 'cdn.google_drive.folder.id', $used_folder->id );
		$this->_config->set( 'cdn.google_drive.folder.title',
			$used_folder->title );
		$this->_config->set( 'cdn.google_drive.folder.url',
			$used_folder->webViewLink );
		$this->_config->save();


		$cs = Dispatcher::config_state();
		$cs->set( 'cdn.google_drive.access_token', $access_token );
		$cs->save();

		wp_redirect( 'admin.php?page=w3tc_cdn', false );
	}
}