Laratrust 的菜单过滤器权限
Menu filter permission with Laratrust
我正在使用 AdminLTE,Lara Entrust 创建了一个 MyMenu Filter.php 文件来根据权限菜单过滤我的选项。
adminlte.php
'menu' => [
'MAIN NAVIGATION',
[
'text' => 'Blog',
'url' => 'admin/blog',
'permission' => 'create-post',
],
// CODE...
],
'filters' => [
// CODE...
App\MyMenuFilter::class,
],
我的菜单Filter.php
<?php
namespace App;
use JeroenNoten\LaravelAdminLte\Menu\Builder;
use JeroenNoten\LaravelAdminLte\Menu\Filters\FilterInterface;
class MyMenuFilter implements FilterInterface
{
public function transform($item, Builder $builder)
{
if (isset($item['permission']) && \Laratrust::can($item['permission'])) {
return false;
}
return $item;
}
}
我在 "blog" 菜单中的选项需要 create-post 权限。但是 mymenufilter.php 中的 "if" returns false quando o usuário tem a permissão 并且不会创建菜单。
但是如果我设置了用户没有的权限,它就会出现。
我认为你的逻辑倒退了。如果用户不能使用该权限,您应该 return false。我添加了一个! (不)在下面的 if 语句中。这应该可以解决您的问题
public function transform($item, Builder $builder)
{
if (isset($item['permission']) && !\Laratrust::can($item['permission'])) {
return false;
}
return $item;
}
我正在使用 AdminLTE,Lara Entrust 创建了一个 MyMenu Filter.php 文件来根据权限菜单过滤我的选项。
adminlte.php
'menu' => [
'MAIN NAVIGATION',
[
'text' => 'Blog',
'url' => 'admin/blog',
'permission' => 'create-post',
],
// CODE...
],
'filters' => [
// CODE...
App\MyMenuFilter::class,
],
我的菜单Filter.php
<?php
namespace App;
use JeroenNoten\LaravelAdminLte\Menu\Builder;
use JeroenNoten\LaravelAdminLte\Menu\Filters\FilterInterface;
class MyMenuFilter implements FilterInterface
{
public function transform($item, Builder $builder)
{
if (isset($item['permission']) && \Laratrust::can($item['permission'])) {
return false;
}
return $item;
}
}
我在 "blog" 菜单中的选项需要 create-post 权限。但是 mymenufilter.php 中的 "if" returns false quando o usuário tem a permissão 并且不会创建菜单。
但是如果我设置了用户没有的权限,它就会出现。
我认为你的逻辑倒退了。如果用户不能使用该权限,您应该 return false。我添加了一个! (不)在下面的 if 语句中。这应该可以解决您的问题
public function transform($item, Builder $builder)
{
if (isset($item['permission']) && !\Laratrust::can($item['permission'])) {
return false;
}
return $item;
}