在 Laravel 5.1 中使用 Romanbican/roles 检查权限不起作用
Checking for permissions using Romanbican/roles in Laravel 5.1 doesn´t work
我正在做一个项目,我使用 Romanbican/roles 包控制视图、控制器等。
我已经设置了角色包工作所需的所有配置,我已经设置每个用户只有一个角色,我还创建了一个管理区域,我可以在其中附加或取消对特定角色的权限。
超级管理员角色没有权限编号 83,即控制对 Compras 菜单访问的权限。因此,每个具有超级管理员角色的用户都不会在导航栏中看到 Compras link。
问题是,当项目在本地部署时一切正常,但是当我将其部署到生产环境时,某些权限验证不起作用。
并且它仍在向 Compras
展示 link
这是我在导航栏部分进行权限验证的方式:
@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,其中包含有关权限继承的所有解释
我正在做一个项目,我使用 Romanbican/roles 包控制视图、控制器等。
我已经设置了角色包工作所需的所有配置,我已经设置每个用户只有一个角色,我还创建了一个管理区域,我可以在其中附加或取消对特定角色的权限。
超级管理员角色没有权限编号 83,即控制对 Compras 菜单访问的权限。因此,每个具有超级管理员角色的用户都不会在导航栏中看到 Compras link。
问题是,当项目在本地部署时一切正常,但是当我将其部署到生产环境时,某些权限验证不起作用。
并且它仍在向 Compras
展示 link这是我在导航栏部分进行权限验证的方式:
@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,其中包含有关权限继承的所有解释