【问题标题】:how to disable laravel-filemanager from non-admin users?如何从非管理员用户禁用 laravel-filemanager?
【发布时间】:2017-06-15 23:42:35
【问题描述】:

我的项目中有laravel filemanager v1.7,它在管理员端运行良好,图像在前端也运行良好。但是当任何注册用户(非管理员)或访问者可以通过单击图像右键单击并在新窗口中打开它时访问 laravel-filemanager 页面时,我的问题如下:

http://domain/laravel-filemanager/photos/1/593e3d9f3d8fb.jpg

如果删除 (photos/1/593e3d9f3d8fb.jpg) 他可以访问文件管理器。

我试图更改中间件中的 config/lfm.php 但我失败了....如何禁用非管理员用户的 LFM?

注意:我有一个名为 checkRole 的中间件,用于检查 users 表中的 role_id。 我试图把它放在 lfm 中间件中,但它不起作用

有什么帮助或建议吗?

问候 萨米人

【问题讨论】:

    标签: laravel middleware


    【解决方案1】:

    您需要限制将 LFM 暴露给非管理员用户的路由。我可能会创建一个单独的中间件,我可以在每个路由或每个路由组的基础上应用它来执行此检查并拒绝访问。

    另一种方法是使用 Gates 和/或策略来限制访问。如果需要,您可以将其微调为单个用户的权限。

    【讨论】:

    • 我按照你说的创建了一个单独的中间件,但是当访问者或非管理员登录时,前端的图像消失了:(但我在下面的评论中解决了这个问题
    • 别忘了接受答案并点赞=D
    【解决方案2】:

    谢谢@btl

    我编辑过(vendor/unisharp/laravel-filemanager/src/routes.php)

    from // 显示 LFM

    直到 // 删除,

    我把它们都放在里面了:

    Route::group(['middleware' => ['auth', 'roles'], 'roles' => ['admin', 'supervisor']], function() {
    ...
    });
    

    问题解决了:)

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多