Я работаю над ролями и разрешениями в моем приложении. Для этого я использую gem pundit. В соответствии с требованием роль client_admin может просматривать пользователей из раскрывающегося списка столбца test_by, как указано в приведенном ниже файле представления, но не должна иметь доступа к странице пользователей / индекса.
app / views / project_issues / _form.slim:
.padded.user-config
- unless @project_issue.errors.empty?
.alert.alert-danger
= @project_issue.errors.full_messages.join('. ') + '.'
= simple_form_for @project_issue do |f|
= f.input :reference_number
= f.input :tested_by,
as: :select2,
path: users_path(format: :json, roles: [:super_admin, :client_admin]),
prompt: 'Select a User',
attribute_method: :tested_by
app /icies / project_issue_policy.rb:
def new?
user.is?(:super_admin, :client_admin)
end
app / models / project_issue.rb:
class ProjectIssue < ApplicationRecord
belongs_to :tested_by, class_name: 'User'
end
user_policy.rb:
def index?
user.is?(:sales_user, :sales_manager, :super_admin, :client_admin)
end
Согласно приведенному выше коду, пользователи все еще могут получить доступ к странице индекса через URL. Можем ли мы добавить какую-либо область или метод? Пожалуйста, помогите.