簡體   English   中英

活躍的管理員和公寓寶石

[英]Active Admin and the Apartment Gem

我是Active Admin的新手,但據我所知,到目前為止,我覺得這很容易實現。

我有一個公寓寶石的應用程序,以添加多租戶。

我正在為我的應用添加有效的管理員。 Apartment使用PostgreSQL模式來隔離數據。 因此,例如默認情況下,除非您調用類似Apartment::Tenant.switch!('abc')類的東西,否則公寓中的模型會有一個“公共”租戶。

在我的應用程序中,我的UserCompany模型在公共租戶中,其他一切都在租戶中。 因此,開箱即用的Active Admin工作正常,只是租戶模型沒有顯示任何記錄 - 正如他們應該的那樣。

我做了一些修改並手動添加了Apartment::Tenant.switch!('abc')我的一個AA模型文件,並且完美無缺。 這是一個理想的解決方案:

  • AdminUser登錄租戶時設置為默認值(比如第一個租戶)
  • 在每個租賃模型上可以有一個選擇菜單,提交一個參數(?tenant = abc)然后更改租戶
  • 活動租戶可能會AdminUserAdminUser會話存儲中,因此您可以使用相同的租戶數據,直到需要切換為止。

我想我可以很容易地做到這一點,但我想看看是否有任何Active Admin特定問題我需要解決如下:

  • AA是否有相應的應用程序控制器? 將租戶切換邏輯與主要切換邏輯保持在一起會很好。
  • 備用AA Devise AdminUser有一個單獨的會話變量存儲可用嗎?

任何建議將不勝感激 - 一旦我整理出來,我會將我的最終解決方案/代碼發回到這篇文章。

AA是否有相應的應用程序控制器? 將租戶切換邏輯與主要切換邏輯保持在一起會很好。

確實,有一個ActiveAdmin :: BaseController,但是gem的作者並沒有談論使用它進行自定義,不知道為什么。 對於你所談論的邏輯來說,這似乎是個好地方。

我以前從來不需要修改它,但是這里有一篇博客文章

備用AA Devise AdminUser有一個單獨的會話變量存儲可用嗎?

嗯。 Devise使用Warden進行會話管理,它支持同時登錄的多個用戶“范圍”以及單獨的會話數據 ,如果我在代碼中挖掘了內存,Warden會將單獨的會話數據放入不同的密鑰中。相同的cookie。 不確定這是不是你的意思,但我確認它在我當前使用ActiveAdmin的Rails項目中確實沒有為用戶與管理員使用不同的cookie。

不是一個明確的答案,但移動球!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM