繁体   English   中英

CanCan +为设计用户模型设计

[英]CanCan + Devise for the devise user model

使用devise ,我有一个用户模型。 我没有用户控制器。

要使用CanCan,我需要在控制器顶部执行以下操作

# Authorization w Devise & CanCan
before_filter :authenticate_user! # Devise, signed in users only
load_and_authorize_resource # CanCan

我在哪里添加它,以便在没有用户控制器的情况下可以拥有User模型的权限?

谢谢

您可以将该代码添加到需要身份验证的任何控制器中,不需要UsersController

before_filter :authenticate_user!

该行要求使用sign_in_path登录的有效用户,因此,如果您尝试使用before_filter来访问控制器而未登录,则将被sign_in_path重定向到sign_in_path

load_and_authorize_resource # CanCan

另一行将实例变量填充为默认值(如果尚未设置),然后使用Ability类检查特权,因此,假设您有ArticleController ,它将在后台执行以下操作(实际代码基于当前行动)

# for the show action
@article = Article.find(params[:id])
raise CanCan::AccessDenied unless can(:read, @article)

can(:read, @article)语句是CanCan库的壁炉,它将根据您的能力等级返回布尔值。 可以在这里阅读更多内容

如果整个应用程序都需要身份验证,则只需添加before_filter :authenticate_user! 行到ApplicationController

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM