diff --git a/common.php b/common.php index cfb6372..a523f38 100644 --- a/common.php +++ b/common.php @@ -1297,6 +1297,389 @@ function fetch_files_children($files, $path, $page) return $files; } +function get_refresh_token() +{ + global $constStr; + global $CommonEnv; + $envs = ''; + foreach ($CommonEnv as $env) $envs .= '\'' . $env . '\', '; + $url = path_format($_SERVER['PHP_SELF'] . '/'); + if (isset($_GET['authorization_code']) && isset($_GET['code'])) { + $_SERVER['disktag'] = $_COOKIE['disktag']; + config_oauth(); + $tmp = curl_request($_SERVER['oauth_url'] . 'token', 'client_id=' . $_SERVER['client_id'] .'&client_secret=' . $_SERVER['client_secret'] . '&grant_type=authorization_code&requested_token_use=on_behalf_of&redirect_uri=' . $_SERVER['redirect_uri'] .'&code=' . $_GET['code']); + if ($tmp['stat']==200) $ret = json_decode($tmp['body'], true); + if (isset($ret['refresh_token'])) { + $refresh_token = $ret['refresh_token']; + $str = ' + refresh_token :
'; + $str .= ' +

+ '.getconstStr('SavingToken').' + '; + $tmptoken['refresh_token'] = $refresh_token; + $tmptoken['token_expires'] = time()+7*24*60*60; + if (getConfig('usesharepoint')=='on') $tmptoken['siteid'] = get_siteid($ret['access_token']); + setConfig($tmptoken, $_COOKIE['disktag']); + savecache('access_token', $ret['access_token'], $ret['expires_in'] - 60); + //WaitSCFStat(); + $str .= ' + '; + return message($str, getconstStr('WaitJumpIndex')); + } + return message('
' . json_encode(json_decode($tmp['body']), JSON_PRETTY_PRINT) . '
', $tmp['stat']); + //return message('
' . json_encode($ret, JSON_PRETTY_PRINT) . '
', 500); + } + if (isset($_GET['install1'])) { + $_SERVER['disktag'] = $_COOKIE['disktag']; + config_oauth(); + if (getConfig('Drive_ver')=='MS' || getConfig('Drive_ver')=='CN') { + return message(' + '.getconstStr('JumptoOffice').' + + ', getconstStr('Wait').' 1s', 201); + } else { + return message('Something error, retry after a few seconds.', 'retry', 201); + } + } + if (isset($_GET['install0'])) { + if ($_POST['disktag_add']!='') { + if (in_array($_COOKIE['disktag'], $CommonEnv)) { + return message('Do not input ' . $envs . '
', 'Error', 201); + } + $_SERVER['disktag'] = $_COOKIE['disktag']; + $tmp['disktag_add'] = $_POST['disktag_add']; + $tmp['diskname'] = $_POST['diskname']; + $tmp['Drive_ver'] = $_POST['Drive_ver']; + if ($_POST['Drive_ver']=='shareurl') { + $tmp['shareurl'] = $_POST['shareurl']; + $tmp['refresh_token'] = 1; + } else { + if ($_POST['Drive_custom']=='on') { + $tmp['Drive_custom'] = $_POST['Drive_custom']; + $tmp['client_id'] = $_POST['client_id']; + $tmp['client_secret'] = $_POST['client_secret']; + } + if ($_POST['usesharepoint']=='on') { + $tmp['usesharepoint'] = $_POST['usesharepoint']; + $tmp['sharepointSiteAddress'] = $_POST['sharepointSiteAddress']; + } + } + $response = setConfigResponse( setConfig($tmp, $_COOKIE['disktag']) ); + if (api_error($response)) { + $html = api_error_msg($response); + $title = 'Error'; + } else { + $title = getconstStr('MayinEnv'); + $html = getconstStr('Wait') . ' 3s'; + if ($_POST['Drive_ver']=='shareurl') $html = getconstStr('Wait') . ' 3s'; + } + return message($html, $title, 201); + } + } + + if ($constStr['language']!='zh-cn') { + $linklang='en-us'; + } else $linklang='zh-cn'; + $ru = "https://developer.microsoft.com/".$linklang."/graph/quick-start?appID=_appId_&appName=_appName_&redirectUrl=".$_SERVER['redirect_uri']."&platform=option-php"; + $deepLink = "/quickstart/graphIO?publicClientSupport=false&appName=OneManager&redirectUrl=".$_SERVER['redirect_uri']."&allowImplicitFlow=false&ru=".urlencode($ru); + $app_url = "https://apps.dev.microsoft.com/?deepLink=".urlencode($deepLink); + $html = ' +
+
+ '.getconstStr('OnedriveDiskTag').': ('.getConfig('disktag').')
+ '.getconstStr('OnedriveDiskName').':
+
+
+
+
+
+
+
+ +
+
+ +
+ +
+
+ +
+
+ '; + $title = 'Bind Disk'; + return message($html, $title, 201); +} + +function EnvOpt($needUpdate = 0) +{ + global $constStr; + global $ShowedCommonEnv; + global $ShowedInnerEnv; + global $timezones; + asort($ShowedCommonEnv); + asort($ShowedInnerEnv); + $html = 'OneManager '.getconstStr('Setup').''; + if (isset($_POST['updateProgram'])&&$_POST['updateProgram']==getconstStr('updateProgram')) { + $response = OnekeyUpate($_POST['auth'], $_POST['project'], $_POST['branch']); + if (api_error($response)) { + $html = api_error_msg($response); + $title = 'Error'; + } else { + //WaitSCFStat(); + $html .= getconstStr('UpdateSuccess') . '
+'; + $title = getconstStr('Setup'); + } + return message($html, $title); + } + if (isset($_POST['submit1'])) { + $_SERVER['disk_oprating'] = ''; + foreach ($_POST as $k => $v) { + if (in_array($k, $ShowedCommonEnv)||in_array($k, $ShowedInnerEnv)||$k=='disktag_del' || $k=='disktag_add') { + $tmp[$k] = $v; + } + if ($k == 'disk') $_SERVER['disk_oprating'] = $v; + } + /*if ($tmp['domain_path']!='') { + $tmp1 = explode("|",$tmp['domain_path']); + $tmparr = []; + foreach ($tmp1 as $multidomain_paths){ + $pos = strpos($multidomain_paths,":"); + if ($pos>0) $tmparr[substr($multidomain_paths, 0, $pos)] = path_format(substr($multidomain_paths, $pos+1)); + } + $tmp['domain_path'] = $tmparr; + }*/ + $response = setConfigResponse( setConfig($tmp, $_SERVER['disk_oprating']) ); + if (api_error($response)) { + $html = api_error_msg($response); + $title = 'Error'; + } else { + //WaitSCFStat(); + //sleep(3); + $html .= getconstStr('Success') . '!
+'; + $title = getconstStr('Setup'); + } + return message($html, $title); + } + if (isset($_GET['preview'])) { + $preurl = $_SERVER['PHP_SELF'] . '?preview'; + } else { + $preurl = path_format($_SERVER['PHP_SELF'] . '/'); + } + $html .= ' +'.getconstStr('Back').'   '.getconstStr('Back').getconstStr('Home').'
+Github
'; + + $html .= ' + + + + + '; + foreach ($ShowedCommonEnv as $key) { + if ($key=='timezone') { + $html .= ' + + + + '; + } elseif ($key=='theme') { + $theme_arr = scandir('theme'); + $html .= ' + + + + '; + } /*elseif ($key=='domain_path') { + $tmp = getConfig($key); + $domain_path = ''; + foreach ($tmp as $k1 => $v1) { + $domain_path .= $k1 . ':' . $v1 . '|'; + } + $domain_path = substr($domain_path, 0, -1); + $html .= ' + + + + '; + }*/ else $html .= ' + + + + '; + } + $html .= ' + + +
'.getconstStr('PlatformConfig').'
+ +
+ +

'; + foreach (explode("|",getConfig('disktag')) as $disktag) { + if ($disktag!='') { + $html .= ' + + + + + + '; + if (getConfig('refresh_token', $disktag)!='') { + $html .= ' + + '; + foreach ($ShowedInnerEnv as $key) { + $html .= ' + + + + '; + } + $html .= ' + + '; + } + $html .= ' +
'.$disktag.': + + +

'; + } + } + $html .= ' +'.getconstStr('AddDisk').'

'; + if (!((isset($_SERVER['USER'])&&$_SERVER['USER']==='qcloud')||(isset($_SERVER['HEROKU_APP_DIR'])&&$_SERVER['HEROKU_APP_DIR']==='/app'))) { + $html .= ' +'.getconstStr('VPSnotupdate').'
'; + } else { + $html .= ' +
+ + + + + + +
+ +'; + } + if ($needUpdate) { + $html .= '
+ ' . str_replace("\r", '
',$_SERVER['github_version']) . ' +
'; + } else { + $html .= getconstStr('NotNeedUpdate'); + } + return message($html, getconstStr('Setup')); +} + function render_list($path = '', $files = '') { global $exts; @@ -1557,6 +1940,8 @@ function render_list($path = '', $files = '') $html = str_replace('', getconstStr('EditTime'), $html); $html = str_replace('', getconstStr('Size'), $html); + $filenum = 0; + $tmp = splitfirst($html, ''); $html = $tmp[0]; $tmp = splitfirst($tmp[1], ''); @@ -2010,386 +2395,3 @@ function render_list($path = '', $files = '') if (isset($_SERVER['Set-Cookie'])) return output($html, $statusCode, [ 'Set-Cookie' => $_SERVER['Set-Cookie'], 'Content-Type' => 'text/html' ]); return output($html,$statusCode); } - -function get_refresh_token() -{ - global $constStr; - global $CommonEnv; - $envs = ''; - foreach ($CommonEnv as $env) $envs .= '\'' . $env . '\', '; - $url = path_format($_SERVER['PHP_SELF'] . '/'); - if (isset($_GET['authorization_code']) && isset($_GET['code'])) { - $_SERVER['disktag'] = $_COOKIE['disktag']; - config_oauth(); - $tmp = curl_request($_SERVER['oauth_url'] . 'token', 'client_id=' . $_SERVER['client_id'] .'&client_secret=' . $_SERVER['client_secret'] . '&grant_type=authorization_code&requested_token_use=on_behalf_of&redirect_uri=' . $_SERVER['redirect_uri'] .'&code=' . $_GET['code']); - if ($tmp['stat']==200) $ret = json_decode($tmp['body'], true); - if (isset($ret['refresh_token'])) { - $refresh_token = $ret['refresh_token']; - $str = ' - refresh_token :
'; - $str .= ' -

- '.getconstStr('SavingToken').' - '; - $tmptoken['refresh_token'] = $refresh_token; - $tmptoken['token_expires'] = time()+7*24*60*60; - if (getConfig('usesharepoint')=='on') $tmptoken['siteid'] = get_siteid($ret['access_token']); - setConfig($tmptoken, $_COOKIE['disktag']); - savecache('access_token', $ret['access_token'], $ret['expires_in'] - 60); - //WaitSCFStat(); - $str .= ' - '; - return message($str, getconstStr('WaitJumpIndex')); - } - return message('
' . json_encode(json_decode($tmp['body']), JSON_PRETTY_PRINT) . '
', $tmp['stat']); - //return message('
' . json_encode($ret, JSON_PRETTY_PRINT) . '
', 500); - } - if (isset($_GET['install1'])) { - $_SERVER['disktag'] = $_COOKIE['disktag']; - config_oauth(); - if (getConfig('Drive_ver')=='MS' || getConfig('Drive_ver')=='CN') { - return message(' - '.getconstStr('JumptoOffice').' - - ', getconstStr('Wait').' 1s', 201); - } else { - return message('Something error, retry after a few seconds.', 'retry', 201); - } - } - if (isset($_GET['install0'])) { - if ($_POST['disktag_add']!='') { - if (in_array($_COOKIE['disktag'], $CommonEnv)) { - return message('Do not input ' . $envs . '
', 'Error', 201); - } - $_SERVER['disktag'] = $_COOKIE['disktag']; - $tmp['disktag_add'] = $_POST['disktag_add']; - $tmp['diskname'] = $_POST['diskname']; - $tmp['Drive_ver'] = $_POST['Drive_ver']; - if ($_POST['Drive_ver']=='shareurl') { - $tmp['shareurl'] = $_POST['shareurl']; - $tmp['refresh_token'] = 1; - } else { - if ($_POST['Drive_custom']=='on') { - $tmp['Drive_custom'] = $_POST['Drive_custom']; - $tmp['client_id'] = $_POST['client_id']; - $tmp['client_secret'] = $_POST['client_secret']; - } - if ($_POST['usesharepoint']=='on') { - $tmp['usesharepoint'] = $_POST['usesharepoint']; - $tmp['sharepointSiteAddress'] = $_POST['sharepointSiteAddress']; - } - } - $response = setConfigResponse( setConfig($tmp, $_COOKIE['disktag']) ); - if (api_error($response)) { - $html = api_error_msg($response); - $title = 'Error'; - } else { - $title = getconstStr('MayinEnv'); - $html = getconstStr('Wait') . ' 3s'; - if ($_POST['Drive_ver']=='shareurl') $html = getconstStr('Wait') . ' 3s'; - } - return message($html, $title, 201); - } - } - - if ($constStr['language']!='zh-cn') { - $linklang='en-us'; - } else $linklang='zh-cn'; - $ru = "https://developer.microsoft.com/".$linklang."/graph/quick-start?appID=_appId_&appName=_appName_&redirectUrl=".$_SERVER['redirect_uri']."&platform=option-php"; - $deepLink = "/quickstart/graphIO?publicClientSupport=false&appName=OneManager&redirectUrl=".$_SERVER['redirect_uri']."&allowImplicitFlow=false&ru=".urlencode($ru); - $app_url = "https://apps.dev.microsoft.com/?deepLink=".urlencode($deepLink); - $html = ' -
-
- '.getconstStr('OnedriveDiskTag').': ('.getConfig('disktag').')
- '.getconstStr('OnedriveDiskName').':
-
-
-
-
-
-
-
- -
-
- -
- -
-
- -
-
- '; - $title = 'Bind Disk'; - return message($html, $title, 201); -} - -function EnvOpt($needUpdate = 0) -{ - global $constStr; - global $ShowedCommonEnv; - global $ShowedInnerEnv; - global $timezones; - asort($ShowedCommonEnv); - asort($ShowedInnerEnv); - $html = 'OneManager '.getconstStr('Setup').''; - if (isset($_POST['updateProgram'])&&$_POST['updateProgram']==getconstStr('updateProgram')) { - $response = OnekeyUpate($_POST['auth'], $_POST['project'], $_POST['branch']); - if (api_error($response)) { - $html = api_error_msg($response); - $title = 'Error'; - } else { - //WaitSCFStat(); - $html .= getconstStr('UpdateSuccess') . '
-'; - $title = getconstStr('Setup'); - } - return message($html, $title); - } - if (isset($_POST['submit1'])) { - $_SERVER['disk_oprating'] = ''; - foreach ($_POST as $k => $v) { - if (in_array($k, $ShowedCommonEnv)||in_array($k, $ShowedInnerEnv)||$k=='disktag_del' || $k=='disktag_add') { - $tmp[$k] = $v; - } - if ($k == 'disk') $_SERVER['disk_oprating'] = $v; - } - /*if ($tmp['domain_path']!='') { - $tmp1 = explode("|",$tmp['domain_path']); - $tmparr = []; - foreach ($tmp1 as $multidomain_paths){ - $pos = strpos($multidomain_paths,":"); - if ($pos>0) $tmparr[substr($multidomain_paths, 0, $pos)] = path_format(substr($multidomain_paths, $pos+1)); - } - $tmp['domain_path'] = $tmparr; - }*/ - $response = setConfigResponse( setConfig($tmp, $_SERVER['disk_oprating']) ); - if (api_error($response)) { - $html = api_error_msg($response); - $title = 'Error'; - } else { - //WaitSCFStat(); - //sleep(3); - $html .= getconstStr('Success') . '!
-'; - $title = getconstStr('Setup'); - } - return message($html, $title); - } - if (isset($_GET['preview'])) { - $preurl = $_SERVER['PHP_SELF'] . '?preview'; - } else { - $preurl = path_format($_SERVER['PHP_SELF'] . '/'); - } - $html .= ' -'.getconstStr('Back').'   '.getconstStr('Back').getconstStr('Home').'
-Github
'; - - $html .= ' - - - - - '; - foreach ($ShowedCommonEnv as $key) { - if ($key=='timezone') { - $html .= ' - - - - '; - } elseif ($key=='theme') { - $theme_arr = scandir('theme'); - $html .= ' - - - - '; - } /*elseif ($key=='domain_path') { - $tmp = getConfig($key); - $domain_path = ''; - foreach ($tmp as $k1 => $v1) { - $domain_path .= $k1 . ':' . $v1 . '|'; - } - $domain_path = substr($domain_path, 0, -1); - $html .= ' - - - - '; - }*/ else $html .= ' - - - - '; - } - $html .= ' - - -
'.getconstStr('PlatformConfig').'
- -
- -

'; - foreach (explode("|",getConfig('disktag')) as $disktag) { - if ($disktag!='') { - $html .= ' - - - - - - '; - if (getConfig('refresh_token', $disktag)!='') { - $html .= ' - - '; - foreach ($ShowedInnerEnv as $key) { - $html .= ' - - - - '; - } - $html .= ' - - '; - } - $html .= ' -
'.$disktag.': - - -

'; - } - } - $html .= ' -'.getconstStr('AddDisk').'

'; - if (!((isset($_SERVER['USER'])&&$_SERVER['USER']==='qcloud')||(isset($_SERVER['HEROKU_APP_DIR'])&&$_SERVER['HEROKU_APP_DIR']==='/app'))) { - $html .= ' -'.getconstStr('VPSnotupdate').'
'; - } else { - $html .= ' -
- - - - - - -
- -'; - } - if ($needUpdate) { - $html .= '
- ' . str_replace("\r", '
',$_SERVER['github_version']) . ' -
'; - } else { - $html .= getconstStr('NotNeedUpdate'); - } - return message($html, getconstStr('Setup')); -}