Я здесь - rails noob и впервые публикуюсь и использую декларативную авторизацию для реализации ограничения доступа к ролевой базе в небольшом приложении с расписанием, которое я пишу.
В одном из моих представлений, в частности, index.html.erb для моих time_registers должен отображать больше информации, если пользователю, вошедшему в систему, назначена роль администратора.
В начале я просто проверял, что пользователь будет с идентификатором == 1
<% if @current_user.id == 1 %>
но теперь я хотел бы иметь возможность не ограничивать его для пользователя с id == 1, но позволить любому пользователю, которому назначена роль администратора, просматривать немного больше в файле index.html.erb.
Немного о том, как настраивается модель с декларативным_авторизацией
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
Ну, я не уверен, что еще понадобится, чтобы ответить на этот вопрос, поэтому не стесняйтесь запрашивать дополнительную информацию.