根据用户角色创建特定的上传文件夹并限制对 laravel elfinder 中其他文件夹的访问
create specific upload folder based on user role and limit access to other folder in laravel elfinder
在我的 CMS 中,我使用 Zizaco/entrust/ as an ACL manager and laravel-elfinder 作为文件管理器和上传器。
两者都工作正常,没有任何问题。
现在,我想限制具有指定角色和权限的用户访问 elfinder 管理的文件夹以上传或列出文件。
全局在 elfinder 配置文件中,我们可以像这样设置 dir
存储图像的位置(相对于 public):
return array(
'dir' => ['upload']
);
在这种情况下,任何角色的所有用户都可以访问它并上传或其他常见文件操作。
但我想,在用户登录后,如果他想使用 elfinder,只能访问与她的用户名同名的文件夹,而他不能看到或访问其他用户文件夹。
可能吗?如果是,请指导我。
根据@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"]);
首先,我创建了一个与用户名相同的目录,然后将 elfinder 配置的 dir
选项设置为该文件夹路径。
在我的 CMS 中,我使用 Zizaco/entrust/ as an ACL manager and laravel-elfinder 作为文件管理器和上传器。
两者都工作正常,没有任何问题。
现在,我想限制具有指定角色和权限的用户访问 elfinder 管理的文件夹以上传或列出文件。
全局在 elfinder 配置文件中,我们可以像这样设置 dir
存储图像的位置(相对于 public):
return array(
'dir' => ['upload']
);
在这种情况下,任何角色的所有用户都可以访问它并上传或其他常见文件操作。
但我想,在用户登录后,如果他想使用 elfinder,只能访问与她的用户名同名的文件夹,而他不能看到或访问其他用户文件夹。
可能吗?如果是,请指导我。
根据@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"]);
首先,我创建了一个与用户名相同的目录,然后将 elfinder 配置的 dir
选项设置为该文件夹路径。