From f2170c35065263363ff222bdbff18aff4ac2fdea Mon Sep 17 00:00:00 2001 From: "iVampireSP.com" Date: Wed, 16 Nov 2022 10:29:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20Remote=20=E4=B8=BA=20Modul?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Console/Commands/CalcModule.php | 4 +- app/Console/Kernel.php | 4 +- app/Http/Controllers/Api/HostController.php | 2 +- app/Http/Controllers/Api/ModuleController.php | 2 +- .../BroadcastController.php | 2 +- .../Host/HostController.php | 26 ++++-- .../Host/TaskController.php | 18 ++-- .../{Remote => Modules}/ModuleController.php | 5 +- .../{Remote => Modules}/UserController.php | 2 +- .../WorkOrder/ReplyController.php | 9 +- .../WorkOrder/WorkOrderController.php | 2 +- app/Jobs/CheckHostIfExistsOnModule.php | 4 +- app/Jobs/DeleteHost.php | 6 +- app/Jobs/{Remote => Module}/FetchModule.php | 4 +- app/Jobs/{Remote => Module}/Host.php | 4 +- app/Jobs/{Remote => Module}/PushHost.php | 4 +- app/Jobs/{Remote => Module}/PushWorkOrder.php | 6 +- .../{Remote => Module}/WorkOrder/Reply.php | 5 +- .../WorkOrder/WorkOrder.php | 4 +- app/Models/Host.php | 2 +- app/Models/Module.php | 12 +-- app/Models/WorkOrder/Reply.php | 4 +- app/Models/WorkOrder/WorkOrder.php | 2 +- app/Providers/AppServiceProvider.php | 4 +- app/Providers/RouteServiceProvider.php | 6 +- resources/views/index.blade.php | 58 ++++-------- resources/views/layouts/admin.blade.php | 10 +- resources/views/layouts/app.blade.php | 92 +++++++++++++++++++ routes/api.php | 2 +- routes/{remote.php => modules.php} | 14 +-- 30 files changed, 201 insertions(+), 118 deletions(-) rename app/Http/Controllers/{Remote => Modules}/BroadcastController.php (96%) rename app/Http/Controllers/{Remote => Modules}/Host/HostController.php (88%) rename app/Http/Controllers/{Remote => Modules}/Host/TaskController.php (80%) rename app/Http/Controllers/{Remote => Modules}/ModuleController.php (94%) rename app/Http/Controllers/{Remote => Modules}/UserController.php (98%) rename app/Http/Controllers/{Remote => Modules}/WorkOrder/ReplyController.php (81%) rename app/Http/Controllers/{Remote => Modules}/WorkOrder/WorkOrderController.php (96%) rename app/Jobs/{Remote => Module}/FetchModule.php (97%) rename app/Jobs/{Remote => Module}/Host.php (94%) rename app/Jobs/{Remote => Module}/PushHost.php (94%) rename app/Jobs/{Remote => Module}/PushWorkOrder.php (92%) rename app/Jobs/{Remote => Module}/WorkOrder/Reply.php (92%) rename app/Jobs/{Remote => Module}/WorkOrder/WorkOrder.php (93%) create mode 100644 resources/views/layouts/app.blade.php rename routes/{remote.php => modules.php} (70%) diff --git a/app/Console/Commands/CalcModule.php b/app/Console/Commands/CalcModule.php index 6a3ac04..7f49abf 100644 --- a/app/Console/Commands/CalcModule.php +++ b/app/Console/Commands/CalcModule.php @@ -2,7 +2,7 @@ namespace App\Console\Commands; -use App\Http\Controllers\Remote\ModuleController; +use App\Http\Controllers\Modules\ModuleController; use App\Models\Module; use Illuminate\Console\Command; @@ -70,5 +70,7 @@ public function handle() $this->warn('计算模块收益完成。'); $this->warn('完成时间: ' . now()); $this->warn('比例: 1:' . $rate . ' (1 元 = ' . $rate . ' Drops)'); + + return 1; } } diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 48e6ca7..e90ec2f 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -7,8 +7,8 @@ use App\Jobs\ClearTasks; use App\Jobs\DeleteHost; use App\Jobs\HostCost; -use App\Jobs\Remote\FetchModule; -use App\Jobs\Remote\PushWorkOrder; +use App\Jobs\Module\FetchModule; +use App\Jobs\Module\PushWorkOrder; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; diff --git a/app/Http/Controllers/Api/HostController.php b/app/Http/Controllers/Api/HostController.php index 08f8cad..9f2b2cc 100644 --- a/app/Http/Controllers/Api/HostController.php +++ b/app/Http/Controllers/Api/HostController.php @@ -50,7 +50,7 @@ public function destroy(Host $host) } } - dispatch(new \App\Jobs\Remote\Host($host, 'delete')); + dispatch(new \App\Jobs\Module\Host($host, 'delete')); } else { return $this->error('无权操作'); } diff --git a/app/Http/Controllers/Api/ModuleController.php b/app/Http/Controllers/Api/ModuleController.php index 9adbc05..81f86e1 100644 --- a/app/Http/Controllers/Api/ModuleController.php +++ b/app/Http/Controllers/Api/ModuleController.php @@ -18,7 +18,7 @@ public function index(): JsonResponse public function call(Request $request, Module $module): JsonResponse { - return (new \App\Http\Controllers\Remote\ModuleController())->call($request, $module); + return (new \App\Http\Controllers\Modules\ModuleController())->call($request, $module); } diff --git a/app/Http/Controllers/Remote/BroadcastController.php b/app/Http/Controllers/Modules/BroadcastController.php similarity index 96% rename from app/Http/Controllers/Remote/BroadcastController.php rename to app/Http/Controllers/Modules/BroadcastController.php index 5b9ad55..65e5a1c 100644 --- a/app/Http/Controllers/Remote/BroadcastController.php +++ b/app/Http/Controllers/Modules/BroadcastController.php @@ -1,6 +1,6 @@ getTasks(); + return null; } /** * Store a newly created resource in storage. * - * @param \Illuminate\Http\Request $request - * @return \Illuminate\Http\Response + * @param Request $request + * + * @return JsonResponse */ public function store(Request $request) { @@ -48,10 +52,10 @@ public function store(Request $request) /** * Update the specified resource in storage. * - * @param \Illuminate\Http\Request $request - * @param \App\Models\Task $task + * @param Request $request + * @param Task $task * - * @return \Illuminate\Http\Response + * @return JsonResponse */ public function update(Request $request, Task $task) { diff --git a/app/Http/Controllers/Remote/ModuleController.php b/app/Http/Controllers/Modules/ModuleController.php similarity index 94% rename from app/Http/Controllers/Remote/ModuleController.php rename to app/Http/Controllers/Modules/ModuleController.php index c2caa24..f5fd1ee 100644 --- a/app/Http/Controllers/Remote/ModuleController.php +++ b/app/Http/Controllers/Modules/ModuleController.php @@ -1,9 +1,10 @@ where('created_at', '<', now()->subHour())->chunk(100, function ($hosts) { foreach ($hosts as $host) { - $http = Http::remote($host->module->api_token, $host->module->url); + $http = Http::module($host->module->api_token, $host->module->url); $response = $http->get('hosts/' . $host->id); if ($response->status() === 404) { Log::warning($host->module->name . ' ' . $host->name . ' ' . $host->id . ' 不存在,删除。'); - dispatch(new \App\Jobs\Remote\Host($host, 'delete')); + dispatch(new \App\Jobs\Module\Host($host, 'delete')); } } }); diff --git a/app/Jobs/DeleteHost.php b/app/Jobs/DeleteHost.php index 192f7ad..1521d5d 100644 --- a/app/Jobs/DeleteHost.php +++ b/app/Jobs/DeleteHost.php @@ -36,14 +36,14 @@ public function handle() // 查找暂停时间超过3天以上的 host Host::where('status', 'suspended')->where('suspended_at', '<', now()->subDays(3))->chunk(100, function ($hosts) { foreach ($hosts as $host) { - dispatch(new \App\Jobs\Remote\Host($host, 'delete')); + dispatch(new \App\Jobs\Module\Host($host, 'delete')); } }); - + // 查找部署时间超过3天以上的 host Host::where('status', 'pending')->where('created_at', '<', now()->subDays(3))->chunk(100, function ($hosts) { foreach ($hosts as $host) { - dispatch(new \App\Jobs\Remote\Host($host, 'delete')); + dispatch(new \App\Jobs\Module\Host($host, 'delete')); } }); } diff --git a/app/Jobs/Remote/FetchModule.php b/app/Jobs/Module/FetchModule.php similarity index 97% rename from app/Jobs/Remote/FetchModule.php rename to app/Jobs/Module/FetchModule.php index c3c876f..5615488 100644 --- a/app/Jobs/Remote/FetchModule.php +++ b/app/Jobs/Module/FetchModule.php @@ -1,6 +1,6 @@ api_token, $module->url); + $http = Http::module($module->api_token, $module->url); // dd($module->url); $response = $http->get('remote'); } catch (ConnectException $e) { diff --git a/app/Jobs/Remote/Host.php b/app/Jobs/Module/Host.php similarity index 94% rename from app/Jobs/Remote/Host.php rename to app/Jobs/Module/Host.php index cd1a6d0..0a10708 100644 --- a/app/Jobs/Remote/Host.php +++ b/app/Jobs/Module/Host.php @@ -1,6 +1,6 @@ host; $host->load(['module']); - $http = Http::remote($host->module->api_token, $host->module->url); + $http = Http::module($host->module->api_token, $host->module->url); switch ($this->type) { case 'patch': diff --git a/app/Jobs/Remote/PushHost.php b/app/Jobs/Module/PushHost.php similarity index 94% rename from app/Jobs/Remote/PushHost.php rename to app/Jobs/Module/PushHost.php index cbd29a9..917aea7 100644 --- a/app/Jobs/Remote/PushHost.php +++ b/app/Jobs/Module/PushHost.php @@ -1,6 +1,6 @@ with(['module', 'user'])->chunk(100, function ($hosts) { foreach ($hosts as $host) { - $http = Http::remote($host->module->api_token, $host->module->url); + $http = Http::module($host->module->api_token, $host->module->url); $host->status = 'running'; $response = $http->post('hosts', $host->toArray()); diff --git a/app/Jobs/Remote/PushWorkOrder.php b/app/Jobs/Module/PushWorkOrder.php similarity index 92% rename from app/Jobs/Remote/PushWorkOrder.php rename to app/Jobs/Module/PushWorkOrder.php index c503a64..d42fb6c 100644 --- a/app/Jobs/Remote/PushWorkOrder.php +++ b/app/Jobs/Module/PushWorkOrder.php @@ -1,6 +1,6 @@ module->api_token, $workOrder->module->url); + $http = Http::module($workOrder->module->api_token, $workOrder->module->url); $workOrder->status = 'open'; $response = $http->post('work-orders', $workOrder->toArray()); @@ -70,7 +70,7 @@ public function handle() Reply::where('is_pending', 1)->chunk(100, function ($replies) { foreach ($replies as $reply) { - dispatch(new \App\Jobs\Remote\WorkOrder\Reply($reply)); + dispatch(new \App\Jobs\Module\WorkOrder\Reply($reply)); } }); diff --git a/app/Jobs/Remote/WorkOrder/Reply.php b/app/Jobs/Module/WorkOrder/Reply.php similarity index 92% rename from app/Jobs/Remote/WorkOrder/Reply.php rename to app/Jobs/Module/WorkOrder/Reply.php index bb254e4..58f7e55 100644 --- a/app/Jobs/Remote/WorkOrder/Reply.php +++ b/app/Jobs/Module/WorkOrder/Reply.php @@ -1,6 +1,6 @@ reply->load(['workOrder', 'user']); $this->reply->workOrder->load(['module']); - $http = Http::remote($this->reply->workOrder->module->api_token, $this->reply->workOrder->module->url); + $http = Http::module($this->reply->workOrder->module->api_token, $this->reply->workOrder->module->url); $reply = $this->reply->toArray(); diff --git a/app/Jobs/Remote/WorkOrder/WorkOrder.php b/app/Jobs/Module/WorkOrder/WorkOrder.php similarity index 93% rename from app/Jobs/Remote/WorkOrder/WorkOrder.php rename to app/Jobs/Module/WorkOrder/WorkOrder.php index 2c9448c..a28fd12 100644 --- a/app/Jobs/Remote/WorkOrder/WorkOrder.php +++ b/app/Jobs/Module/WorkOrder/WorkOrder.php @@ -1,6 +1,6 @@ workOrder->load(['module']); - $http = Http::remote($this->workOrder->module->api_token, $this->workOrder->module->url); + $http = Http::module($this->workOrder->module->api_token, $this->workOrder->module->url); if ($this->type == 'put') { $response = $http->put('work-orders/' . $this->workOrder->id, $this->workOrder->toArray()); } else { diff --git a/app/Models/Host.php b/app/Models/Host.php index 7fc0ae2..852e831 100644 --- a/app/Models/Host.php +++ b/app/Models/Host.php @@ -206,7 +206,7 @@ protected static function boot() // when Updated static::updated(function ($model) { - dispatch(new \App\Jobs\Remote\Host($model, 'patch')); + dispatch(new \App\Jobs\Module\Host($model, 'patch')); Cache::forget('user_hosts_' . $model->user_id); Cache::forget('user_tasks_' . $model->user_id); diff --git a/app/Models/Module.php b/app/Models/Module.php index ac3c517..4c1c32a 100644 --- a/app/Models/Module.php +++ b/app/Models/Module.php @@ -35,7 +35,7 @@ class Module extends Authenticatable public function remoteHost($host_id, $func, $requests) { - $http = Http::remote($this->api_token, $this->url); + $http = Http::module($this->api_token, $this->url); $response = $http->post("hosts/{$host_id}/functions/" . $func, $requests); $json = $response->json(); @@ -46,7 +46,7 @@ public function remoteHost($host_id, $func, $requests) public function remote($func, $requests) { - $http = Http::remote($this->api_token, $this->url); + $http = Http::module($this->api_token, $this->url); $response = $http->post('functions/' . $func, $requests); $json = $response->json(); @@ -61,7 +61,7 @@ public function remoteRequest($method, $path, $requests) { $user = auth()->user(); - $http = Http::remote($this->api_token, $this->url) + $http = Http::module($this->api_token, $this->url) ->accept('application/json'); // add Headers @@ -94,7 +94,7 @@ public function moduleRequest($method, $path, $requests) { $module_id = auth('module')->id(); - $http = Http::remote($this->api_token, $this->url) + $http = Http::module($this->api_token, $this->url) ->accept('application/json'); $http->withHeaders([ @@ -119,7 +119,7 @@ public function moduleRequest($method, $path, $requests) public function remotePost($path = '', $data = []) { - $http = Http::remote($this->api_token, $this->url); + $http = Http::module($this->api_token, $this->url); $response = $http->post($path, $data); $json = $response->json(); @@ -137,7 +137,7 @@ public function check($module_id = null) } try { - $http = Http::remote($module->api_token, $module->url); + $http = Http::module($module->api_token, $module->url); // dd($module->url); $response = $http->get('remote'); } catch (ConnectException $e) { diff --git a/app/Models/WorkOrder/Reply.php b/app/Models/WorkOrder/Reply.php index 119e11c..7a64eb8 100644 --- a/app/Models/WorkOrder/Reply.php +++ b/app/Models/WorkOrder/Reply.php @@ -75,8 +75,8 @@ protected static function boot() $model->workOrder->save(); } // dispatch - dispatch(new \App\Jobs\Remote\WorkOrder\Reply($model)); - dispatch(new \App\Jobs\Remote\WorkOrder\WorkOrder($model->workOrder, 'put')); + dispatch(new \App\Jobs\Module\WorkOrder\Reply($model)); + dispatch(new \App\Jobs\Module\WorkOrder\WorkOrder($model->workOrder, 'put')); }); } } diff --git a/app/Models/WorkOrder/WorkOrder.php b/app/Models/WorkOrder/WorkOrder.php index 75515e9..374d10c 100644 --- a/app/Models/WorkOrder/WorkOrder.php +++ b/app/Models/WorkOrder/WorkOrder.php @@ -101,7 +101,7 @@ protected static function boot() // updated static::updated(function ($model) { - dispatch(new \App\Jobs\Remote\WorkOrder\WorkOrder($model, 'put')); + dispatch(new \App\Jobs\Module\WorkOrder\WorkOrder($model, 'put')); }); } } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 25abf14..e2e0689 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -33,10 +33,10 @@ public function boot() Sanctum::usePersonalAccessTokenModel(PersonalAccessToken::class); - Http::macro('remote', function ($api_token, $url) { + Http::macro('module', function ($api_token, $url) { // 关闭证书验证 return Http::withoutVerifying()->withHeaders([ - 'X-Remote-Api-Token' => $api_token, + 'X-Module-Api-Token' => $api_token, 'Content-Type' => 'application/json' ])->withOptions([ 'version' => 2, diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 3eaf95f..a51ea41 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -35,9 +35,9 @@ public function boot() ->group(base_path('routes/api.php')); Route::middleware(['api', 'auth:module']) - ->prefix('remote') - ->as('remote.') - ->group(base_path('routes/remote.php')); + ->prefix('modules') + ->as('modules.') + ->group(base_path('routes/modules.php')); Route::middleware(['web']) ->prefix('admin') diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index 79ae86f..478a579 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -1,53 +1,32 @@ - - +@extends('layouts.app') - - - - - - +@section('title', '用户') - - {{-- display all errors --}} - @if ($errors->any()) -
- -
- @endif - - @if (session('success')) -

{{ session('success') }}

- @endif - @if (session('error')) -

{{ session('error') }}

- @endif - - @if (session('token')) -

这是新的 Token,请妥善保管:{{ session('token') }}

- {{-- 前往 --}} - @endif +@section('content') @guest

嗨,游客

-

您需要先登录,才能使用 莱云 Access Token Manager.

+

您需要先登录,才能继续使用 莱云。

- 登录 + 登录 @endguest @auth + + @if (session('token')) +

这是新的 Token,请妥善保管:{{ session('token') }}

+ {{-- 前往 --}} + @endif + +

嗨, {{ auth('web')->user()->name }}

在这里,你可以获取新的 Token 来对接其他应用程序。

@csrf - +

@@ -55,17 +34,16 @@
@csrf @method('delete') - +
-

*如果您的 Token 被泄漏,您应该立即吊销所有 Token

+

*如果您的 Token 被泄漏,您应该立即吊销所有 Token


-

退出登录

@csrf - +
@endauth - - + +@endsection diff --git a/resources/views/layouts/admin.blade.php b/resources/views/layouts/admin.blade.php index 3c9abea..05fcca4 100644 --- a/resources/views/layouts/admin.blade.php +++ b/resources/views/layouts/admin.blade.php @@ -8,7 +8,7 @@ - @yield('title') + @yield('title', '管理员') @@ -42,7 +42,7 @@