Ruby on rails 创建验证器检查登录的user.id是否与我的行user\u id相同,这是一个好主意吗?
我只是不确定方法。事实上,我遇到过这种情况:Ruby on rails 创建验证器检查登录的user.id是否与我的行user\u id相同,这是一个好主意吗?,ruby-on-rails,ruby-on-rails-3.2,authlogic,Ruby On Rails,Ruby On Rails 3.2,Authlogic,我只是不确定方法。事实上,我遇到过这种情况: User belongs_to Organization Organization has_many User Organization has_many MembershipCard MembershipCard belongs_to Organization 现在,仅当用户设置Organization=User.Organization时,才允许用户创建新的会员卡(请注意,具有更高权限的用户没有此限制) 目前我处理控制器上的所有事情,但是我正
User belongs_to Organization
Organization has_many User
Organization has_many MembershipCard
MembershipCard belongs_to Organization
现在,仅当用户设置Organization=User.Organization时,才允许用户创建新的会员卡(请注意,具有更高权限的用户没有此限制)
目前我处理控制器上的所有事情,但是我正在考虑制作一个验证器,确保Organization==current\u user.Organization(UserSession.find.user)
这是个好主意吗?这对我来说很好,但我真的很害怕没有好的理由就很难打破MVC模式。这是一个让你思考的完美时间/地点/例子,不仅仅是(authlogic)。
用宝石做这件事简直是儿戏。您只需在以下列表中指定规则: 看看如何一起使用这些宝石 ====更新问题信息后:======= “CanCan的灵感来源于声明性授权和宙斯盾”—— 我查了一下,你会如何用CanCan定义这样一个规则,页面上有一个片段 您仍然需要根据您的环境对其进行定制,但它应该可以引导您找到解决方案
请参阅关于使用CanCan。这是一个让您思考的完美时间/地点/示例,不仅仅是(authlogic)。
用宝石做这件事简直是儿戏。您只需在以下列表中指定规则: 看看如何一起使用这些宝石 ====更新问题信息后:======= “CanCan的灵感来源于声明性授权和宙斯盾”—— 我查了一下,你会如何用CanCan定义这样一个规则,页面上有一个片段 您仍然需要根据您的环境对其进行定制,但它应该可以引导您找到解决方案
请参阅关于使用CanCan。我已经在使用CanCan进行授权,但我不知道是否支持类似于if\u属性的内容。你把代码放在哪里?它是否放在声明性授权使用的特定文件中?哇,你为我做了这项工作,真的很感谢,这超出了我的预期。很明显,完全回答我的问题。Np,我很高兴能帮上忙。如果你有一些游戏项目正在进行,喜欢去看看,你可以详细介绍一下你的个人资料[:谢谢,我正在与一些人合作一个用Unity3D构建的小项目,但我们仍处于头脑风暴阶段。当我有东西给你看时,我肯定会这么做;)我已经在使用cancan进行授权,但我不知道是否支持类似于if_属性的东西。你把代码放在哪里?它放在使用的特定文件中吗通过声明性授权?哇,你为我做了这项工作,真的非常感谢,这比我预期的要多。而且完全回答了我的问题。Np,我很高兴我能帮上忙。如果你有一些游戏项目正在进行,我很乐意去看看,你可以详细介绍一下你的个人资料[:谢谢,我正在与一些人合作一个用Unity3D构建的小项目,但我们仍处于头脑风暴阶段。当我有东西给你看时,我肯定会做;)
authorization do
role :user do
has_permission_on :membership_cards, :to => :create do
if_attribute :organization => is {user.organization}
end
end
end
class Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
can :create, MembershipCard do |card|
card.organization.user == user
end
end
end