【发布时间】:2016-09-25 00:16:51
【问题描述】:
我正在做一个项目,我使用 Romanbican/roles 包控制视图、控制器等。
我已经设置了角色包工作所需的所有配置,我已经设置了每个用户将只有一个角色,并且我还创建了一个管理区域,我可以在其中附加或分离特定角色的权限。
超级管理员角色没有权限编号 83 来控制对 Compras 菜单的访问。因此,每个具有超级管理员角色的用户都不会在导航栏中看到 Compras 链接。
问题是,当项目在本地部署时一切正常,但是当我将它放到生产环境中时,某些权限验证不起作用。
它仍然显示 Compras 的链接
这就是我在导航栏部分完成权限验证的方式:
@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 包刀片扩展:
@permission('menu.compras') //menu.compras is the premission slug
.
.
.
@endpermission
但它也不起作用。
我找不到的是为什么某些权限验证有效而其他无效。
例如:角色列表菜单验证它正在工作:
在这种情况下,超级管理员用户看不到角色列表的链接,而是显示“-------”
有人可以帮我解决这个问题吗?
提前致谢。
Pd:我无法提交更多图片来展示,因为我是 stackoverflow 的新手。
【问题讨论】:
标签: php laravel permissions blade roles