【发布时间】:2013-11-20 04:05:26
【问题描述】:
我有一个使用 CacCan 和 Devise 的应用程序。我正在让 Devise 处理用户销毁操作
路线
DELETE /users(.:format) devise/registrations#destroy
我的控制器
class UsersController < ApplicationController
skip_before_filter :authenticate_user!, :only => :portfolio
def index
redirect_to dashboard_user_path(current_user)
end
def dashboard
...
end
def portfolio
end
end
我的能力.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.role?('Administrator')
can :access, :rails_admin
can :dashboard
can :manage, :all
else
cannot :destroy, User
can :read, :all
...
end
end
end
上面的这段代码不起作用。不是管理员的用户仍然可以删除用户。我假设原因是我没有 UsersController#destroy 方法。
所以我的问题是,如何让 CanCan 阻止非管理员用户删除用户?
任何帮助将不胜感激。
谢谢
【问题讨论】:
标签: ruby-on-rails devise authorization cancan