diff --git a/core/class/perm/perm_check.php b/core/class/perm/perm_check.php index 0451d57..ec98c98 100644 --- a/core/class/perm/perm_check.php +++ b/core/class/perm/perm_check.php @@ -68,11 +68,7 @@ class perm_check{ }elseif($folder = C::t('folder')->fetch_home_by_uid($uid)){//查看当前用户的个人网盘fid if($folder['fid']){ if(!($folder['fid']==$fid)){//判断当前用户的个人网盘fid是否等于当前用户访问的fid - $fids = array(); - $fids[] = $folder['fid']; - foreach (C::t('folder')->fetch_all_folderfid_by_pfid($folder['fid']) as $v) {//查看当前用户的个人网盘下的所有目录 - $fids[] = $v; - } + $fids = get_all_chilrdenfid_by_pfid($folder['fid']); if (!(in_array($fid,$fids))){ return false; } diff --git a/core/function/function_core.php b/core/function/function_core.php index 7c92ed1..26a2885 100644 --- a/core/function/function_core.php +++ b/core/function/function_core.php @@ -3579,4 +3579,15 @@ function dzz_userconfig_init() if ($pathh==$shareLink){ return true; } +} + +//取得所有子级目录 +function get_all_chilrdenfid_by_pfid($pfid) +{ + static $fids = array(); + foreach(C::t('folder')->fetch_fid_by_pfid($pfid) as $v){ + $fids[] = $v['fid']; + get_all_chilrdenfid_by_pfid($v['fid']); + } + return $fids; } \ No newline at end of file