我是 Rails 新手,也是第一次在这里发帖,我正在使用声明性授权来在我正在编写的一个小型时间表应用程序中实施角色基础访问限制。
在我的一种观点中,如果登录的用户分配了管理员角色,我的 time_registers 的 index.html.erb 需要显示更多信息。
一开始我只是检查用户是否是 id == 1 的用户
<% if @current_user.id == 1 %>
但现在我希望能够不将其限制为 id==1 的用户,而是允许任何分配了管理员角色的用户在 index.html.erb 文件中查看更多内容。
一点如何使用 declarative_authorization 设置模型
class User < ActiveRecord::Base
has_many :assignments
class Role < ActiveRecord::Base
has_many :assignments
has_many :users, :through => :assignment
class Assignment < ActiveRecord::Base
belongs_to :user
belongs_to :role
我的授权文件如下所示:
authorization do
role :usuarios do
has_permission_on :users, :to => [:index, :show, :new, :create, :edit, :update]
end
role :reghoras do
has_permission_on :time_registers, :to => [:index, :show, :new, :create, :edit, :update]
has_permission_on :users do
to :show
if_attribute :id => is {user.id}
end
end
role :contactos do
has_permission_on :contacts, :to => [:index, :show, :new, :create, :edit, :update]
has_permission_on :users do
to :show
if_attribute :id => is {user.id}
end
end
role :admin do
has_permission_on :authorization_rules, :to => :read
has_permission_on [:time_registers, :contacts, :users, :roles], :to => [:index, :show, :new, :create, :edit, :update, :destroy]
end
role :guest do
has_permission_on [:time_registers, :contacts], :to => [:index, :show]
end
end
好吧,我不确定还需要什么来回答这个问题,所以请随时索取更多信息。