2012-07-11 24 views
7

ActiveAdmin ile çok kullanıcılı bir uygulama yapıyorum. Verileri güzel bir şekilde gerçekleştirmek için acts_as_tenant gemini kullandım.Çok Kiracı, ActiveAdmin'de Çoklu Yönetici Kullanıcıları

Tüm kullanıcılar için AdminUser modelini kullanıcı modeli nesnesi olarak kullandım.

Diğer kullanıcıları eklemek için YöneticiKullanıcı da kiracıya dağıtılır.

Bu ActiveAdmin/Devise kimliğini doğrulamak çalıştığında, aşağıda gösterildiği gibi ilk find_tenant filtreyi vuruyor varsayalım çünkü, giriş kapalı atıyor:

class ApplicationController 
    set_current_tenant_through_filter 

    before_filter :find_tenant 

    def find_tenant 
    if admin_user_signed_in? 
     set_current_tenant(Company.find(current_admin_user.company_id)) 
    end 
    end 

bu etrafında nasıl emin değil ... Kullanıcının oturum açmasını istiyorum ve ardından uygulama, oturum açmış olan kullanıcıdan company_id'i alır ve kiracıyı ayarlar ve ActiveAdmin'de gösterilen tüm veriler bu kiracı aracılığıyla kapsamlıdır (bu bölüm oturum açmayı başarabilirsem acts_as_tenant geminde iyi çalışır) .

Teşekkür

cevap

0

Ben şüpheleri doğru olduğunu düşünüyorum ve find_tenant yöntemde o admin_user_signed_in sonuçlanan kimlik doğrulama önce çağrıldığını? yanlış olmak. Bunun yerine bir sonraki filtreyi kullanmak için ayarlama yapmak, hile yapmalıdır, eğer durum buysa (http://guides.rubyonrails.org/action_controller_overview.html#after-filters-and-around-filters'dan).

class ApplicationController 
    set_current_tenant_through_filter 

    after_filter :find_tenant 

    def find_tenant 
    if admin_user_signed_in? 
     set_current_tenant(Company.find(current_admin_user.company_id)) 
    end 
    end 

değil, aynı şeyi iki farklı yolu yapmaya çalışıyoruz nasıl bu işin içine çalışır set_current_tenant_through_filter emin?

İlgili konular