From bf5fbb4b2c7f6f2792b96b3039d29fd64b6e48ab Mon Sep 17 00:00:00 2001
From: Anyon <zoujingli@qq.com>
Date: Fri, 4 Sep 2020 14:41:49 +0800
Subject: [PATCH] ComposerUpdate

---
 vendor/autoload.php                           |  2 +-
 vendor/composer/autoload_real.php             | 14 +++++++-------
 vendor/composer/autoload_static.php           | 10 +++++-----
 vendor/composer/installed.json                |  8 ++++----
 vendor/services.php                           |  2 +-
 .../src/service/ModuleService.php             |  8 ++++----
 .../think-library/src/service/NodeService.php | 19 ++++++++++++-------
 7 files changed, 34 insertions(+), 29 deletions(-)

diff --git a/vendor/autoload.php b/vendor/autoload.php
index bebe77724..7fec3f8a1 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer/autoload_real.php';
 
-return ComposerAutoloaderInitd21bcdb0e9e0fd6013ffb7c64c8a9d94::getLoader();
+return ComposerAutoloaderInit7ad2dfd941224dedfd9e69a3187017d8::getLoader();
diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php
index c89c4fdf2..5f5859490 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInitd21bcdb0e9e0fd6013ffb7c64c8a9d94
+class ComposerAutoloaderInit7ad2dfd941224dedfd9e69a3187017d8
 {
     private static $loader;
 
@@ -22,15 +22,15 @@ class ComposerAutoloaderInitd21bcdb0e9e0fd6013ffb7c64c8a9d94
             return self::$loader;
         }
 
-        spl_autoload_register(array('ComposerAutoloaderInitd21bcdb0e9e0fd6013ffb7c64c8a9d94', 'loadClassLoader'), true, true);
+        spl_autoload_register(array('ComposerAutoloaderInit7ad2dfd941224dedfd9e69a3187017d8', 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInitd21bcdb0e9e0fd6013ffb7c64c8a9d94', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInit7ad2dfd941224dedfd9e69a3187017d8', 'loadClassLoader'));
 
         $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
         if ($useStaticLoader) {
             require_once __DIR__ . '/autoload_static.php';
 
-            call_user_func(\Composer\Autoload\ComposerStaticInitd21bcdb0e9e0fd6013ffb7c64c8a9d94::getInitializer($loader));
+            call_user_func(\Composer\Autoload\ComposerStaticInit7ad2dfd941224dedfd9e69a3187017d8::getInitializer($loader));
         } else {
             $map = require __DIR__ . '/autoload_namespaces.php';
             foreach ($map as $namespace => $path) {
@@ -51,19 +51,19 @@ class ComposerAutoloaderInitd21bcdb0e9e0fd6013ffb7c64c8a9d94
         $loader->register(true);
 
         if ($useStaticLoader) {
-            $includeFiles = Composer\Autoload\ComposerStaticInitd21bcdb0e9e0fd6013ffb7c64c8a9d94::$files;
+            $includeFiles = Composer\Autoload\ComposerStaticInit7ad2dfd941224dedfd9e69a3187017d8::$files;
         } else {
             $includeFiles = require __DIR__ . '/autoload_files.php';
         }
         foreach ($includeFiles as $fileIdentifier => $file) {
-            composerRequired21bcdb0e9e0fd6013ffb7c64c8a9d94($fileIdentifier, $file);
+            composerRequire7ad2dfd941224dedfd9e69a3187017d8($fileIdentifier, $file);
         }
 
         return $loader;
     }
 }
 
