如何防止一个用户在cloudinary / carrierwave / ckeditor / rails4中查看/删除其他用户的图像?

时间:2016-03-06 17:06:11

标签: ruby-on-rails ckeditor carrierwave access-control cloudinary

在我的rails(4.2.3)博客应用中,我使用ckeditor来创建帖子的主体。我使用带有cloudinary的carrierwave作为我的存储库。该博客允许多个用户登录并创建帖子。

以下是代码的重点:

{{1}}

因此,博主能够创建包含图像的帖子,并将其上传到cloudinary。

但是,我想限制一个用户看到另一个用户的图像。

如果用户A创建包含图像A的帖子,则图像A将上载到cloudinary。当用户B登录并编辑正文时,如果他们点击图像按钮并单击“浏览服务器”,他们就可以看到图像A.我希望每个用户只能看到他们自己的图像。

用户B还可以从上传对话框中删除用户A的图像A.这在我的场景中是灾难性的。

有没有办法在ckeditor / carrierwave的上下文中为不同的用户划分我的cloudinary空间?

我看到的唯一选项是cloudinary允许您覆盖每次上传的公共ID,这会形成一个网址部分。我可以将上传者的public_id设置为每个用户的ID:

{{1}}

但我不知道如何使用它来限制只能从上传者那个文件访问这些文件。

另一个(非常丑陋)选项是完全删除ckeditor-> carrierwave-> cloudinary集成,并显示我自己的"上传图片"每个ckeditor文本区域顶部的按钮,当用户单击它时,仅在模式弹出窗口中显示其图像。上传/拾取图像后,我可以(我认为)然后将图像链接插入光标位置下方的cktextarea。我必须在我的模态中重新调整整个图像大小调整等,因为我不能重复使用ckeditor的图像对话框中的那些。

0 个答案:

没有答案