From 6e5ffa9440b347b966a2d7ead5f3a15cbd476a07 Mon Sep 17 00:00:00 2001
From: Daniel Supernault <danielsupernault@gmail.com>
Date: Thu, 4 Apr 2019 23:33:53 -0600
Subject: [PATCH] Update Controllers

---
 app/Http/Controllers/InternalApiController.php | 13 +++++++++++++
 app/Http/Controllers/StatusController.php      | 12 ++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/app/Http/Controllers/InternalApiController.php b/app/Http/Controllers/InternalApiController.php
index dd7533059..e66b61dbe 100644
--- a/app/Http/Controllers/InternalApiController.php
+++ b/app/Http/Controllers/InternalApiController.php
@@ -28,6 +28,7 @@ use App\Jobs\StatusPipeline\NewStatusPipeline;
 use League\Fractal\Serializer\ArraySerializer;
 use League\Fractal\Pagination\IlluminatePaginatorAdapter;
 use Illuminate\Validation\Rule;
+use Illuminate\Support\Str;
 
 class InternalApiController extends Controller
 {
@@ -339,6 +340,18 @@ class InternalApiController extends Controller
             'visibility' => 'required|string|in:public,private,unlisted|min:2|max:10'
         ]);
 
+        if(config('costar.enabled') == true) {
+            $blockedKeywords = config('costar.keyword.block');
+            if($blockedKeywords !== null && $request->caption) {
+                $keywords = config('costar.keyword.block');
+                foreach($keywords as $kw) {
+                    if(Str::contains($request->caption, $kw) == true) {
+                        abort(400, 'Invalid object');
+                    }
+                }
+            }
+        }
+
         $profile = Auth::user()->profile;
         $visibility = $request->input('visibility');
         $medias = $request->input('media');
diff --git a/app/Http/Controllers/StatusController.php b/app/Http/Controllers/StatusController.php
index 9c5a34df8..ad477fd26 100644
--- a/app/Http/Controllers/StatusController.php
+++ b/app/Http/Controllers/StatusController.php
@@ -130,6 +130,18 @@ class StatusController extends Controller
         $cw = $profile->cw == true ? true : $cw;
         $visibility = $profile->unlisted == true && $visibility == 'public' ? 'unlisted' : $visibility;
 
+        if(config('costar.enabled') == true) {
+            $blockedKeywords = config('costar.keyword.block');
+            if($blockedKeywords !== null) {
+                $keywords = config('costar.keyword.block');
+                foreach($keywords as $kw) {
+                    if(Str::contains($request->caption, $kw) == true) {
+                        abort(400, 'Invalid object');
+                    }
+                }
+            }
+        }
+        
         $status = new Status();
         $status->profile_id = $profile->id;
         $status->caption = strip_tags($request->caption);