10

Tôi đang sử dụng quản trị viên được tạo và được thêm vào gần đây, đã tạo một bảng admin_users riêng biệt để giữ quản trị viên.Bỏ qua trước khi bộ lọc có Quản trị Hoạt động

Tất cả đều hoạt động tốt với Quản trị viên đang hoạt động khi tôi cố gắng đăng nhập và duyệt qua. Tuy nhiên, điều khiển ứng dụng của tôi có điều này cho người dùng phổ thông.

before_filter :authenticate_user!, :except => [:show, :index] 

Bởi vì điều này, khi bên trong giao diện quản trị hoạt động, bất cứ khi nào tôi cố gắng để chỉnh sửa hoặc xóa bất cứ điều gì, tôi được yêu cầu phải đăng nhập Tôi đã học được rằng một skip_before_filter có thể được sử dụng bên trong bộ điều khiển trong đó before_filter cần phải được loại trừ, tuy nhiên Active Admin không có một tập tin điều khiển trong thư mục bộ điều khiển hoặc bất cứ nơi nào trong dự án của tôi tôi có thể xem xét.

ai cũng có thể đề xuất cách làm cho quản trị viên hoạt động bỏ qua ứng dụng beofre_filter mà tôi muốn áp dụng trên tất cả ứng dụng khách/người dùng phải đối mặt?

Trả lời

33

Trong config/initializers/active_admin.rb bạn có thể thêm như sau:

config.skip_before_filter :authenticate_user! 

Bạn cũng có thể sử dụng DSL được cung cấp để thay đổi bộ điều khiển ActiveAdmin: http://activeadmin.info/docs/8-custom-actions.html#modify_the_controller

+0

Hoàn hảo! cảm ơn – alik

+0

Vì lý do nào đó, dòng trong tệp initializers không hoạt động đối với tôi. Và tôi không chắc chắn. . trong đó các tập tin nào bạn thêm mã để sửa đổi bộ điều khiển ActiveAdmin? – John

+0

@John Đảm bảo bạn khởi động lại ứng dụng của mình sau khi thay đổi bất kỳ trình khởi tạo nào và bạn có thể sử dụng DSL điều khiển sửa đổi bên trong tệp định nghĩa quản trị (ví dụ: app/admin/post.rb). – coreyward

3

tôi không thể có được @ giải pháp coreyward của để làm việc, nhưng chỉnh sửa config/application.rb theo this Devise post và nói thêm:

ActiveAdmin.register_page "Dashboard" do 
    controller do 
     skip_before_filter :name_of_filter_to_skip 
    end 

    # Other code 
end 

để admin/dashboard.rb đã làm các trick. Nó không hoạt động bằng cách chỉ chỉnh sửa config/application.rb một mình. Đảm bảo khởi động lại máy chủ của bạn!

+0

tài liệu nói rằng bước cấu hình thêm cấu hình vào tất cả các bộ điều khiển RESOURCE của bạn, vì vậy bảng điều khiển dường như được loại trừ danh sách đó ... đi trực tiếp đến/admin/some_resouce vẫn bỏ qua mọi thứ cho tôi ... vì vậy bạn nói đúng, điều này là cần thiết ngoài giải pháp của coreyward – fringd

1

cả lõi và Sooie đều đúng ... nhưng chỉ một phần, để ngăn chặn tác giả của bạn! lọc từ ảnh hưởng đến active_admin bạn cần phải thực hiện cả các câu trả lời của họ ...

config/initializers/active_admin.rb

config.skip_before_filter :authorize_user! 

app/admin/dashboard.rb

controller do 
    skip_before_filter :authorize_user! 
end 
+0

Tại sao bạn nên triển khai cả hai? –

1

Tôi couldn' t làm cho các giải pháp của @fringd và @coreyward để làm việc trên Rails4 (sử dụng ActiveAdmin master branch).

Vì vậy, tôi đã chuyển sang các phương pháp lọc (Tôi có hai bộ lọc: authorize_user!check_user_status) vào một mối quan tâm mới, và bao gồm module này tạo thành bộ điều khiển trong đó có những bộ lọc (trừ các ApplicationController, mà nên vẫn sạch sẽ).

Sau đó khởi động lại máy chủ và giải quyết sự cố.

+0

Bạn có thể vui lòng thêm mã vào những mối quan tâm bạn đã mô tả – Besi

Các vấn đề liên quan