好了,到目前为止,我已经准备好了acl9和我的应用程序结构:
区域(有)位置(有销售)。销售并不重要,基本上只是每个位置都会显示的帖子。
我也有用户,可以根据角色限制和允许与acl9集成。
我需要做的是创建公司,并为给定公司创建的用户只允许访问该公司内的区域和位置。然后,我需要用户,每个公司都可以创建,这只有权访问他们被授予访问的位置。
我的问题是,我不确定如何动态地将创建的用户限制到某个部分。这就是说,管理员的界面。我可以想象几种方法,但在寻找最好的一种。
发布于 2009-10-19 15:48:30
你可以重写"has_role?“方法提供给用户。
class User < ActiveRecord::Base
def has_role?(role_name, obj=nil)
# Your code
end
end如果对象类型为" region“或"Location",则检查用户的公司,如果地域合适,则允许访问。否则,你会称其为“超级”。并让ACL9检索它的默认值。
它会给你类似这样的东西:
class User < ActiveRecord::Base
def has_role?(role_name, obj=nil)
super unless obj.class == Region or obj.class == Location
return company.region == obj if obj.class == Region
return company.location == obj if obj.class == Location
end
end之后,这只是一个实现建议。它们的数量几乎是无限的。我也从来没说过这是最好的。
https://stackoverflow.com/questions/1589429
复制相似问题