Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/wp-file-.../lib/php
File: elFinderVolumeOneDrive.class.php
return $res;
[500] Fix | Delete
} catch (Exception $e) {
[501] Fix | Delete
return array();
[502] Fix | Delete
}
[503] Fix | Delete
}
[504] Fix | Delete
[505] Fix | Delete
/**
[506] Fix | Delete
* Get thumbnail from OneDrive.com.
[507] Fix | Delete
*
[508] Fix | Delete
* @param string $path
[509] Fix | Delete
*
[510] Fix | Delete
* @return string | boolean
[511] Fix | Delete
*/
[512] Fix | Delete
protected function _od_getThumbnail($path)
[513] Fix | Delete
{
[514] Fix | Delete
list(, $itemId) = $this->_od_splitPath($path);
[515] Fix | Delete
[516] Fix | Delete
try {
[517] Fix | Delete
$url = self::API_URL . $itemId . '/thumbnails/0/medium/content';
[518] Fix | Delete
[519] Fix | Delete
return $this->_od_createCurl($url, $contents = true);
[520] Fix | Delete
} catch (Exception $e) {
[521] Fix | Delete
return false;
[522] Fix | Delete
}
[523] Fix | Delete
}
[524] Fix | Delete
[525] Fix | Delete
/**
[526] Fix | Delete
* Upload large files with an upload session.
[527] Fix | Delete
*
[528] Fix | Delete
* @param resource $fp source file pointer
[529] Fix | Delete
* @param number $size total size
[530] Fix | Delete
* @param string $name item name
[531] Fix | Delete
* @param string $itemId item identifier
[532] Fix | Delete
* @param string $parent parent
[533] Fix | Delete
* @param string $parentId parent identifier
[534] Fix | Delete
*
[535] Fix | Delete
* @return string The item path
[536] Fix | Delete
*/
[537] Fix | Delete
protected function _od_uploadSession($fp, $size, $name, $itemId, $parent, $parentId)
[538] Fix | Delete
{
[539] Fix | Delete
try {
[540] Fix | Delete
$send = $this->_od_getChunkData($fp);
[541] Fix | Delete
if ($send === false) {
[542] Fix | Delete
throw new Exception('Data can not be acquired from the source.');
[543] Fix | Delete
}
[544] Fix | Delete
[545] Fix | Delete
// create upload session
[546] Fix | Delete
if ($itemId) {
[547] Fix | Delete
$url = self::API_URL . $itemId . '/createUploadSession';
[548] Fix | Delete
} else {
[549] Fix | Delete
$url = self::API_URL . $parentId . ':/' . rawurlencode($name) . ':/createUploadSession';
[550] Fix | Delete
}
[551] Fix | Delete
$curl = $this->_od_prepareCurl($url);
[552] Fix | Delete
curl_setopt_array($curl, array(
[553] Fix | Delete
CURLOPT_POST => true,
[554] Fix | Delete
CURLOPT_POSTFIELDS => '{}',
[555] Fix | Delete
));
[556] Fix | Delete
$sess = json_decode(elFinder::curlExec($curl));
[557] Fix | Delete
[558] Fix | Delete
if ($sess) {
[559] Fix | Delete
if (isset($sess->error)) {
[560] Fix | Delete
throw new Exception($sess->error->message);
[561] Fix | Delete
}
[562] Fix | Delete
$next = strlen($send);
[563] Fix | Delete
$range = '0-' . ($next - 1) . '/' . $size;
[564] Fix | Delete
} else {
[565] Fix | Delete
throw new Exception('API response can not be obtained.');
[566] Fix | Delete
}
[567] Fix | Delete
[568] Fix | Delete
$id = null;
[569] Fix | Delete
$retry = 0;
[570] Fix | Delete
while ($sess) {
[571] Fix | Delete
elFinder::extendTimeLimit();
[572] Fix | Delete
$putFp = tmpfile();
[573] Fix | Delete
fwrite($putFp, $send);
[574] Fix | Delete
rewind($putFp);
[575] Fix | Delete
$_size = strlen($send);
[576] Fix | Delete
$url = $sess->uploadUrl;
[577] Fix | Delete
$curl = curl_init();
[578] Fix | Delete
$options = array(
[579] Fix | Delete
CURLOPT_URL => $url,
[580] Fix | Delete
CURLOPT_PUT => true,
[581] Fix | Delete
CURLOPT_RETURNTRANSFER => true,
[582] Fix | Delete
CURLOPT_INFILE => $putFp,
[583] Fix | Delete
CURLOPT_INFILESIZE => $_size,
[584] Fix | Delete
CURLOPT_HTTPHEADER => array(
[585] Fix | Delete
'Content-Length: ' . $_size,
[586] Fix | Delete
'Content-Range: bytes ' . $range,
[587] Fix | Delete
),
[588] Fix | Delete
);
[589] Fix | Delete
curl_setopt_array($curl, $options);
[590] Fix | Delete
$sess = json_decode(elFinder::curlExec($curl));
[591] Fix | Delete
if ($sess) {
[592] Fix | Delete
if (isset($sess->error)) {
[593] Fix | Delete
throw new Exception($sess->error->message);
[594] Fix | Delete
}
[595] Fix | Delete
if (isset($sess->id)) {
[596] Fix | Delete
$id = $sess->id;
[597] Fix | Delete
break;
[598] Fix | Delete
}
[599] Fix | Delete
if (isset($sess->nextExpectedRanges)) {
[600] Fix | Delete
list($_next) = explode('-', $sess->nextExpectedRanges[0]);
[601] Fix | Delete
if ($next == $_next) {
[602] Fix | Delete
$send = $this->_od_getChunkData($fp);
[603] Fix | Delete
if ($send === false) {
[604] Fix | Delete
throw new Exception('Data can not be acquired from the source.');
[605] Fix | Delete
}
[606] Fix | Delete
$next += strlen($send);
[607] Fix | Delete
$range = $_next . '-' . ($next - 1) . '/' . $size;
[608] Fix | Delete
$retry = 0;
[609] Fix | Delete
} else {
[610] Fix | Delete
if (++$retry > 3) {
[611] Fix | Delete
throw new Exception('Retry limit exceeded with uploadSession API call.');
[612] Fix | Delete
}
[613] Fix | Delete
}
[614] Fix | Delete
$sess->uploadUrl = $url;
[615] Fix | Delete
}
[616] Fix | Delete
} else {
[617] Fix | Delete
throw new Exception('API response can not be obtained.');
[618] Fix | Delete
}
[619] Fix | Delete
}
[620] Fix | Delete
[621] Fix | Delete
if ($id) {
[622] Fix | Delete
return $this->_joinPath($parent, $id);
[623] Fix | Delete
} else {
[624] Fix | Delete
throw new Exception('An error occurred in the uploadSession API call.');
[625] Fix | Delete
}
[626] Fix | Delete
} catch (Exception $e) {
[627] Fix | Delete
return $this->setError('OneDrive error: ' . $e->getMessage());
[628] Fix | Delete
}
[629] Fix | Delete
}
[630] Fix | Delete
[631] Fix | Delete
/**
[632] Fix | Delete
* Get chunk data by file pointer to upload session.
[633] Fix | Delete
*
[634] Fix | Delete
* @param resource $fp source file pointer
[635] Fix | Delete
*
[636] Fix | Delete
* @return bool|string chunked data
[637] Fix | Delete
*/
[638] Fix | Delete
protected function _od_getChunkData($fp)
[639] Fix | Delete
{
[640] Fix | Delete
static $chunkSize = null;
[641] Fix | Delete
if ($chunkSize === null) {
[642] Fix | Delete
$mem = elFinder::getIniBytes('memory_limit');
[643] Fix | Delete
if ($mem < 1) {
[644] Fix | Delete
$mem = 10485760; // 10 MiB
[645] Fix | Delete
} else {
[646] Fix | Delete
$mem -= memory_get_usage() - 1061548;
[647] Fix | Delete
$mem = min($mem, 10485760);
[648] Fix | Delete
}
[649] Fix | Delete
if ($mem > 327680) {
[650] Fix | Delete
$chunkSize = floor($mem / 327680) * 327680;
[651] Fix | Delete
} else {
[652] Fix | Delete
$chunkSize = $mem;
[653] Fix | Delete
}
[654] Fix | Delete
}
[655] Fix | Delete
if ($chunkSize < 8192) {
[656] Fix | Delete
return false;
[657] Fix | Delete
}
[658] Fix | Delete
[659] Fix | Delete
$contents = '';
[660] Fix | Delete
while (!feof($fp) && strlen($contents) < $chunkSize) {
[661] Fix | Delete
$contents .= fread($fp, 8192);
[662] Fix | Delete
}
[663] Fix | Delete
[664] Fix | Delete
return $contents;
[665] Fix | Delete
}
[666] Fix | Delete
[667] Fix | Delete
/**
[668] Fix | Delete
* Get AccessToken file path
[669] Fix | Delete
*
[670] Fix | Delete
* @return string ( description_of_the_return_value )
[671] Fix | Delete
*/
[672] Fix | Delete
protected function _od_getATokenFile()
[673] Fix | Delete
{
[674] Fix | Delete
$tmp = $aTokenFile = '';
[675] Fix | Delete
if (!empty($this->token->data->refresh_token)) {
[676] Fix | Delete
if (!$this->tmp) {
[677] Fix | Delete
$tmp = elFinder::getStaticVar('commonTempPath');
[678] Fix | Delete
if (!$tmp) {
[679] Fix | Delete
$tmp = $this->getTempPath();
[680] Fix | Delete
}
[681] Fix | Delete
$this->tmp = $tmp;
[682] Fix | Delete
}
[683] Fix | Delete
if ($tmp) {
[684] Fix | Delete
$aTokenFile = $tmp . DIRECTORY_SEPARATOR . $this->_od_getInitialToken() . '.otoken';
[685] Fix | Delete
}
[686] Fix | Delete
}
[687] Fix | Delete
return $aTokenFile;
[688] Fix | Delete
}
[689] Fix | Delete
[690] Fix | Delete
/**
[691] Fix | Delete
* Get Initial Token (MD5 hash)
[692] Fix | Delete
*
[693] Fix | Delete
* @return string
[694] Fix | Delete
*/
[695] Fix | Delete
protected function _od_getInitialToken()
[696] Fix | Delete
{
[697] Fix | Delete
return (empty($this->token->initialToken)? md5($this->options['client_id'] . (!empty($this->token->data->refresh_token)? $this->token->data->refresh_token : $this->token->data->access_token)) : $this->token->initialToken);
[698] Fix | Delete
}
[699] Fix | Delete
[700] Fix | Delete
/*********************************************************************/
[701] Fix | Delete
/* OVERRIDE FUNCTIONS */
[702] Fix | Delete
/*********************************************************************/
[703] Fix | Delete
[704] Fix | Delete
/**
[705] Fix | Delete
* Prepare
[706] Fix | Delete
* Call from elFinder::netmout() before volume->mount().
[707] Fix | Delete
*
[708] Fix | Delete
* @return array
[709] Fix | Delete
* @author Naoki Sawada
[710] Fix | Delete
* @author Raja Sharma updating for OneDrive
[711] Fix | Delete
**/
[712] Fix | Delete
public function netmountPrepare($options)
[713] Fix | Delete
{
[714] Fix | Delete
if (empty($options['client_id']) && defined('ELFINDER_ONEDRIVE_CLIENTID')) {
[715] Fix | Delete
$options['client_id'] = ELFINDER_ONEDRIVE_CLIENTID;
[716] Fix | Delete
}
[717] Fix | Delete
if (empty($options['client_secret']) && defined('ELFINDER_ONEDRIVE_CLIENTSECRET')) {
[718] Fix | Delete
$options['client_secret'] = ELFINDER_ONEDRIVE_CLIENTSECRET;
[719] Fix | Delete
}
[720] Fix | Delete
[721] Fix | Delete
if (isset($options['pass']) && $options['pass'] === 'reauth') {
[722] Fix | Delete
$options['user'] = 'init';
[723] Fix | Delete
$options['pass'] = '';
[724] Fix | Delete
$this->session->remove('OneDriveTokens');
[725] Fix | Delete
}
[726] Fix | Delete
[727] Fix | Delete
if (isset($options['id'])) {
[728] Fix | Delete
$this->session->set('nodeId', $options['id']);
[729] Fix | Delete
} elseif ($_id = $this->session->get('nodeId')) {
[730] Fix | Delete
$options['id'] = $_id;
[731] Fix | Delete
$this->session->set('nodeId', $_id);
[732] Fix | Delete
}
[733] Fix | Delete
[734] Fix | Delete
if (!empty($options['tmpPath'])) {
[735] Fix | Delete
if ((is_dir($options['tmpPath']) || mkdir($this->options['tmpPath'])) && is_writable($options['tmpPath'])) {
[736] Fix | Delete
$this->tmp = $options['tmpPath'];
[737] Fix | Delete
}
[738] Fix | Delete
}
[739] Fix | Delete
[740] Fix | Delete
try {
[741] Fix | Delete
if (empty($options['client_id']) || empty($options['client_secret'])) {
[742] Fix | Delete
return array('exit' => true, 'body' => '{msg:errNetMountNoDriver}');
[743] Fix | Delete
}
[744] Fix | Delete
[745] Fix | Delete
$itpCare = isset($options['code']);
[746] Fix | Delete
$code = $itpCare? $options['code'] : (isset($_GET['code'])? $_GET['code'] : '');
[747] Fix | Delete
if ($code) {
[748] Fix | Delete
try {
[749] Fix | Delete
if (!empty($options['id'])) {
[750] Fix | Delete
// Obtain the token using the code received by the OneDrive API
[751] Fix | Delete
$this->session->set('OneDriveTokens',
[752] Fix | Delete
$this->_od_obtainAccessToken($options['client_id'], $options['client_secret'], $code, $options['id']));
[753] Fix | Delete
[754] Fix | Delete
$out = array(
[755] Fix | Delete
'node' => $options['id'],
[756] Fix | Delete
'json' => '{"protocol": "onedrive", "mode": "done", "reset": 1}',
[757] Fix | Delete
'bind' => 'netmount',
[758] Fix | Delete
);
[759] Fix | Delete
} else {
[760] Fix | Delete
$nodeid = ($_GET['host'] === '1')? 'elfinder' : $_GET['host'];
[761] Fix | Delete
$out = array(
[762] Fix | Delete
'node' => $nodeid,
[763] Fix | Delete
'json' => json_encode(array(
[764] Fix | Delete
'protocol' => 'onedrive',
[765] Fix | Delete
'host' => $nodeid,
[766] Fix | Delete
'mode' => 'redirect',
[767] Fix | Delete
'options' => array(
[768] Fix | Delete
'id' => $nodeid,
[769] Fix | Delete
'code'=> $code
[770] Fix | Delete
)
[771] Fix | Delete
)),
[772] Fix | Delete
'bind' => 'netmount'
[773] Fix | Delete
);
[774] Fix | Delete
}
[775] Fix | Delete
if (!$itpCare) {
[776] Fix | Delete
return array('exit' => 'callback', 'out' => $out);
[777] Fix | Delete
} else {
[778] Fix | Delete
return array('exit' => true, 'body' => $out['json']);
[779] Fix | Delete
}
[780] Fix | Delete
} catch (Exception $e) {
[781] Fix | Delete
$out = array(
[782] Fix | Delete
'node' => $options['id'],
[783] Fix | Delete
'json' => json_encode(array('error' => elFinder::ERROR_ACCESS_DENIED . ' ' . $e->getMessage())),
[784] Fix | Delete
);
[785] Fix | Delete
[786] Fix | Delete
return array('exit' => 'callback', 'out' => $out);
[787] Fix | Delete
}
[788] Fix | Delete
} elseif (!empty($_GET['error'])) {
[789] Fix | Delete
$out = array(
[790] Fix | Delete
'node' => $options['id'],
[791] Fix | Delete
'json' => json_encode(array('error' => elFinder::ERROR_ACCESS_DENIED)),
[792] Fix | Delete
);
[793] Fix | Delete
[794] Fix | Delete
return array('exit' => 'callback', 'out' => $out);
[795] Fix | Delete
}
[796] Fix | Delete
[797] Fix | Delete
if ($options['user'] === 'init') {
[798] Fix | Delete
$this->token = $this->session->get('OneDriveTokens');
[799] Fix | Delete
[800] Fix | Delete
if ($this->token) {
[801] Fix | Delete
try {
[802] Fix | Delete
$this->_od_refreshToken();
[803] Fix | Delete
} catch (Exception $e) {
[804] Fix | Delete
$this->setError($e->getMessage());
[805] Fix | Delete
$this->token = null;
[806] Fix | Delete
$this->session->remove('OneDriveTokens');
[807] Fix | Delete
}
[808] Fix | Delete
}
[809] Fix | Delete
[810] Fix | Delete
if (empty($this->token)) {
[811] Fix | Delete
$result = false;
[812] Fix | Delete
} else {
[813] Fix | Delete
$path = $options['path'];
[814] Fix | Delete
if ($path === '/') {
[815] Fix | Delete
$path = 'root';
[816] Fix | Delete
}
[817] Fix | Delete
$result = $this->_od_query($path, false, false, array(
[818] Fix | Delete
'query' => array(
[819] Fix | Delete
'select' => 'id,name',
[820] Fix | Delete
'filter' => 'folder ne null',
[821] Fix | Delete
),
[822] Fix | Delete
));
[823] Fix | Delete
}
[824] Fix | Delete
[825] Fix | Delete
if ($result === false) {
[826] Fix | Delete
try {
[827] Fix | Delete
$this->session->set('OneDriveTokens', (object)array('token' => null));
[828] Fix | Delete
[829] Fix | Delete
$offline = '';
[830] Fix | Delete
// Gets a log in URL with sufficient privileges from the OneDrive API
[831] Fix | Delete
if (!empty($options['offline'])) {
[832] Fix | Delete
$offline = ' offline_access';
[833] Fix | Delete
}
[834] Fix | Delete
[835] Fix | Delete
$redirect_uri = elFinder::getConnectorUrl() . '/netmount/onedrive/' . ($options['id'] === 'elfinder'? '1' : $options['id']);
[836] Fix | Delete
$url = self::AUTH_URL
[837] Fix | Delete
. '?client_id=' . urlencode($options['client_id'])
[838] Fix | Delete
. '&scope=' . urlencode('files.readwrite.all' . $offline)
[839] Fix | Delete
. '&response_type=code'
[840] Fix | Delete
. '&redirect_uri=' . urlencode($redirect_uri);
[841] Fix | Delete
[842] Fix | Delete
} catch (Exception $e) {
[843] Fix | Delete
return array('exit' => true, 'body' => '{msg:errAccess}');
[844] Fix | Delete
}
[845] Fix | Delete
[846] Fix | Delete
$html = '<input id="elf-volumedriver-onedrive-host-btn" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" value="{msg:btnApprove}" type="button">';
[847] Fix | Delete
$html .= '<script>
[848] Fix | Delete
jQuery("#' . $options['id'] . '").elfinder("instance").trigger("netmount", {protocol: "onedrive", mode: "makebtn", url: "' . $url . '"});
[849] Fix | Delete
</script>';
[850] Fix | Delete
[851] Fix | Delete
return array('exit' => true, 'body' => $html);
[852] Fix | Delete
} else {
[853] Fix | Delete
$folders = [];
[854] Fix | Delete
[855] Fix | Delete
if ($result) {
[856] Fix | Delete
foreach ($result as $res) {
[857] Fix | Delete
$folders[$res->id] = $res->name;
[858] Fix | Delete
}
[859] Fix | Delete
natcasesort($folders);
[860] Fix | Delete
}
[861] Fix | Delete
[862] Fix | Delete
if ($options['pass'] === 'folders') {
[863] Fix | Delete
return ['exit' => true, 'folders' => $folders];
[864] Fix | Delete
}
[865] Fix | Delete
[866] Fix | Delete
$folders = ['root' => 'My OneDrive'] + $folders;
[867] Fix | Delete
$folders = json_encode($folders);
[868] Fix | Delete
[869] Fix | Delete
$expires = empty($this->token->data->refresh_token) ? (int)$this->token->expires : 0;
[870] Fix | Delete
$mnt2res = empty($this->token->data->refresh_token) ? '' : ', "mnt2res": 1';
[871] Fix | Delete
$json = '{"protocol": "onedrive", "mode": "done", "folders": ' . $folders . ', "expires": ' . $expires . $mnt2res .'}';
[872] Fix | Delete
$html = 'OneDrive.com';
[873] Fix | Delete
$html .= '<script>
[874] Fix | Delete
jQuery("#' . $options['id'] . '").elfinder("instance").trigger("netmount", ' . $json . ');
[875] Fix | Delete
</script>';
[876] Fix | Delete
[877] Fix | Delete
return array('exit' => true, 'body' => $html);
[878] Fix | Delete
}
[879] Fix | Delete
}
[880] Fix | Delete
} catch (Exception $e) {
[881] Fix | Delete
return array('exit' => true, 'body' => '{msg:errNetMountNoDriver}');
[882] Fix | Delete
}
[883] Fix | Delete
[884] Fix | Delete
if ($_aToken = $this->session->get('OneDriveTokens')) {
[885] Fix | Delete
$options['accessToken'] = json_encode($_aToken);
[886] Fix | Delete
if ($this->options['path'] === 'root' || !$this->options['path']) {
[887] Fix | Delete
$this->options['path'] = '/';
[888] Fix | Delete
}
[889] Fix | Delete
} else {
[890] Fix | Delete
$this->session->remove('OneDriveTokens');
[891] Fix | Delete
$this->setError(elFinder::ERROR_NETMOUNT, $options['host'], implode(' ', $this->error()));
[892] Fix | Delete
[893] Fix | Delete
return array('exit' => true, 'error' => $this->error());
[894] Fix | Delete
}
[895] Fix | Delete
[896] Fix | Delete
$this->session->remove('nodeId');
[897] Fix | Delete
unset($options['user'], $options['pass'], $options['id']);
[898] Fix | Delete
[899] Fix | Delete
return $options;
[900] Fix | Delete
}
[901] Fix | Delete
[902] Fix | Delete
/**
[903] Fix | Delete
* process of on netunmount
[904] Fix | Delete
* Drop `onedrive` & rm thumbs.
[905] Fix | Delete
*
[906] Fix | Delete
* @param array $options
[907] Fix | Delete
*
[908] Fix | Delete
* @return bool
[909] Fix | Delete
*/
[910] Fix | Delete
public function netunmount($netVolumes, $key)
[911] Fix | Delete
{
[912] Fix | Delete
if (!$this->options['useApiThumbnail'] && ($tmbs = glob(rtrim($this->options['tmbPath'], '\\/') . DIRECTORY_SEPARATOR . $this->tmbPrefix . '*.png'))) {
[913] Fix | Delete
foreach ($tmbs as $file) {
[914] Fix | Delete
unlink($file);
[915] Fix | Delete
}
[916] Fix | Delete
}
[917] Fix | Delete
[918] Fix | Delete
return true;
[919] Fix | Delete
}
[920] Fix | Delete
[921] Fix | Delete
/**
[922] Fix | Delete
* Return debug info for client.
[923] Fix | Delete
*
[924] Fix | Delete
* @return array
[925] Fix | Delete
**/
[926] Fix | Delete
public function debug()
[927] Fix | Delete
{
[928] Fix | Delete
$res = parent::debug();
[929] Fix | Delete
if (!empty($this->options['netkey']) && !empty($this->options['accessToken'])) {
[930] Fix | Delete
$res['accessToken'] = $this->options['accessToken'];
[931] Fix | Delete
}
[932] Fix | Delete
[933] Fix | Delete
return $res;
[934] Fix | Delete
}
[935] Fix | Delete
[936] Fix | Delete
/*********************************************************************/
[937] Fix | Delete
/* INIT AND CONFIGURE */
[938] Fix | Delete
/*********************************************************************/
[939] Fix | Delete
[940] Fix | Delete
/**
[941] Fix | Delete
* Prepare FTP connection
[942] Fix | Delete
* Connect to remote server and check if credentials are correct, if so, store the connection id in $ftp_conn.
[943] Fix | Delete
*
[944] Fix | Delete
* @return bool
[945] Fix | Delete
* @throws elFinderAbortException
[946] Fix | Delete
* @author Dmitry (dio) Levashov
[947] Fix | Delete
* @author Cem (DiscoFever)
[948] Fix | Delete
*/
[949] Fix | Delete
protected function init()
[950] Fix | Delete
{
[951] Fix | Delete
if (!$this->options['accessToken']) {
[952] Fix | Delete
return $this->setError('Required option `accessToken` is undefined.');
[953] Fix | Delete
}
[954] Fix | Delete
[955] Fix | Delete
if (!empty($this->options['tmpPath'])) {
[956] Fix | Delete
if ((is_dir($this->options['tmpPath']) || mkdir($this->options['tmpPath'])) && is_writable($this->options['tmpPath'])) {
[957] Fix | Delete
$this->tmp = $this->options['tmpPath'];
[958] Fix | Delete
}
[959] Fix | Delete
}
[960] Fix | Delete
[961] Fix | Delete
$error = false;
[962] Fix | Delete
try {
[963] Fix | Delete
$this->token = json_decode($this->options['accessToken']);
[964] Fix | Delete
if (!is_object($this->token)) {
[965] Fix | Delete
throw new Exception('Required option `accessToken` is invalid JSON.');
[966] Fix | Delete
}
[967] Fix | Delete
[968] Fix | Delete
// make net mount key
[969] Fix | Delete
if (empty($this->options['netkey'])) {
[970] Fix | Delete
$this->netMountKey = $this->_od_getInitialToken();
[971] Fix | Delete
} else {
[972] Fix | Delete
$this->netMountKey = $this->options['netkey'];
[973] Fix | Delete
}
[974] Fix | Delete
[975] Fix | Delete
if ($this->aTokenFile = $this->_od_getATokenFile()) {
[976] Fix | Delete
if (empty($this->options['netkey'])) {
[977] Fix | Delete
if ($this->aTokenFile) {
[978] Fix | Delete
if (is_file($this->aTokenFile)) {
[979] Fix | Delete
$this->token = json_decode(file_get_contents($this->aTokenFile));
[980] Fix | Delete
if (!is_object($this->token)) {
[981] Fix | Delete
unlink($this->aTokenFile);
[982] Fix | Delete
throw new Exception('Required option `accessToken` is invalid JSON.');
[983] Fix | Delete
}
[984] Fix | Delete
} else {
[985] Fix | Delete
file_put_contents($this->aTokenFile, $this->token);
[986] Fix | Delete
}
[987] Fix | Delete
}
[988] Fix | Delete
} else if (is_file($this->aTokenFile)) {
[989] Fix | Delete
// If the refresh token is the same as the permanent volume
[990] Fix | Delete
$this->token = json_decode(file_get_contents($this->aTokenFile));
[991] Fix | Delete
}
[992] Fix | Delete
}
[993] Fix | Delete
[994] Fix | Delete
if ($this->needOnline) {
[995] Fix | Delete
$this->_od_refreshToken();
[996] Fix | Delete
[997] Fix | Delete
$this->expires = empty($this->token->data->refresh_token) ? (int)$this->token->expires : 0;
[998] Fix | Delete
}
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function