Tag: rolify

具有多态关联的灯具不起作用

我正在尝试实现Rolify gem但是无法添加具有范围的灯具。 下面的(模型)测试的最后一行失败,因为目前主持人角色似乎全局给予@user ,而不是仅给予组织1。 下面的灯具没有使用resource_id和resource_type ,它们在gem文件中提到了夹具,但我不知道如何使用它们。 如何将主持人角色的范围设置为仅限组织1? roles.yml moderator: id: 1 resource: one (Organization) users.yml里 one: email: example@example.com roles: moderator, organizations(:one) # I was hoping this would set the scope of the role to organization one but it isn’t (seems to set the role globally). test.rb def setup @moderator_role = roles(:moderator) @organization1 = organizations(:one) @organization2 […]

如何限制当前登录的用户只能看到属于他们的产品?

如果用户使用特定角色( vendor )登录,则他们应该只看到他们在商店中创建的项目。 他们不应该看到其他供应商的产品。 所以我试图在我的授权中这样做(使用Devise,CanCan,Rolify)。 我试过这个: user ||= User.new # guest user (not logged in) if user.has_role? :vendor can :dashboard can :manage, [Product, Vendor], :vendor_id => user.id can :view, [Product], :vendor_id => user.id end 但是….没有太多运气……我错过了什么? 编辑1 我知道我可以限制控制器中的产品,如: @product = current_user.products 但这不是我想要的。 在这种情况下,供应商(即具有角色的用户:vendor )应该只能看到他们添加到商店的产品,但他们不应该能够看到其他供应商添加的产品。 但是,买方(即具有角色的用户:buyer )应该能够看到所有:buyer所有产品(管理员/等)。 买方将无法查看某些产品的价格和其他一些属性等。 我怎样才能实现这一切?

Rails 4 + Rolify Gem:用户角色未通过UI更新

我有一个编辑视图,允许我更新特定用户的角色。 我已经包含了下面的代码,但是,为了给你一个想法,当我取消选中页面上的框时,我的控制器中的put语句正确地发现角色关联是错误的,可以在日志中进一步查看。 但是,稍后在日志中,您可以看到角色重新关联回“true”,我不确定为什么会出现这种情况! 如果未选中复选框,我希望从用户中删除这些角色。 用户/ edit.html.erb: {action: “update”}, :html => { :class => ‘user-role’ } do |f| %> User Roles Check the boxes to grant different roles to : Administrator Member users_controller.rb: def update @user = User.find(params[:id]) @customer = current_user.customer @logged_in_user = User.find_by_email(current_user.email) if params[:admin] == “1” @user.grant(:admin) elsif params[:admin] == “0” @user.remove_role(:admin) end if […]

使用Rolify定义角色

我正在尝试用Rails 4创建一个应用程序。 我正在考虑角色管理,并希望使用Rolify,因为它支持实例级角色分配。 对于其他同样问题的人来说,下面有两个非常好的答案(我只能打一个,但我同时使用了两个)。 查看下面的lorefnon和Cyb3rDud3答案)。 我还在搞清楚,但已经用数组(如lorefnon节目)和控制器/路由函数(如Cyb3rDud3所示)进行了迁移。 令我感到困惑的是,Rolify gem的所有文档都使用控制台来定义角色。 如何在代码中定义角色? 该板上的其他人提出了一些问题,这些问题暗示他们在db:seeds文件中定义了角色。 我不想这样做,因为我想控制谁使用我的种子文件比谁可以创建角色更紧密。 你在哪里做的? 所有示例都显示它是从控制台完成的。 我想定义一个角色列表,然后我想给角色权限(我想在这部分使用权威)。 我有一个用户模型。 我看到的另一个gem是角色模型。 它要求您在用户模型中创建角色数组。 它很明显你应该在Rolify中做到这一点 – 没有一个文件能给你这一步吗? 你在哪里定义角色?

Rolify的目的是什么?

嗨,我正在使用rolify,并且刚刚意识到我并没有真正利用它的全部潜力。 目前我正在我的控制器中做一些事情,如重新路由用户如果current_user.has_role? :whatever_role current_user.has_role? :whatever_role ,如果他们有其他任何角色,允许用户… 有人问关于rolvert的stackoverflow问题,当我试图回答它时,我意识到我做错了。 现在,这里是我的困惑开始…在ability.rb里面我有: user ||= User.new # guest user (not logged in) if user.has_role? :consumer can :manage, Review else can :read, Review end 现在让我们说我将用户角色添加到用户: x=User.last x.add_role :consumer # => # 是的,所以创建了角色。 我可以通过这样做来检查: x.has_role? :consumer => true 现在我希望这能为评论提供管理能力…… x.has_role? :consumer, Review => true 但不适用于其他型号……我在这里尝试产品 x.has_role? :consumer, Product => true 此外,当我查看“资源角色查询”并尝试查询应用的评论角色时,我发现没有应用角色: Review.first.applied_roles […]