Samson Mutunga пре 7 месеци
родитељ
комит
0eba2c571a

+ 23 - 0
app/Http/Controllers/AdminController.php

@@ -71,6 +71,16 @@ class AdminController extends Controller
             });
         }
 
+        $is_admin = $request->get('is_admin');
+        if($is_admin){
+            if($is_admin == 'YES'){
+                $users = $users->where('is_super_admin', true);
+            }
+            if($is_admin == 'NO'){
+                $users = $users->where('is_super_admin', false);
+            }
+        }
+
         $users = $users->orderBy('created_at', 'DESC')->paginate(30);
         return view('app.my-account.admin.users.index', compact('users', 'filters'));
     }
@@ -557,4 +567,17 @@ class AdminController extends Controller
 
     return $this->pass();
   }
+
+    public function userMakeAdmin(User $user)
+    {
+        $user->is_super_admin = true;
+        $user->save();
+        return $this->pass($user->uid);
+    }
+    public function userUndoMakeAdmin(User $user)
+    {
+        $user->is_super_admin = false;
+        $user->save();
+        return $this->pass($user->uid);
+    }
 }

+ 17 - 1
resources/views/app/my-account/admin/users/filters.blade.php

@@ -51,6 +51,22 @@ $url = route('admin.users');
         </div>
     </div>
 
+     <div class="border p-2">
+        <h6 class="mb-1"><b>Admin Properties:</b></h6>
+        <div class="d-flex flex-wrap justify-content-start">
+            <div class="form-group mb-0 me-2">
+                <label class="text-secondary text-sm mb-1">Is Admin?</label>
+                <select name="is_admin"
+                    class="d-block p-1 border border-secondary max-width-110px bg-white width-100px"
+                    v-model="filters.is_admin" select2_>
+                    <option value=""></option>
+                    <option value="YES">Yes</option>
+                    <option value="NO">No</option>
+                </select>
+            </div>
+        </div>
+    </div>
+
     <div class="">
         <div class="form-group mb-0">
             <label>&nbsp;</label>
@@ -66,7 +82,7 @@ $url = route('admin.users');
 
 <?php
 $loadedFilters = $filters;
-$allFilterKeys = ['payment_profile', 'customer_name'];
+$allFilterKeys = ['payment_profile', 'customer_name', 'is_admin'];
 for ($i = 0; $i < count($allFilterKeys); $i++) {
     if (!isset($loadedFilters[$allFilterKeys[$i]]) || !$loadedFilters[$allFilterKeys[$i]]) {
         $loadedFilters[$allFilterKeys[$i]] = '';

+ 17 - 0
resources/views/app/my-account/admin/users/forms/make-admin.blade.php

@@ -0,0 +1,17 @@
+<div moe relative>
+    <a start show href="#">Make Admin</a>
+    <form url="{{ route('admin.users.view.make-admin', $user) }}" redir="/admin/users/view/[data]/smses" right>
+        @csrf
+        <input type="hidden" name="userUid" value="{{ $user->uid }}" />
+        <h4 class="fw-bold mb-4">Make Admin</h4>
+        <div>
+            <div class="mb-2">
+                <label class="text-sm text-secondary mb-1">Are you sure?</label>
+            </div>
+        </div>
+        <div class="d-flex align-items-center mt-3">
+            <button type="button" class="btn py-2 btn-grey border w-100 no-shadow" cancel>Cancel</button>
+            <button class="btn py-2 btn-primary w-100 ms-3 text-nowrap" submit>Make Admin</button>
+        </div>
+    </form>
+</div>

+ 17 - 0
resources/views/app/my-account/admin/users/forms/undo-make-admin.blade.php

@@ -0,0 +1,17 @@
+<div moe relative>
+    <a start show href="#" class="text-danger">Undo Make Admin</a>
+    <form url="{{ route('admin.users.view.undo-make-admin', $user) }}" redir="/admin/users/view/[data]/smses" right>
+        @csrf
+        <input type="hidden" name="userUid" value="{{ $user->uid }}" />
+        <h4 class="fw-bold mb-4">Make Admin</h4>
+        <div>
+            <div class="mb-2">
+                <label class="text-sm text-secondary mb-1">Are you sure?</label>
+            </div>
+        </div>
+        <div class="d-flex align-items-center mt-3">
+            <button type="button" class="btn py-2 btn-grey border w-100 no-shadow" cancel>Cancel</button>
+            <button class="btn py-2 btn-primary w-100 ms-3 text-nowrap" submit>Make Admin</button>
+        </div>
+    </form>
+</div>

+ 9 - 0
resources/views/app/my-account/admin/users/sub/info/name.blade.php

@@ -30,6 +30,15 @@
             <span>
                 @include('app.my-account.admin.users.forms.create-sms')
             </span>
+            <span class="text-muted mx-1">|</span>
+            <span>
+                Is Admin: <b class="me-2">{{ $user->is_super_admin ? 'YES':'NO' }}</b>
+                @if($user->is_super_admin)
+                    @include('app.my-account.admin.users.forms.undo-make-admin')
+                @else
+                    @include('app.my-account.admin.users.forms.make-admin')
+                @endif
+            </span>
         </div>
     </div>
     <div>

+ 2 - 0
routes/web.php

@@ -68,6 +68,8 @@ Route::group(['middleware' => ['ensureUserLoggedIn']], function () {
                 Route::get('/smses', [AdminController::class, 'userSmses'])->name('.smses');
                 Route::get('/messages', [AdminController::class, 'userMessages'])->name('.messages');
                 Route::get('messages/{message}/attachments', [AdminController::class, 'userMessageAttachments'])->name('message-attachments');
+                Route::post('/make-admin', [AdminController::class, 'userMakeAdmin'])->name('.make-admin');
+                Route::post('/undo-make-admin', [AdminController::class, 'userUndoMakeAdmin'])->name('.undo-make-admin');
             });
             
             Route::get('/orders', [AdminController::class, 'orders'])->name('.orders');