turkmentv/app/Http/Middleware/CheckIfAdmin.php

66 lines
1.6 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
class CheckIfAdmin
{
/**
* Checked that the logged in user is an administrator.
*
* --------------
* VERY IMPORTANT
* --------------
* If you have both regular users and admins inside the same table,
* change the contents of this method to check that the logged in user
* is an admin, and not a regular user.
*
* @param [type] $user [description]
*
* @return bool [description]
*/
private function checkIfUserIsAdmin($user)
{
return ($user->is_admin == 1);
//return true;
}
/**
* Answer to unauthorized access request.
*
* @param [type] $request [description]
*
* @return [type] [description]
*/
private function respondToUnauthorizedRequest($request)
{
if ($request->ajax() || $request->wantsJson()) {
return response(trans('backpack::base.unauthorized'), 401);
} else {
return redirect()->guest(backpack_url('login'));
}
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*/
public function handle($request, Closure $next)
{
if (backpack_auth()->guest()) {
return $this->respondToUnauthorizedRequest($request);
}
if (!$this->checkIfUserIsAdmin(backpack_user())) {
return $this->respondToUnauthorizedRequest($request);
}
return $next($request);
}
}