如何防止用户看到管理员观看次数

时间:2018-02-16 10:22:14

标签: php laravel-5 laravel-5.5

我目前正处理一个技术问题。我在我的应用程序中配置了Multi Auth,一切都很好。我的应用程序有一些观点,我只能访问管理员。我通过使用

来实现这一目标
@if(Auth::guard('admin')->check())
    // my restricted navigation links / routes.
@endif

但问题是,无论何时管理员在线,条件设置为true,并且所有具有其他警卫的用户都可以看到链接。请帮助我,即使管理员已登录,如何阻止其他用户看到这些链接。

1 个答案:

答案 0 :(得分:1)

由于您的应用是多次授权,我认为您已设置角色(可能还有权限)。

Spatie的laravel-permission软件包包含一个Blade指令@role('<insert intended role>')&amp; @endrole。我在自己的应用程序中使用它来阻止普通用户查看用于特定角色的内容。

例如:

  

@role('admin')

     

<a href="/admin/users/1/edit">Edit</a>;

     

@endrole

具有管理员角色的用户可以看到此链接,其他人可以查看。

除此之外,您还可以在此路线上启用中间件:

  

Route::middleware(['auth', 'role:admin'])->prefix('admin')->group(function (Router $router) { $router->get('/users/{user}', 'AdminUserController@edit') });