0

I'm developing a Laravel ACL System. I have a User table, a role table and a permissions table. When I check the user given permissions using middleware and inside middleware I'm use explode() function. this function only show the first permissions other permissions doesn't contains.

Here, is my Controller;

function __construct()
{
    $this->middleware('auth');
    $this->middleware('HasPermission:Role-Read,Role-Update,Role-Delete');
}

My Middleware.

 public function handle($request, Closure $next,$permissions='')
{
    $permissions_array = explode(',', $permissions);
    dd($permissions_array);
    foreach($permissions_array as $permission){
        if(Auth::user()->hasPermission($permission)){
            return $next($request);
        }
    }

    return redirect()->back();;
}

result when i use dd() function.

array:1 [▼ 0 => "Role-Read" ]

2
  • Try to explode with - symbol not with , Try this $permissions_array = explode('-', $permissions); Commented Jul 3, 2018 at 10:11
  • No,I have given permissions like this 'HasPermission:Role-Read,Role-Update,Role-Delete' so, i need to the string like this Role-Read Commented Jul 3, 2018 at 10:15

1 Answer 1

1

Controller

$this->middleware('HasPermission:Role-Read,Role-Update,Role-Delete');

Middleware Using ... to access variable arguments

public function handle($request, Closure $next, ...$permissions)
    {
        foreach($permissions_array as $permission){
            if(Auth::user()->hasPermission($permission)){
                return $next($request);
            }
        }

        return redirect()->back();;
    }

or you can use

$this->middleware('HasPermission:Role-Read|Role-Update|Role-Delete');

Middleware

$permissions_array = explode('|', $permissions);
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.