This repository has been archived on 2021-01-24. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
laravel-elearning/app/Http/Controllers/AdministrativeUserController.php

93 lines
No EOL
2 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Requests;
use App\Http\Requests\StoreUser;
use App\User;
use App\Group;
class AdministrativeUserController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
/**
*
* Common controller functions between administrators and moderator for handling users.
*
*/
public function confirmDeleteUser(User $user)
{
$this->authorize('delete', $user);
return view('users.delete', compact('user'));
}
public function deleteUser(User $user)
{
$this->authorize('delete', $user);
$user->deleteUser();
return redirect('/admin/users');
}
/**
*
* Function to show the view used for creating a user.
*
*/
public function newUser()
{
$this->authorize('create', User::class);
if (Auth::user()->isAdministrator()) {
$groups = Group::all();
return view('users.new', compact('groups'));
}
return view('users.new');
}
/**
*
* Function for adding a user.
*
*/
public function addUser(StoreUser $request)
{
$this->authorize('create', User::class);
$user = new User;
$user->addUser($request->all());
return redirect('/admin/users');
}
/**
*
* Function to show view for editing a user.
*
*/
public function editUser(User $user)
{
$this->authorize('edit', $user);
if (Auth::user()->isAdministrator()) {
$groups = Group::all();
return view("users.edit", compact("groups", "user"));
}
return view("users.edit", compact("user"));
}
public function updateUser(User $user, StoreUser $request)
{
$this->authorize('edit', $user);
$user->updateUser($request->all());
return redirect("/admin/users/group/$user->group_id");
}
}