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);