我正在使用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;
}
我需要为客户和经理工作的中间件
感谢
答案 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;
}*/
}
希望有帮助。