-function composerRequired21bcdb0e9e0fd6013ffb7c64c8a9d94($fileIdentifier, $file)
+function composerRequire7ad2dfd941224dedfd9e69a3187017d8($fileIdentifier, $file)
 {
     if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
         require $file;
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index e31c49314..13957fe5e 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -4,7 +4,7 @@
 
 namespace Composer\Autoload;
 
-class ComposerStaticInitd21bcdb0e9e0fd6013ffb7c64c8a9d94
+class ComposerStaticInit7ad2dfd941224dedfd9e69a3187017d8
 {
     public static $files = array (
         '9b552a3cc426e3287cc811caefa3cf53' => __DIR__ . '/..' . '/topthink/think-helper/src/helper.php',
@@ -651,10 +651,10 @@ class ComposerStaticInitd21bcdb0e9e0fd6013ffb7c64c8a9d94
     public static function getInitializer(ClassLoader $loader)
     {
         return \Closure::bind(function () use ($loader) {
-            $loader->prefixLengthsPsr4 = ComposerStaticInitd21bcdb0e9e0fd6013ffb7c64c8a9d94::$prefixLengthsPsr4;
-            $loader->prefixDirsPsr4 = ComposerStaticInitd21bcdb0e9e0fd6013ffb7c64c8a9d94::$prefixDirsPsr4;
-            $loader->fallbackDirsPsr0 = ComposerStaticInitd21bcdb0e9e0fd6013ffb7c64c8a9d94::$fallbackDirsPsr0;
-            $loader->classMap = ComposerStaticInitd21bcdb0e9e0fd6013ffb7c64c8a9d94::$classMap;
+            $loader->prefixLengthsPsr4 = ComposerStaticInit7ad2dfd941224dedfd9e69a3187017d8::$prefixLengthsPsr4;
+            $loader->prefixDirsPsr4 = ComposerStaticInit7ad2dfd941224dedfd9e69a3187017d8::$prefixDirsPsr4;
+            $loader->fallbackDirsPsr0 = ComposerStaticInit7ad2dfd941224dedfd9e69a3187017d8::$fallbackDirsPsr0;
+            $loader->classMap = ComposerStaticInit7ad2dfd941224dedfd9e69a3187017d8::$classMap;
 
         }, null, ClassLoader::class);
     }
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index c3c10cf7f..3f8b956ad 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -963,12 +963,12 @@
         "source": {
             "type": "git",
             "url": "https://github.com/zoujingli/ThinkLibrary.git",
-            "reference": "90513f6dd77469528657c1a14c0d69e2eaea80a1"
+            "reference": "3167e4678d32158127cde5f8d0d34848e42874c1"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/zoujingli/ThinkLibrary/zipball/90513f6dd77469528657c1a14c0d69e2eaea80a1",
-            "reference": "90513f6dd77469528657c1a14c0d69e2eaea80a1",
+            "url": "https://api.github.com/repos/zoujingli/ThinkLibrary/zipball/3167e4678d32158127cde5f8d0d34848e42874c1",
+            "reference": "3167e4678d32158127cde5f8d0d34848e42874c1",
             "shasum": "",
             "mirrors": [
                 {
@@ -985,7 +985,7 @@
             "ext-mbstring": "*",
             "topthink/framework": "^6.0"
         },
-        "time": "2020-09-04T04:22:19+00:00",
+        "time": "2020-09-04T06:32:24+00:00",
         "type": "library",
         "extra": {
             "think": {
diff --git a/vendor/services.php b/vendor/services.php
index 53c3d0d13..55cb702d3 100644
--- a/vendor/services.php
+++ b/vendor/services.php
@@ -1,5 +1,5 @@
 <?php 
-// This file is automatically generated at:2020-09-04 12:46:23
+// This file is automatically generated at:2020-09-04 14:41:28
 declare (strict_types = 1);
 return array (
   0 => 'think\\admin\\Library',
diff --git a/vendor/zoujingli/think-library/src/service/ModuleService.php b/vendor/zoujingli/think-library/src/service/ModuleService.php
index bc2739797..5892088a3 100644
--- a/vendor/zoujingli/think-library/src/service/ModuleService.php
+++ b/vendor/zoujingli/think-library/src/service/ModuleService.php
@@ -195,7 +195,7 @@ class ModuleService extends Service
             return false;
         }
         // 禁止下载数据库配置文件
-        if (stripos($name, 'database.php') !== false) {
+        if (stripos(strtr($name, '\\', '/'), 'config/database') !== false) {
             return false;
         }
         // 禁止非官方演示项目下载
@@ -204,7 +204,7 @@ class ModuleService extends Service
         }
         // 检查允许下载的文件规则
         foreach ($this->_getAllowDownloadRule() as $rule) {
-            if (stripos($name, $rule) !== false) return true;
+            if (stripos($name, $rule) === 0) return true;
         }
         // 不在允许下载的文件规则
         return false;
@@ -263,11 +263,11 @@ class ModuleService extends Service
      */
     private function _getAllowDownloadRule(): array
     {
-        $data = $this->app->cache->get('moduleAllowRule', []);
+        $data = $this->app->cache->get('moduleAllowDownloadRule', []);
         if (is_array($data) && count($data) > 0) return $data;
         $data = ['think', 'config', 'public/static', 'public/router.php', 'public/index.php'];
         foreach (array_keys($this->getModules()) as $name) $data[] = 'app/' . $name;
-        $this->app->cache->set('moduleAllowRule', $data, 30);
+        $this->app->cache->set('moduleAllowDownloadRule', $data, 30);
         return $data;
     }
 
diff --git a/vendor/zoujingli/think-library/src/service/NodeService.php b/vendor/zoujingli/think-library/src/service/NodeService.php
index ceb3f5f8c..ccd6c8206 100644
--- a/vendor/zoujingli/think-library/src/service/NodeService.php
+++ b/vendor/zoujingli/think-library/src/service/NodeService.php
@@ -143,13 +143,18 @@ class NodeService extends Service
      */
     public function scanDirectory($path, $data = [], $ext = 'php')
     {
-        if (file_exists($path)) if (is_file($path)) $data[] = $path;
-        elseif (is_dir($path)) foreach (scandir($path) as $item) if ($item[0] !== '.') {
-            $realpath = rtrim($path, '\\/') . DIRECTORY_SEPARATOR . $item;
-            if (is_readable($realpath)) if (is_dir($realpath)) {
-                $data = $this->scanDirectory($realpath, $data, $ext);
-            } elseif (is_file($realpath) && (is_null($ext) || pathinfo($realpath, 4) === $ext)) {
-                $data[] = strtr($realpath, '\\', '/');
+        if (file_exists($path)) {
+            if (is_file($path)) {
+                $data[] = strtr($path, '\\', '/');
+            } elseif (is_dir($path)) {
+                foreach (scandir($path) as $item) if ($item[0] !== '.') {
+                    $real = rtrim($path, '\\/') . DIRECTORY_SEPARATOR . $item;
+                    if (is_readable($real)) if (is_dir($real)) {
+                        $data = $this->scanDirectory($real, $data, $ext);
+                    } elseif (is_file($real) && (is_null($ext) || pathinfo($real, 4) === $ext)) {
+                        $data[] = strtr($real, '\\', '/');
+                    }
+                }
             }
         }
         return $data;