From 7c4865ade9398495690eecb46a8a33b160f7168a Mon Sep 17 00:00:00 2001 From: Wisp X Date: Sat, 5 Mar 2022 01:39:28 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E4=B8=83=E7=89=9B=E4=BA=91?= =?UTF-8?q?=E5=82=A8=E5=AD=98=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Enums/Strategy/KodoOption.php | 5 +- .../Controllers/Admin/GroupController.php | 5 +- app/Http/Requests/Admin/StrategyRequest.php | 51 +++++++++++----- app/Services/ImageService.php | 2 +- composer.lock | 10 ++-- resources/views/admin/strategy/add.blade.php | 41 +++++++++---- resources/views/admin/strategy/edit.blade.php | 60 +++++++++++-------- .../views/admin/strategy/index.blade.php | 2 +- 8 files changed, 112 insertions(+), 64 deletions(-) diff --git a/app/Enums/Strategy/KodoOption.php b/app/Enums/Strategy/KodoOption.php index feaf1a8f..88a311f7 100644 --- a/app/Enums/Strategy/KodoOption.php +++ b/app/Enums/Strategy/KodoOption.php @@ -4,7 +4,7 @@ namespace App\Enums\Strategy; final class KodoOption { - /** @var string 访问域名 */ + /** @var string 访问地址 */ const Url = 'url'; /** @var string AccessKey */ @@ -15,7 +15,4 @@ final class KodoOption /** @var string Bucket */ const Bucket = 'bucket'; - - /** @var string 根目录 */ - const Root = 'root'; } diff --git a/app/Http/Controllers/Admin/GroupController.php b/app/Http/Controllers/Admin/GroupController.php index 0fb6b8e4..afe1e391 100644 --- a/app/Http/Controllers/Admin/GroupController.php +++ b/app/Http/Controllers/Admin/GroupController.php @@ -88,7 +88,10 @@ class GroupController extends Controller if ($group->is_default || $group->is_guest) { return $this->error('默认组和游客组无法删除'); } - $group->delete(); + DB::transaction(function () use ($group) { + $group->users()->update(['group_id' => Group::query()->where('is_default', true)->value('id')]); + $group->delete(); + }); } return $this->success('删除成功'); } diff --git a/app/Http/Requests/Admin/StrategyRequest.php b/app/Http/Requests/Admin/StrategyRequest.php index af32a6a1..6dc1d0ed 100644 --- a/app/Http/Requests/Admin/StrategyRequest.php +++ b/app/Http/Requests/Admin/StrategyRequest.php @@ -48,33 +48,54 @@ class StrategyRequest extends FormRequest } }; - return [ + $array = [ 'groups' => 'array', 'name' => 'required|max:60', 'intro' => 'max:2000', 'key' => 'required|integer', - 'configs.root' => ['max:1000', function ($attribute, $value, $fail) { - if ($value) { - if (! is_dir($value)) { - return $fail('储存路径不存在'); - } - if (! is_writeable($value)) { - return $fail('储存路径没有写入权限'); - } - } - }], - 'configs.url' => ['required', 'url', $checkUrl], + 'configs.url' => ['required', 'url'], ]; + + return array_merge($array, match((int)$this->input('key')) { + StrategyKey::Local => [ + 'configs.url' => ['required', 'url', $checkUrl], + 'configs.root' => ['max:1000', function ($attribute, $value, $fail) { + if ($value) { + if (! is_dir($value)) { + return $fail('储存路径不存在'); + } + if (! is_writeable($value)) { + return $fail('储存路径没有写入权限'); + } + } + }], + ], + StrategyKey::Kodo => [ + 'configs.access_key' => 'required', + 'configs.secret_key' => 'required', + 'configs.bucket' => 'required', + ], + }); } public function attributes() { - return [ + $array = [ 'name' => '名称', 'intro' => '简介', 'key' => '策略', - 'configs.root' => '储存路径', - 'configs.url' => '访问域名', + 'configs.url' => '访问网址', ]; + + return array_merge($array, match((int)$this->input('key')) { + StrategyKey::Local => [ + 'configs.root' => '储存路径', + ], + StrategyKey::Kodo => [ + 'configs.access_key' => 'AccessKey', + 'configs.secret_key' => 'SecretKey', + 'configs.bucket' => 'Bucket', + ], + }); } } diff --git a/app/Services/ImageService.php b/app/Services/ImageService.php index 1aff16c0..a729eac5 100644 --- a/app/Services/ImageService.php +++ b/app/Services/ImageService.php @@ -204,7 +204,7 @@ class ImageService accessKey: $configs->get(KodoOption::AccessKey), secretKey: $configs->get(KodoOption::SecretKey), bucket: $configs->get(KodoOption::Bucket), - domain: $configs->get(KodoOption::Domain), + domain: $configs->get(KodoOption::Url), ), }; } diff --git a/composer.lock b/composer.lock index d6b90cc9..51f1e67b 100644 --- a/composer.lock +++ b/composer.lock @@ -10848,16 +10848,16 @@ }, { "name": "spatie/ignition", - "version": "1.1.1", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "5c554067887b7080bc58977fa30a488624d85d20" + "reference": "090518ff676e17a038dfe77490018363ff66af20" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/5c554067887b7080bc58977fa30a488624d85d20", - "reference": "5c554067887b7080bc58977fa30a488624d85d20", + "url": "https://api.github.com/repos/spatie/ignition/zipball/090518ff676e17a038dfe77490018363ff66af20", + "reference": "090518ff676e17a038dfe77490018363ff66af20", "shasum": "", "mirrors": [ { @@ -10921,7 +10921,7 @@ "type": "github" } ], - "time": "2022-03-02T10:51:55+00:00" + "time": "2022-03-04T12:52:17+00:00" }, { "name": "spatie/laravel-ignition", diff --git a/resources/views/admin/strategy/add.blade.php b/resources/views/admin/strategy/add.blade.php index 026750d6..691e850d 100644 --- a/resources/views/admin/strategy/add.blade.php +++ b/resources/views/admin/strategy/add.blade.php @@ -8,7 +8,6 @@
-