我正在尝试使用cancan实现特定的对象(行)授权,我希望它的工作方式是,如果用户拥有特定Record的角色,则他/她只能对Record进行更改(更新/编辑)。在查阅了cancan文档后,我尝试执行以下操作:
class Ability
include CanCan::Ability
def initialize(user)
can :manage, Record do |record|
user.can_edit(record)
end
end
end
class User
has_many :assignments
has_man
我的home.html.erb文件中有以下代码;
<!-- if seeker is logged in show button "Grab it" -->
<% if user_signed_in? %>
<div class="grabit alignright">
<small>want to work on this?</small>
<!-- if seeker is not logged in, show him the output text of "Sign in to w
在我的Rails应用程序中,我有rails Admin和CanCan支持。不过,我对一个问题感到困惑。CanCan如何知道哪个用户已登录?例如,我的用户可以有不同的角色,通过CanCan,我可以为每个表的特定访问权限分配角色。当我转到localhost:3000/admin时,我收到错误消息
CanCan::AccessDenied in RailsAdmin::MainController#dashboard
我的Ability.rb文件
def initialize(user)
if user and user.role.eql? :super_admin
ca
我想在我的rails应用程序中作为管理员,经理,客户3个用户级别。因此,我创建了一个作为用户的设计模型,并添加了一个迁移,以便在用户注册时将用户角色添加到it.So中,它存储用户角色(无论他是管理员、经理还是客户)。在我的应用程序中,有用于产品、交付和服务的模型和控制器。我想要设置每个模型的访问级别。
因此管理员可以访问所有型号、控制器
经理有权访问产品、交付
客户有权访问服务
我写的能力模型如下。
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest use
我在一个严重的问题与学校为基础的应用程序,我想建立喜欢的管理员,学生和教师的角色为基础的系统。我使用devise进行身份验证,使用cancan进行授权。问题是我不知道从哪里开始。我已经添加了devise用户模型,并添加了一个字段roles。我跟随进行了基于角色的授权。它可以工作,但当我尝试使用学生凭据登录时,通过在下拉列表中选择一个教师角色,它永远不会验证角色(也不会说访问被拒绝)。它以学生身份登录。我想验证登录表单中所选的角色。
到目前为止,我使用用户模型作为设计模型。有学生模型、教师模型和管理员模型。并且所有的学生、教师和管理员都属于用户。
在用户模型中
class User < A
我对rails (3)比较陌生,我正在使用CanCan构建一个应用程序,其中有3层用户。
未注册访问者Userregistered和登录访问者管理-注册和登录访客的管理标志
我现在的能力是bog-stock,从cancan文档中复制,基本上定义了来宾角色和管理角色。
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # Guest user
if user.is_admin?
can :manage, :all
我正在尝试给一些自定义角色在spree特定的权限。到处都找不到这个答案
role_ability.rb
class RoleAbility
include CanCan::Ability
def initialize(user)
user || User.new # for guest
if user.has_role? "admin"
can :manage, :all
elsif user.has_role? "retailer"
can :manage, Product
else
can :read, :all
end
我使用的是rails_admin、devise和cancan。
用户有很多角色。
我有一个管理页面设置,具有管理员角色的用户可以管理用户。但是,管理员不能管理角色。
创建或编辑用户时,不会列出角色。
如何允许管理员在不编辑或创建角色的情况下向用户添加角色?
这是我的能力文件
class Ability
include CanCan::Ability
def initialize user
if user && user.admin?
can :access, :rails_admin
can :dashboard
canno