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