This repository has been archived on 2021-01-24. You can view files and clone it, but cannot push or open issues or pull requests.
laravel-elearning/app/Http/Controllers/GroupController.php

75 lines
1.9 KiB
PHP

<?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");
}
}