Browse Source

create tenant

peterguo 2 months ago
parent
commit
d33a4269cb

+ 5 - 16
app/Admin/Controllers/GlobalUserController.php

@@ -3,7 +3,6 @@
 namespace App\Admin\Controllers;
 
 
-use App\Events\GlobalUserCreated;
 use App\Models\GlobalUser;
 use App\Models\Tenant;
 use Encore\Admin\Controllers\AdminController;
@@ -11,6 +10,7 @@ use Encore\Admin\Form;
 use Encore\Admin\Grid;
 use Encore\Admin\Show;
 use Encore\Admin\Widgets\Table;
+use Illuminate\Support\Facades\Hash;
 
 class GlobalUserController extends AdminController
 {
@@ -30,6 +30,7 @@ class GlobalUserController extends AdminController
 
         $grid->column('id');
         $grid->column('username')->copyable();
+        $grid->column('is_admin')->using([0 => 'NO', 1 => 'YES']);
         $grid->column('tenant.name')->expand(function ($model) {
             $tenants = $model->tenant()->get()->map(function ($tenant) {
                 return $tenant->only(['id', 'name', 'tenancy_db_connection', 'expired_at']);
@@ -60,6 +61,7 @@ class GlobalUserController extends AdminController
         $show = new Show(GlobalUser::query()->findOrFail($id));
         $show->field('id');
         $show->field('username');
+        $show->field('is_admin')->using([0 => 'NO', 1 => 'YES']);
         $show->field('created_at');
         $show->field('updated_at');
 
@@ -87,23 +89,10 @@ class GlobalUserController extends AdminController
 
         $form->text('username')->placeholder('unique email or phone')->rules('required');
         $form->text('password')->rules('required');
-        $form->display('role')->default("超级管理员");
+        $form->radio('is_admin')->options([0 => 'NO', 1 => 'YES'])->default(1)->required();
 
-        $user = [
-            'username' => $form->username,
-            'password' => $form->password,
-            'tenant_id' => $form->tenant_id,
-        ];
-
-        // callback before save
         $form->saving(function (Form $form) {
-            $form->ignore('password');
-            $form->ignore('role');
-        });
-
-        // callback after save
-        $form->saved(function (Form $form) use ($user) {
-            event(new GlobalUserCreated($user));
+            $form->password = Hash::make($form->password);
         });
 
         return $form;

+ 1 - 1
app/Admin/Controllers/TenantController.php

@@ -128,7 +128,7 @@ class TenantController extends AdminController
         $form->tab('basicInfo', function (Form $form) use ($databaseConnections, $tenantId) {
             $form->text('id')->rules('required')->default($tenantId); // 设置默认值为 tenant_id
             $form->text('name')->required();
-            $form->text('company_name')->icon('')->required();
+            $form->text('company_name')->icon('fa-sitemap')->required();
             $form->text('email');
             $form->radio('tenancy_db_connection')
                 ->options($databaseConnections)->default('mysql')->required();

+ 3 - 0
app/Models/Tenant.php

@@ -28,6 +28,9 @@ class Tenant extends BaseTenant implements TenantWithDatabase
     {
         return [
             'id',
+            'name',
+            'email',
+            'company_name',
             'expired_at'
         ];
     }

+ 2 - 0
database/migrations/2025_01_07_114133_add_columns_to_tenants_table.php

@@ -14,6 +14,7 @@ return new class extends Migration
         Schema::table('tenants', function (Blueprint $table) {
             //
             $table->string('name');
+            $table->string('company_name');
             $table->string('email');
             $table->timestamp('expired_at')->nullable();
         });
@@ -27,6 +28,7 @@ return new class extends Migration
         Schema::table('tenants', function (Blueprint $table) {
             //
             $table->dropColumn('name');
+            $table->dropColumn('company_name');
             $table->dropColumn('email');
             $table->dropColumn('expired_at');
         });