<?php namespace App\Http\Controllers; use Illuminate\Routing\Route; use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Routing\Controller as BaseController; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; class Controller extends BaseController { use AuthorizesRequests, DispatchesJobs, ValidatesRequests; /** * Instantiate a new controller instance. * * @param Route $route */ public function __construct(Route $route) { // Get the controller array $arr = array_reverse(explode('\\', explode('@', $route->getAction()['uses'])[0])); $controller = ''; // Add folder if ($arr[1] != 'controllers') { $controller .= kebab_case($arr[1]) . '-'; } // Add file $controller .= kebab_case($arr[0]); // Skip ACL $skip = ['dashboard-dashboard', 'customers-dashboard']; if (in_array($controller, $skip)) { return; } // Add CRUD permission check $this->middleware('permission:create-' . $controller)->only(['create', 'store']); $this->middleware('permission:read-' . $controller)->only(['index', 'show', 'edit']); $this->middleware('permission:update-' . $controller)->only(['update']); $this->middleware('permission:delete-' . $controller)->only('destroy'); } }