<?php namespace App\Http\Controllers; use App\User; use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Http\Request; use Illuminate\Routing\Controller as BaseController; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; class Controller extends BaseController { use AuthorizesRequests, DispatchesJobs, ValidatesRequests; protected function authorizeAccessToAdminPanel() { // A user can access the admin panel if they are either an administrator, or are allowed to create albums // Further checks within the admin panel determine what a user can do within the panel if (!Auth::user()->can('admin-access') && !Auth::user()->can('admin-create-albums')) { App::abort(403); } } /** * Gets either the authenticated user, or a user object representing the anonymous user. * @return User */ protected function getUser() { $user = Auth::user(); return (is_null($user) ? User::anonymous() : $user); } }