如何在flm.php中为unisharp / laravel-filemanager添加多个Auth

时间:2018-04-20 08:21:19

标签: laravel file-manager

我正在使用laravel 5 4和“unisharp / laravel-filemanager”:“~1.8”

在我的项目中,我有多个Auth,如会员,客户,经理,经销商,但只有经理和客户才能访问文件上传。 这是我的flm.php

'middlewares' => ['web', 'auth:client', 'auth:manager'],

这不起作用。 但 'middlewares'=> ['web','auth:client'],//工作,但只有客户可以上传,但经理无法上传 要么 'middlewares'=> ['web','auth:manager'],//工作但只有经理才能上传,但客户无法上传

我也尝试使用但它也不起作用 'user_field'=>应用程序\处理程序\ ConfigHandler ::类, 和处理程序配置

if (Auth::guard('client')->check()) {
  return Auth::guard('client')->user()->id;
}
if (Auth::guard('manager')->check()) {
  return Auth::guard('manager')->user()->id;
}

我需要为客户和经理工作的中间件

感谢

1 个答案:

答案 0 :(得分:0)

嗨,我在Laravel 5.4中遇到了同样的问题,这就是我如何解决的问题。 首先在web.php的laravel-filemanager路由中,我做到了。

Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth:manager,client']], function () {
 \UniSharp\LaravelFilemanager\Lfm::routes();
});

网络是默认防护,供应商是自定义防护...在您的情况下,它是auth:manager,client 然后为避免用户使用相同的文件夹名称,我需要所有管理员(管理员)使用相同的文件夹,然后客户端防护使用auth()->user()->id,我将laravel-filemanager ConfigHandler更改为此

<?php
namespace UniSharp\LaravelFilemanager\Handlers;
class ConfigHandler
{
    public function userField()
    {
        if(auth('vendor')->check())
    {      
        return auth()->user()->id;
    }
    else
    {
        return 'admin';
    }
}

   /*public function userField()
     {
    return auth()->user()->id;
     }*/
}

希望有帮助。