В моей CMS я использую Zizaco / доверьте / в качестве менеджера ACL и Laravel-elfinder в качестве файлового менеджера и загрузчика.
Оба работают нормально и не имеют никаких проблем.
Теперь я хочу ограничить доступ пользователей с указанными ролями и разрешениями к папкам, которые elfinder управляет ими для загрузки или просмотра файлов.
Глобально в файле конфигурации elfinder мы можем установить dir
где хранить изображения (по отношению к общественности), как это:
return array(
'dir' => ['upload']
);
В этом случае все пользователи с любыми ролями могут получить к нему доступ и загрузить или выполнить другие операции с файлом commom.
Но я хочу, чтобы после входа в систему пользователь, если он хочет elfinder, мог только получить доступ к папке с тем же именем, что и ее имя пользователя, и он не может видеть или получить доступ к другой папке пользователя.
Является ли это возможным? если да, пожалуйста, направьте меня.
Согласно руководству @Froxz, я мог бы решить проблему следующим образом:
В Middleware, который позволяет работать только с 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"]);
Сначала я создал каталог с тем же именем пользователя, а затем установил dir
возможность конфигурации elfinder для этого пути к папке.
Других решений пока нет …