diff --git a/app/Modules/Admin/Http/Controllers/AdminPostsController.php b/app/Modules/Admin/Http/Controllers/AdminPostsController.php index 444040b..7c6be39 100644 --- a/app/Modules/Admin/Http/Controllers/AdminPostsController.php +++ b/app/Modules/Admin/Http/Controllers/AdminPostsController.php @@ -21,7 +21,6 @@ public function index() { $posts = Post::orderBy('id', 'desc'); if (!auth()->user()->isAdmin() && auth()->user()->isCityManager()) { - } $posts = $posts->get(); return view('admin::posts.index', [ @@ -54,7 +53,8 @@ public function store(Request $request) if ($request->has('cities')) { $availableCities = GetAvailableCities()->pluck('id')->toArray(); foreach ($request->cities as $cityId) { - if (!in_array($cityId, $availableCities)) { + $city = City::find($cityId); + if (auth()->user()->cannot('manage', $city)) { return back(); } } @@ -105,6 +105,18 @@ public function update(Request $request, Post $post) $reuqest['image'] = $post->image; } + if ($request->has('cities')) { + $availableCities = GetAvailableCities()->pluck('id')->toArray(); + foreach ($request->cities as $cityId) { + $city = City::find($cityId); + if (auth()->user()->cannot('manage', $city)) { + return back(); + } + } + } else { + return back(); + } + $post = $post->update( $request->only(['name', 'short_text', 'text', 'category', 'image', 'post-trixFields']) ); diff --git a/app/Modules/Main/Http/Policies/ContentPolicy.php b/app/Modules/Main/Http/Policies/ContentPolicy.php index a6a585c..641c484 100644 --- a/app/Modules/Main/Http/Policies/ContentPolicy.php +++ b/app/Modules/Main/Http/Policies/ContentPolicy.php @@ -21,7 +21,7 @@ public function before(User $user, string $ability): bool|null /** * Determine whether the user can CRUD content (posts, agents, documents) */ - public function manageContent(User $user, City $city): bool + public function manage(User $user, City $city): bool { if (!$cityManagersOfUser = CityManager::where('user_id', $user->id)->get()) { return false; diff --git a/app/Modules/Post/Views/form/update.blade.php b/app/Modules/Post/Views/form/update.blade.php index d13c8f4..ebf934b 100644 --- a/app/Modules/Post/Views/form/update.blade.php +++ b/app/Modules/Post/Views/form/update.blade.php @@ -27,9 +27,10 @@ class="modal-dialog modal-dialog-scrollable modal-lg modal-fullscreen-lg-down"