JackD's avatar

ACL

Is there any better or easy way to do ACL than like this code?

// Home Page URI (not protected)
$router->get('/', ['uses' => 'HomeController@index', 'as' => 'home']);

// Protected Routes by auth and acl middleware
$router->group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => ['auth', 'acl']], function() use ($router)
{
    $router->get('dashboard', [
        'uses' => 'DashboardController@index',
        'as' => 'dashboard',
        'permission' => 'manage_own_dashboard',
        'menuItem' => ['icon' => 'fa fa-dashboard', 'title' => 'Dashboard']
    ]);

    // Group: Users
    $router->group(['prefix' => 'users', 'namespace' => 'User'], function() use ($router)
    {
        $router->get('/{role?}', [
            'uses' => 'UserController@index',
            'as' => 'admin.users',
            'permission' => 'view_user',
            'menuItem' => ['icon' => 'clip-users', 'title' => 'Manage Users']
        ])->where('role', '[a-zA-Z]+');

        $router->get('view/{id}', [
            'uses' => 'UserController@viewUserProfile',
            'as' => 'admin.user.view',
            'permission' => 'view_user'
        ]);
    });
});
0 likes
4 replies

Please or to participate in this conversation.