Browse Source

对公司增删改增加超级管理员校验

kely 11 months ago
parent
commit
5424ee57b8

+ 21 - 7
app/Http/Controllers/API/CompanyController.php

@@ -35,15 +35,19 @@ class CompanyController extends Controller
 
     public function store(CreateOrUpdateRequest $request)
     {
-        $company=new Company();
+        if(Auth::user()->super_admin){
+            $company=new Company();
 
-        $company->fill([
+            $company->fill([
             ...$request->all(),
         ]);
 
         $company->save();
-
         return $this->created();
+        }
+
+        return $this->forbidden("Operation without permission");
+
     }
 
     public function show(string $id)
@@ -54,16 +58,26 @@ class CompanyController extends Controller
     }
 
     public function update(CreateOrUpdateRequest $request,string $id){
-        $company=Company::findOrFail($id);
-        $company->fill($request->all());
-        $company->save();
-        return $this->noContent();
+        if(Auth::user()->super_admin) {
+            $company = Company::findOrFail($id);
+            $company->fill($request->all());
+            $company->save();
+            return $this->noContent();
+        }
+
+        return $this->forbidden("Operation without permission");
     }
 
 
     public function destroy(string $id)
     {
+        if(Auth::user()->super_admin) {
+            $company = Company::findOrFail($id);
+            $company->delete();
 
+            return $this->noContent();
+        }
+        return $this->forbidden("Operation without permission");
     }
 
 

+ 2 - 1
app/Models/Company.php

@@ -6,10 +6,11 @@ use EloquentFilter\Filterable;
 use Illuminate\Database\Eloquent\Casts\Attribute;
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\SoftDeletes;
 
 class Company extends Model
 {
-    use HasFactory,Filterable;
+    use HasFactory,Filterable,SoftDeletes;
 
     protected $table = 'company';
 

+ 30 - 0
database/migrations/2024_04_12_105830_add_soft_deletes_to_company_table.php

@@ -0,0 +1,30 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+return new class extends Migration
+{
+    /**
+     * Run the migrations.
+     */
+    public function up(): void
+    {
+        Schema::table('company', function (Blueprint $table) {
+            //
+            $table->softDeletes();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     */
+    public function down(): void
+    {
+        Schema::table('company', function (Blueprint $table) {
+            //
+            $table->dropColumn('deleted_at');
+        });
+    }
+};