/** * Update the specified resource in storage. * * @param UpdateChannelPermissionsRequest $request * @return Response */ public function update(UpdateChannelPermissionsRequest $request) { // $channel = $request->route()->getParameter('channel'); $accessChannel = $request->input('allowed_groups'); $createThreads = $request->input('create_threads'); $reply = $request->input('reply_to_threads'); $createThreads = collect($createThreads); $createThreads = $createThreads->filter(function ($item) { return $item != 2; }); $reply = collect($reply); $reply = $reply->filter(function ($item) { return $item != 2; }); ChannelPermission::where('channel_id', '=', $channel->id)->where('permission_id', '=', 21)->orWhere('permission_id', '=', 1)->orWhere('permission_id', '=', 6)->delete(); foreach ($accessChannel as $id) { $perm = ChannelPermission::firstOrCreate(array('permission_id' => 21, 'role_id' => $id, 'channel_id' => $channel->id)); } foreach ($createThreads as $id) { $create_threads = ChannelPermission::firstOrCreate(array('permission_id' => 1, 'role_id' => $id, 'channel_id' => $channel->id)); } foreach ($reply as $id) { $replyToThread = ChannelPermission::firstOrCreate(array('permission_id' => 6, 'role_id' => $id, 'channel_id' => $channel->id)); } Flash::success('Updated channel permissions!'); return redirect(route('admin.forum.get.permissions.channels.edit', array($channel))); }