for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Maklad\Permission\Middlewares;
use Closure;
use Maklad\Permission\Exceptions\UnauthorizedPermission;
use Maklad\Permission\Exceptions\UserNotLoggedIn;
use Maklad\Permission\Helpers;
/**
* Class PermissionMiddleware
* @package Maklad\Permission\Middlewares
*/
class PermissionMiddleware
{
* @param $request
* @param Closure $next
* @param $permission
*
* @return mixed
* @throws \Maklad\Permission\Exceptions\UnauthorizedException
public function handle($request, Closure $next, $permission)
if (app('auth')->guest()) {
$helpers = new Helpers();
throw new UserNotLoggedIn(403, $helpers->getUserNotLoggedINMessage());
}
$permissions = \is_array($permission) ? $permission : \explode('|', $permission);
if (! app('auth')->user()->hasAnyPermission($permissions)) {
throw new UnauthorizedPermission(
403,
$helpers->getUnauthorizedPermissionMessage(implode(', ', $permissions)),
$permissions
);
return $next($request);