share('signedIn', Auth::check()); view()->share('currentUser', $user); // Share variables with controllers $this->currentUser = $user; $this->signedIn = Auth::check(); } /** * Checks for a permission. * * @param $permissionName * @return bool|\Illuminate\Http\RedirectResponse */ protected function checkPermission($permissionName) { if (!$this->currentUser || !$this->currentUser->can($permissionName)) { Session::flash('error', trans('errors.permission')); throw new HttpResponseException( redirect()->back() ); } return true; } protected function checkPermissionOr($permissionName, $callback) { $callbackResult = $callback(); if ($callbackResult === false) $this->checkPermission($permissionName); return true; } }