<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\Http\Requests; use App\Http\Requests\StoreGroup; use App\Group; class GroupController extends Controller { public function __construct() { $this->middleware('auth'); } public function showGroup(Group $group) { $this->authorize('view', $group); return view('groups.show', compact('group')); } public function showGroups() { $this->authorize('viewall', Group::class); $groups = Group::all(); return view('groups.showall', compact('groups')); } public function newGroup() { $this->authorize('create', Group::class); return view('groups.new'); } public function addGroup(StoreGroup $request) { $this->authorize('create', Group::class); $group = new Group; $group->addGroup($request->all()); $request->session()->flash('status', 'New group added successfully!'); return redirect("/" . Auth::user()->getAdminPath() . "/groups"); } public function editGroup(Group $group) { $this->authorize('update', $group); return view('groups.edit', compact('group')); } public function updateGroup(Group $group, StoreGroup $request) { $this->authorize('update', $group); $group->updateGroup($request->all()); $request->session()->flash('status', 'The group has been updated'); return redirect("/" . Auth::user()->getAdminPath() . "/groups/$group->id"); } public function deleteGroup(Group $group, Request $request) { $this->authorize('delete', $group); $group->deleteGroup(); $request->session()->flash('status', 'The group has been deleted'); return redirect("/" . Auth::user()->getAdminPath() . "/groups"); } }