2015-05-15 16 views
12

ActiveAdmin ve Devise ile Kullanıcılarla çalışıyorum. Aynı kullanıcı modeline sahip yönetici olmayan kullanıcılara giriş yapmak için Devise'yi kullanmak istiyorum. Bunu nasıl yapabilirim? (Ben sadece yöneticiler için Kullanıcı modelinde bir admin bayrağı olmasını istiyorum.) Ben güzergahları listelemek çalıştığımdaAynı Kullanıcı modeli için Devise ve ActiveAdmin'i nasıl kullanırım?

devise_for :users, ActiveAdmin::Devise.config 
devise_for :users 

routes.rb için 2 satır ekleyerek çalıştı Ama bir hata verdi

>rake routes 
DL is deprecated, please use Fiddle 
rake aborted! 
ArgumentError: Invalid route name, already in use: 'new_user_session' 
You may have defined two routes with the same name using the `:as` option, or you may be overriding a route already defined by a resource with the same naming. For the latter, you can restrict the routes created with `resources` as explained here: 
http://guides.rubyonrails.org/routing.html#restricting-the-routes-created 

Sadece user.admin == true denetler ve bu ActiveAdmin için Tamam çalışıyor bir yetkilendirme bağdaştırıcısı oluşturduk.

cevap

16

https://github.com/activeadmin/activeadmin/blob/master/docs/13-authorization-adapter.md Bu http://dan.doezema.com/2012/02/how-to-implement-a-single-user-model-with-rails-activeadmin-and-devise/

bulundu Ama bu

Devise 3.4.1
ActiveAdmin 1.0.0.pre1
Rails yapıyor sona erdi 4.2.1

routes.rb
devise_for :admin_users, {class_name: 'User'}.merge(ActiveAdmin::Devise.config) 
    ActiveAdmin.routes(self) 

    devise_for :users 
    resources :users 
application_controller.rb
def access_denied(exception) 
    redirect_to root_path, alert: exception.message 
    end 
config/initializers/active_admin.rb
config.authorization_adapter = ActiveAdminAdapter 
config.on_unauthorized_access = :access_denied 

(ve admin_user için _user tüm değiştirme yöntemleri.)

app/models/active_admin_adapter.rb
class ActiveAdminAdapter < ActiveAdmin::AuthorizationAdapter 
    def authorized?(action, subject = nil) 
    user.admin == true 
    end 
end 

ve

rails generate migration add_admin_to_users admin:boolean 
+1

Awesome answer .. Gerçekten çok yardım dolu. – SSR

İlgili konular