diff --git a/app/Http/Controllers/Api/AppsController.php b/app/Http/Controllers/Api/AppsController.php index 7970da7cd..c7939c326 100755 --- a/app/Http/Controllers/Api/AppsController.php +++ b/app/Http/Controllers/Api/AppsController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Api; +use App\Models\User; use App\Module\Apps\Apps; use App\Module\Base; use Request; @@ -26,6 +27,8 @@ class AppsController extends AbstractController */ public function list() { + User::auth('admin'); + // return Apps::appList(); } @@ -47,6 +50,8 @@ class AppsController extends AbstractController */ public function info() { + User::auth('admin'); + // $appName = Request::input('app_name'); if (empty($appName)) { return Base::retError('应用名称不能为空'); @@ -75,6 +80,8 @@ class AppsController extends AbstractController */ public function install() { + User::auth('admin'); + // $appName = Request::input('app_name'); $version = Request::input('version', 'latest'); $params = Request::input('params', []); @@ -152,6 +159,8 @@ class AppsController extends AbstractController */ public function uninstall() { + User::auth('admin'); + // $appName = Request::input('app_name'); if (empty($appName)) { @@ -181,6 +190,8 @@ class AppsController extends AbstractController */ public function logs() { + User::auth('admin'); + // $appName = Request::input('app_name'); $lines = intval(Request::input('lines', 50)); diff --git a/app/Module/Apps/Apps.php b/app/Module/Apps/Apps.php index 1166f3ca8..88f9f65c9 100644 --- a/app/Module/Apps/Apps.php +++ b/app/Module/Apps/Apps.php @@ -245,6 +245,8 @@ class Apps // 处理字段 if (isset($configData['fields']) && is_array($configData['fields'])) { + $appConfig = self::getAppConfig($appName); + $fields = []; foreach ($configData['fields'] as $field) { // 检查必需的name字段及其格式 @@ -261,7 +263,7 @@ class Apps $normalizedField = [ 'name' => $field['name'], 'type' => $field['type'] ?? 'text', - 'default' => $field['default'] ?? '', + 'default' => $appConfig['params'][$field['name']] ?? $field['default'] ?? '', 'label' => self::getMultiLanguageField($field['label'] ?? ''), 'placeholder' => self::getMultiLanguageField($field['placeholder'] ?? ''), 'required' => $field['required'] ?? false, @@ -514,7 +516,7 @@ class Apps */ private static function getAppDocument(string $appName): string { $baseDir = base_path('docker/appstore/apps/' . $appName); - $lang = Base::headerOrInput('language'); + $lang = strtoupper(Base::headerOrInput('language')); // 使用 glob 遍历目录 $files = glob($baseDir . '/*'); @@ -522,9 +524,14 @@ class Apps // 正则模式,包括语言特定和通用的 README 文件 $readmePatterns = [ "/^README(_|-|\.)?{$lang}\.md$/i", // README_zh.md, README-zh.md, README.zh.md - "/^README\.md$/i", // README.md - "/^readme\.md$/i", // readme.md ]; + if ($lang == 'zh') { + $readmePatterns[] = "/^README(_|-|\.)?CN\.md$/i"; // README_CN.md, README-cn.md, README.cn.md + } + 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);