cancan

Rails CANCAN - 第一次点击无访问权限

我在使用 Rails 4 和 CanCan 时遇到了一些问题。 我所做的一切都像这里https://github.com/ryanb/cancan 描述的那样,实际上它可以工作,但我有以下问题: 有时当我点击导航中的链接时,例如"Employee" 打开 Employee/Show 页面 CanCan 触发警报: "...employee/?alert=You+are+not+authoriz... »

CanCan accessibly_by 在规范和控制器中返回不同的响应

我正在尝试测试Farm 模型的用户身份验证,在这种情况下,:user 角色在登录时具有对所有场的读取访问权限(作为访客user aka.anonymous 也有)。 # /models/ability.rb class Ability include CanCan::Ability def initialize(user) # Create guest user aka. an... »

Cancan 嵌套路由限制对 :index 的访问

我对 cancan 和嵌套路由有一些问题。 我有这条路线: resources :companies do resources :projects end 我对公司模型的能力没有问题,但对于项目模型,如果他们不是公司的管理员,我想拒绝对 Project#index 的访问。 下一个代码有效: can :show, Company do |company| if user.a... »

使用CanCan,我如何根据关联/子属性限制能力

我有一个数据库设置,其中有很多用户,这些用户具有成员或管理员的角色。每个用户有许多汽车。每辆车都有很多时间片 那么,只有当用户是母车的车主时,我如何限制用户编辑时间记录的能力。 在CanCan: class Ability include CanCan::Ability def initialize(user) user ||= User.new # gue... »

管理员无法使用 CanCan 为自己创建项目?

我正在使用CanCanCan 进行授权。管理员可以管理所有内容,因此他们没有每个用户 ID 规则。结果是默认情况下他们无法为自己创建项目。看起来我需要添加一堆额外的管道以使我的控制器中的create 对管理员的工作方式与对一般用户的工作方式相同。原因似乎是Ability#attributes_for 没有为管理员用户提供 user_id 属性。 其他人是如何解决这个问题的?您是否正在编写代码来... »

从模型中访问 CanCan 的 `can?` 方法

您可以通过这种方式使用can? 从视图或控制器中获取current_user 的权限: <% if can? :update, @article %> <%= link_to "Edit", edit_article_path(@article) %> <% end %> 如何使用以下语法从模型访问此功能: user.can?(:upda... »

在 Rails 中具有多个用户身份验证的一个帐户

对于以下问题,您会推荐哪种方法:我的应用需要有一个帐户,多个用户在同一个帐户上输入任务。只有其中一位用户(开户者)拥有管理员权限。 我正在考虑使用 Authlogic 进行身份验证,使用 CanCan 确定用户权限。关键是我希望打开帐户的用户默认是管理员,他是唯一能够为他的帐户生成具有不同权限的其他用户的用户。... »

如何只允许管理员(或某些用户)编辑 Rails 中的页面?

我有一个财务脚手架,我刚刚意识到任何登录用户都可以通过转到 /finances/1/edit 来编辑它 我已经安装了 activ_admin gem,但我认为这不是我需要的。如何确保除了管理员(或可能是某些用户)之外没有人可以编辑财务资源类型-I 编辑-我找到https://github.com/EppO/rolify,这是最好的选择还是我仍然可以做得更好,因为它可能有点矫枉过正? 编辑... »

CanCan(Can) 和 Activeadmin:嵌套关系索引

我将 CanCan(Can) 与 ActiveAdmin 一起使用。但是,我很难让 CanCan(Can) 在索引上正常工作,以实现“has_many through”关系。 基本上我的 Invoice 模型如下所示 class Invoice < ActiveRecord::Base belongs_to :order belongs_to :country belong... »

我可以通过 CanCan 在表单输入集合中使用授权吗?

我试图弄清楚如何将用户的:collection 限制为can? :manage, @article.website 的用户。如前所述,我正在使用 Cancan,我觉得我应该能够做这样的事情: = f.input :user_id, collection: User.all unless cannot? :manage, @article.website 我使用的是 simple_form_f... »

使用设计/cancan 进行生产的 Rails wiki gem - 非个人使用

我一直在研究在现有 Rails 应用程序中用于生产的 wiki,而不是供个人使用 - 在这里看到了一些关于 wiki gems 的问题,但很少用于个人用途。 Gollum 似乎很容易在本地运行,但对于可能有多个用户/组且每个用户/组都有自己的安全 wiki 的生产环境,它是一个不错的选择吗? 除了咕噜,我还研究了Instiki、zena 和Wagn。 需要考虑的一些生产要求: 需要很好地与... »

使用cancan根据角色限制列表对象

在我的能力.rb 我有 user ||= User.new if user.has_role? :admin can :manage, :all elsif user.has_role? :collaborator can :manage, Task, :user_id => user.id else can :read, Task, :user_id => user.i... »

可以仅当 current_user 与项目关联时才允许操作

我使用cancan 进行授权,我想根据多对多关系做一些限制。 实体 User - has_many project_assignments User - has_many projects, through: :project_assignments User - has_many roles, through: :project_assignments ProjectAssign... »

RSpec 控制器规范中的 CanCan

我花了一天的大部分时间试图根除控制器规范的问题,而当前的解决方法对我来说似乎是不可接受的。任何关于为什么这有效? ...以及我应该做什么。 给定一个简单的层次结构如下,以及下面的能力.rb,properties_controller_spec.rb 不允许下面的规范在没有以下行的情况下通过: ability = Ability.new(subject.current_user) 你能告诉我... »

如何修改cancan加载和授权资源以使用不同的id加载资源

如何修改加载和授权资源以使用不同的 id 加载资源。例如。 我的路线是 http://localhost:3000/organization/user/12/event/20/edit 在我的事件控制器中,我使用:event_id 访问事件,用户使用:id 访问事件 现在在我的事件控制器中如何修改 load_and_authorize_resource 使用 :event_id 而不是 ... »

安全性:使用 CanCan 确保用户无法看到其他用户的个人资料

我有一个使用 Devise、CanCan 和 Rolify 来处理身份验证和授权的应用程序。但我认为我并没有充分利用这些宝石。现在我的能力班里唯一的东西是这样的: class Ability include CanCan::Ability def initialize(user) user ||= User.new # guest user (not logged in) ... »

CanCan 似乎忽略了块

我正在使用 cancan gem,但遇到了一些问题。我写了一些简单的测试,但对于没有分配角色的用户来说失败了。可以看出,在Ability 类中,我试图说一个用户只有拥有:admin 角色才能管理其他用户。正如评论所指出的,该块永远不会被调用。 当你将一个块传递给can时,在cancan gem中?方法它将它添加到规则中,然后在您调用 can?方法,除非传入的对象的类是Class。因此,当我执行... »