liuzejian 2 лет назад
Родитель
Сommit
72f6be35f6

+ 23 - 0
modules/Common/Http/Controllers/ModuleController.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace Modules\Common\Http\Controllers;
+
+use Catch\Base\CatchController;
+use Illuminate\Http\Request;
+use Modules\Common\Repository\Options\Modules;
+use Modules\User\Models\User;
+
+class ModuleController extends CatchController
+{
+    public function listApp(Request $request){
+        if($this->getLoginUser()->roles->pluck('identify')->contains('channel')) {
+            return Modules::getAppModules()->map(function ($module) {
+                return [
+                    'name' => $module['name'],
+                    'title' => $module['title']
+                ];
+            });
+        }
+        return [];
+    }
+}

+ 2 - 0
modules/Common/routes/route.php

@@ -1,6 +1,7 @@
 <?php
 
 use Illuminate\Support\Facades\Route;
+use Modules\Common\Http\Controllers\ModuleController;
 use Modules\Common\Http\Controllers\OptionController;
 use Modules\Common\Http\Controllers\UploadController;
 
@@ -24,5 +25,6 @@ Route::controller(UploadController::class)->group(function (){
     Route::get('upload/oss', 'oss');
 });
 
+Route::get('modules/listApp', [ModuleController::class, 'listApp']);
 
 

modules/ContentManage/routes/route.php → modules/ContentManage/routes/route.php.1


+ 19 - 0
tests/Common/Http/Controllers/ModuleControllerTest.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace Tests\Common\Http\Controllers;
+
+use Modules\Common\Http\Controllers\ModuleController;
+use PHPUnit\Framework\TestCase;
+use Tests\UsedTestCase;
+
+class ModuleControllerTest extends UsedTestCase
+{
+
+    public function testListApp()
+    {
+        $res = $this->withHeaders([
+            'Authorization' => 'Bearer '. $this->token,
+        ])->json('get','http://localhost/api/modules/listApp');
+        $res->dump();
+    }
+}

+ 3 - 1
tests/UsedTestCase.php

@@ -15,7 +15,9 @@ abstract class UsedTestCase extends BaseTestCase
         $tokenInfo = $this->post('http://localhost/api/login', [
             'email' => 'catch@admin.com',
             'password' => 'catchadmin',
-            'remember' => false
+            'remember' => false,
+//            'email' => 'xiaoli@qq.com',
+//            'password' => 'Qaz123'
         ])->json();
         $this->token = $tokenInfo['data']['token'];
     }