在 Laravel 5.1 中使用 Romanbican/roles 检查权限不起作用

Checking for permissions using Romanbican/roles in Laravel 5.1 doesn´t work

我正在做一个项目,我使用 Romanbican/roles 包控制视图、控制器等。

我已经设置了角色包工作所需的所有配置,我已经设置每个用户只有一个角色,我还创建了一个管理区域,我可以在其中附加或取消对特定角色的权限。

超级管理员角色没有权限编号 83,即控制对 Compras 菜单访问的权限。因此,每个具有超级管理员角色的用户都不会在导航栏中看到 Compras link。

nav bar

问题是,当项目在本地部署时一切正常,但是当我将其部署到生产环境时,某些权限验证不起作用。

并且它仍在向 Compras

展示 link

nav bar (production)

这是我在导航栏部分进行权限验证的方式:

@if(Auth::check() && Auth::user()->can('menu.compras'))
<li class="dropdown ">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Compras<span
                class="caret"></span></a>
    <ul class="dropdown-menu">
        <li class="grid-demo">
            <div class="yamm-content">
                <div class="row text-center">
                    <ul class="col-sm-6">
                        <li class="dropdown-header"><h4>Categorias</h4></li>
                        @if(Auth::check() && Auth::user()->can('menu.categorias'))
                            <li><a href="{!!URL::to('Categoria')!!}">Listado de Categorías</a>
                            </li>
                        @else
                            <li>------------</li>
                        @endif
                        @if(Auth::check() && Auth::user()->can('crear.categoria'))
                            <li><a href="{!!URL::to('Categoria/create')!!}">Agregar
                                    categoría</a>
                            </li>
                        @else
                            <li>------------</li>
                        @endif
                        <li role="separator" class="divider"></li>
                        <li class="dropdown-header"><h4>Bodegas</h4></li>
                        @if(Auth::check() && Auth::user()->can('menu.bodegas'))
                            <li><a href="{!!URL::to('Bodega')!!}">Listado de Bodegas</a></li>
                        @else
                            <li>------------</li>
                        @endif
                        @if(Auth::check() && Auth::user()->can('crear.bodega'))
                            <li><a href="{!!URL::to('Bodega/create')!!}">Agregar Bodega</a></li>
                        @else
                            <li>------------</li>
                        @endif
                        <li role="separator" class="divider"></li>
                        <li class="dropdown-header"><h4>Proveedores</h4></li>
                        @if(Auth::check() && Auth::user()->can('menu.proveedores'))
                            <li><a href="{!!URL::to('Proveedor')!!}">Listado de Proveedores</a>
                            </li>
                        @else
                            <li>------------</li>
                        @endif
                        @if(Auth::check() && Auth::user()->can('crear.proveedor'))
                            <li><a href="{!!URL::to('Proveedor/create')!!}">Agregar
                                    Proveedor</a>
                            </li>
                        @else
                            <li>------------</li>
                        @endif
                        <li role="separator" class="divider"></li>
                        <li class="dropdown-header"><h4>Productos</h4></li>
                        @if(Auth::check() && Auth::user()->can('menu.productos'))
                            <li><a href="{!!URL::to('Producto')!!}">Listado de Productos</a>
                            </li>
                        @else
                            <li>------------</li>
                        @endif
                        @if(Auth::check() && Auth::user()->can('crear.producto'))
                            <li><a href="{!!URL::to('Producto/create')!!}">Agregar Producto</a>
                            </li>
                        @else
                            <li>------------</li>
                        @endif
                        <li role="separator" class="divider"></li>
                    </ul>
                    <ul class="col-sm-6">
                        <li class="dropdown-header"><h4>Cotizaciones</h4></li>
                        @if(Auth::check() && Auth::user()->can('menu.cotizaciones'))
                            <li><a href="{!!URL::to('Cotizacion')!!}">Listado de
                                    Cotizaciones</a>
                            </li>
                        @else
                            <li>------------</li>
                        @endif
                        @if(Auth::check() && Auth::user()->can('crear.cotizacion'))
                            <li>
                                <a href="" data-toggle="modal"
                                   data-target="#CotizacionBodegaModal">
                                    Crear cotizacion
                                </a>
                            </li>
                        @else
                            <li>------------</li>
                        @endif
                        <li role="separator" class="divider"></li>
                        <li class="dropdown-header"><h4>Entradas</h4></li>
                        @if(Auth::check() && Auth::user()->can('menu.entradas'))
                            <li><a href="{!!URL::to('Entrada')!!}">Listado de Entradas</a></li>
                        @else
                            <li>------------</li>
                        @endif
                        @if(Auth::check() && Auth::user()->can('crear.entrada'))
                            <li><a href="{!!URL::to('Entrada/create')!!}">Hacer Entrada</a></li>
                        @else
                            <li>------------</li>
                        @endif
                        <li role="separator" class="divider"></li>
                    </ul>
                </div>
            </div>
        </li>
    </ul>
</li>
@endif

我也尝试过使用 te Bican 包 blade 扩展名:

@permission('menu.compras') //menu.compras is the premission slug 
.
.
.
@endpermission

但是还是不行。

我无法找到的是为什么某些权限验证有效而其他无效。

例如:角色列表菜单验证工作正常:

在这种情况下,超级管理员用户无法在角色列表中看到 link,而是显示“------”

有人可以帮我解决这个问题吗?

提前致谢。

Pd:我无法提交更多图片来展示,因为我是 Whosebug 的新手。

我刚刚自己发现我缺少权限继承的概念,基本上是具有更高级别角色的用户正在继承较低级别角色的权限。

因此,由于某些用户的级别高于其他用户,这就是为什么这些用户可以在没有所需权限的情况下访问那些 link 的原因。

这是包文档的link,其中包含有关权限继承的所有解释

Permissions Inheriting