From 35dfb9d1ffea22232f45cff4aeb72ffb1885cecb Mon Sep 17 00:00:00 2001 From: kuaifan Date: Tue, 13 May 2025 00:55:20 +0800 Subject: [PATCH] no message --- app/Http/Controllers/Api/AppsController.php | 7 +++++++ app/Module/Apps/Apps.php | 19 ++++++++++--------- cmd | 13 +++++++++---- docker-compose.yml | 2 +- 4 files changed, 27 insertions(+), 14 deletions(-) diff --git a/app/Http/Controllers/Api/AppsController.php b/app/Http/Controllers/Api/AppsController.php index c7939c326..2e3b2d034 100755 --- a/app/Http/Controllers/Api/AppsController.php +++ b/app/Http/Controllers/Api/AppsController.php @@ -123,6 +123,13 @@ class AppsController extends AbstractController */ public function install__callback() { + // 用户权限验证 + $authorization = Base::leftDelete(Request::header("Authorization"), "Bearer "); + if ($authorization != md5(env('APP_KEY'))) { + return 'Authorization error'; + } + + // 获取参数 $appName = Request::input('app_name'); $status = Request::input('status'); diff --git a/app/Module/Apps/Apps.php b/app/Module/Apps/Apps.php index fa50fdfd8..374841c66 100644 --- a/app/Module/Apps/Apps.php +++ b/app/Module/Apps/Apps.php @@ -533,20 +533,21 @@ class Apps $readmePatterns = [ "/^README(_|-|\.)?{$lang}\.md$/i", // README_zh.md, README-zh.md, README.zh.md ]; - if ($lang == 'zh') { + if ($lang == 'ZH') { $readmePatterns[] = "/^README(_|-|\.)?CN\.md$/i"; // README_CN.md, README-cn.md, README.cn.md } - if ($lang == 'zh-CHT') { + if ($lang == 'ZH-CHT') { $readmePatterns[] = "/^README(_|-|\.)?TW\.md$/i"; // README_TW.md, README-tw.md, README.tw.md } $readmePatterns[] = "/^README\.md$/i"; // README.md - foreach ($files as $filePath) { - $fileName = basename($filePath); - - // 检查是否为文件且匹配 README 模式 - if (is_file($filePath) && self::matchReadmePattern($fileName, $readmePatterns)) { - return file_get_contents($filePath); + // 遍历所有 README 模式进行匹配 + foreach ($readmePatterns as $pattern) { + foreach ($files as $filePath) { + $fileName = basename($filePath); + if (preg_match($pattern, $fileName)) { + return file_get_contents($filePath); + } } } @@ -823,7 +824,7 @@ class Apps $url = "http://nginx/appstore/api/{$path}"; $extra = [ 'Content-Type' => 'application/json', - 'Authorization' => 'Bearer ' . env('APP_KEY'), + 'Authorization' => 'Bearer ' . md5(env('APP_KEY')), ]; // 执行请求 diff --git a/cmd b/cmd index 80888adf6..f6df9cb29 100755 --- a/cmd +++ b/cmd @@ -229,7 +229,7 @@ run_mysql() { fi } -down_by_network() { +remove_by_network() { local app_id=$(env_get APP_ID) local network_name="dootask-networks-${app_id}" for container_id in $(docker ps -q --filter network="$network_name"); do @@ -237,6 +237,10 @@ down_by_network() { done } +uninstall_appstore() { + docker run -it --rm -v ${cur_path}/docker/appstore:/appstore alpine sh -c "find /appstore/configs -mindepth 1 -type d | sort -r | xargs rm -rf; rm -f /appstore/logs/*.log" +} + https_auto() { restart_nginx="n" if [[ "$(env_get APP_PORT)" != "80" ]]; then @@ -467,7 +471,8 @@ if [ $# -gt 0 ]; then exit 2 ;; esac - down_by_network + remove_by_network + uninstall_appstore $COMPOSE down --remove-orphans env_set APP_DEBUG "false" rm -rf "./docker/mysql/data" @@ -597,12 +602,12 @@ if [ $# -gt 0 ]; then $COMPOSE start "$@" elif [[ "$1" == "reup" ]]; then shift 1 - down_by_network + remove_by_network $COMPOSE down --remove-orphans $COMPOSE up -d elif [[ "$1" == "down" ]]; then shift 1 - down_by_network + remove_by_network if [[ $# -eq 0 ]]; then $COMPOSE down --remove-orphans else diff --git a/docker-compose.yml b/docker-compose.yml index a1df66905..234116fab 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -221,7 +221,7 @@ services: appstore: container_name: "dootask-appstore-${APP_ID}" privileged: true - image: "kuaifan/dootask-appstore:0.0.1" + image: "kuaifan/dootask-appstore:0.0.2" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./:/var/www