在我的CMS中,我使用Zizaco/entrust/作为ACL管理员,使用laravel-elfinder作为文件管理器和上传器。
两者都很好,没有任何问题。
现在,我想限制具有指定角色和权限的用户访问elfinder管理它们上传或列出文件的文件夹。
在elfinder配置文件的全局中,我们可以设置dir
存储图像的位置(相对于公共),如下所示:
return array(
'dir' => ['upload']
);
在这种情况下,任何角色的所有用户都可以访问它并上传或其他常规文件操作。
但我希望,在用户登录后,如果他想要elfinder,只能访问与其用户名相同的文件夹,并且他无法查看或访问其他用户文件夹。
有可能吗?如果是,请指导我。
答案 0 :(得分:1)
根据@Froxz的指导,我可以解决这个问题:
在仅允许管理员用户使用CMS的中间件中,我写道:
$username = Auth::user()->username;
if (!File::exists(public_path('upload').'/'.$username)) {
File::makeDirectory(public_path('upload').'/'.$username,0775);
}
Config::set('elfinder.dir',["upload/$username"]);
首先,我创建了一个与user相同的用户名,然后将elfinder配置的dir
选项设置为该文件夹路径。