阻止Devise用户通过Rails中的URL访问/编辑表单

用户名

我已经在视图和控制器中执行了所有必要的步骤,以防止用户编辑不属于它们的表单。但是,如果用户A使用url直接访问该站点(例如:travel / 5 / trips / new),则即使旅程5属于用户B,它仍将允许用户A在旅程5下创建新旅程。

应对这种情况的最佳方式是什么?我正在使用devise 3.4

拉吉普·辛格(Rajdeep Singh)

在行程控制器,你可以添加一个before_filter方法来检查的旅程是否属于current_user或不

before_filter :authorize_journey, only: [:new]

def authorize_journey
  @journey = current_user.journeys.where(id: params[:journey_id]).first

  if @journey.blank?
    flash[:error] = "You cannot access someone else's record."
    redirect_to root_path
  end
end

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

阻止用户通过 URL 访问

阻止用户访问表单

阻止用户在表单中输入URL

EmberAuth actionRedirectable Module阻止用户通过URL访问资源

阻止用户通过访问端点URL输入AJAX数据

通过点击Enter阻止用户提交表单

将自定义表单添加到Devise编辑页面Ruby on Rails中

使用Devise User创建自定义编辑用户表单

无法在用户模型中访问“用户名”属性(Rails 4-Devise)

在Rails4中使用Devise,如何允许用户仅编辑自己的注释?

Angular-Auth Guard阻止授权用户通过直接URL访问身份验证页面

如何阻止我的网站上的用户访问Rails_admin面板URL?

如何在flask-admin中向用户显示编辑表单之前访问模型字段值?

如何在 Rails 中通过 Devise 仅显示用户自己编写的文章

确保只有一个用户在Rails应用程序中编辑表单

如何从Rails中的Devise用户删除属性?

Devise on Rails 6 中的子用户

如何通过在Ruby / Rails中编辑数据库中的所有文章来修复编辑表单?

Ruby on Rails Devise自定义表单-表单未在编辑时更新

在Devise用户模型中编辑自定义字段

通过直接输入来阻止用户访问php文件

通过Ruby on Rails在devise用户上创建示例数据

Rails Devise:如何通过ID更新用户?

编辑用户详细信息将创建新用户。Devise,Rails 4

无法访问Rails中的编辑路径

在Firefox中通过URL阻止特定请求

从Symfony中的表单类型访问用户实体

如果未登录,如何通过url阻止页面访问?

通过表单在Django中创建用户