我现在正在Laravel 5中使用登录系统编写文件系统,此时每个用户都可以创建文件夹并上传文件,但是当我从文件夹中复制路径时#34; A&#34 ;来自User" 1"并注销并使用User" 2"并在浏览器中粘贴路径,我有访问文件夹" A"来自User" 1"。 我希望只有创建文件夹的人才能打开它并上传文件。我希望通过用户ID进行身份验证,以检查当前尝试打开文件夹/路径的用户是否是创建者并且有权这样做。
public function mkdir(Request $request) {
$validator = Validator::make ( $request->all (), [
'dirname' => 'required|max:20'
] );
if ($validator->fails ( $request )) {
return redirect ( 'filesystem' )->withErrors ( $validator )->withInput ();
} else {
$id = Auth::user ()->id;
$dir = $request->dir . "/" . $request->dirname;
答案 0 :(得分:0)
Trayer:
由于文件夹的文件夹结构和所有权设置为服务器上的用户,因此无法在没有某种数据库的情况下执行此类操作。我建议的是像noodles_ftw所暗示的那样。
创建一个表folderPermissions,在这个文件夹中,它会有几列。所有者,路径
所有者将是创建该文件夹的用户的id,而path将是该文件夹的路径。
接下来,您将创建某种中间件或其他检查,以便在下文中说明以下
// get current user id
// get folders owned by that user
// if user is not allowed to view folder
// return an error letting them know
// continue to do what you need to do with the folder
这将允许您运行检查,甚至提醒用户试图访问他们不允许访问的文件夹。
此处的其他选项之一是使用服务器.htaccess和.htpasswd文件。这将允许您设置允许进入该文件夹的用户列表。您希望在用户创建新文件夹时创建这些文件。在为用户生成.htpasswd文件时,请使用数据库中的用户密码和用户名。
查找有关此解决方案的更多信息from the documentation