]> BookStack Code Mirror - bookstack/blobdiff - app/Http/Controllers/WebhookController.php
Fixed permission row permission check
[bookstack] / app / Http / Controllers / WebhookController.php
index 497d623b20afc8141533a3b4b74b8adbf4d64cb7..264921dfc39ed7743f1f58f27afe5d400196a2a9 100644 (file)
@@ -24,6 +24,9 @@ class WebhookController extends Controller
             ->orderBy('name', 'desc')
             ->with('trackedEvents')
             ->get();
+
+        $this->setPageTitle(trans('settings.webhooks'));
+
         return view('settings.webhooks.index', ['webhooks' => $webhooks]);
     }
 
@@ -32,6 +35,8 @@ class WebhookController extends Controller
      */
     public function create()
     {
+        $this->setPageTitle(trans('settings.webhooks_create'));
+
         return view('settings.webhooks.create');
     }
 
@@ -41,16 +46,20 @@ class WebhookController extends Controller
     public function store(Request $request)
     {
         $validated = $this->validate($request, [
-            'name' => ['required', 'max:150'],
+            'name'     => ['required', 'max:150'],
             'endpoint' => ['required', 'url', 'max:500'],
-            'events' => ['required', 'array']
+            'events'   => ['required', 'array'],
+            'active'   => ['required'],
+            'timeout'  => ['required', 'integer', 'min:1', 'max:600'],
         ]);
 
         $webhook = new Webhook($validated);
+        $webhook->active = $validated['active'] === 'true';
         $webhook->save();
         $webhook->updateTrackedEvents(array_values($validated['events']));
 
         $this->logActivity(ActivityType::WEBHOOK_CREATE, $webhook);
+
         return redirect('/settings/webhooks');
     }
 
@@ -64,6 +73,8 @@ class WebhookController extends Controller
             ->with('trackedEvents')
             ->findOrFail($id);
 
+        $this->setPageTitle(trans('settings.webhooks_edit'));
+
         return view('settings.webhooks.edit', ['webhook' => $webhook]);
     }
 
@@ -73,18 +84,22 @@ class WebhookController extends Controller
     public function update(Request $request, string $id)
     {
         $validated = $this->validate($request, [
-            'name' => ['required', 'max:150'],
+            'name'     => ['required', 'max:150'],
             'endpoint' => ['required', 'url', 'max:500'],
-            'events' => ['required', 'array']
+            'events'   => ['required', 'array'],
+            'active'   => ['required'],
+            'timeout'  => ['required', 'integer', 'min:1', 'max:600'],
         ]);
 
         /** @var Webhook $webhook */
         $webhook = Webhook::query()->findOrFail($id);
 
+        $webhook->active = $validated['active'] === 'true';
         $webhook->fill($validated)->save();
         $webhook->updateTrackedEvents($validated['events']);
 
         $this->logActivity(ActivityType::WEBHOOK_UPDATE, $webhook);
+
         return redirect('/settings/webhooks');
     }
 
@@ -95,6 +110,9 @@ class WebhookController extends Controller
     {
         /** @var Webhook $webhook */
         $webhook = Webhook::query()->findOrFail($id);
+
+        $this->setPageTitle(trans('settings.webhooks_delete'));
+
         return view('settings.webhooks.delete', ['webhook' => $webhook]);
     }
 
@@ -110,6 +128,7 @@ class WebhookController extends Controller
         $webhook->delete();
 
         $this->logActivity(ActivityType::WEBHOOK_DELETE, $webhook);
+
         return redirect('/settings/webhooks');
     }
 }