簡體   English   中英

管理員 DRY 禁用 Grails 4 多租戶

[英]DRY disable of Grails 4 multi-tenancy for admins

我在 Grails 4 中使用基於鑒別器的多租戶,從使用 hibernate-filter 插件的 Grails 2 升級。 在 Grails 2 中,我可以在 Grails 過濾器中為管理員角色禁用休眠過濾器 - 從而不需要在整個應用程序中進行“if (admin)”檢查。 我可以以某種方式禁用 Grails 4 中的多租戶並保持干燥嗎?

根據 Jeffs 的評論,我重新表述了我的問題以供將來參考:

任何時候請求可以被驗證為來自具有管理員角色的客戶端時,是否可以為整個請求完全禁用多租戶?

我想我終於找到了解決方案。 調試 Grails 我在 AbstractHibernateDatastore.java 中發現了這個:

Serializable currentId = Tenants.currentId(this);
if(ConnectionSource.DEFAULT.equals(currentId)) {
  disableMultiTenancyFilter();
}

當我想禁用多租戶時(在我的情況下,當前用戶是管理員),這讓我想到了簡單地返回ConnectionSource.DEFAULT而不是租戶解析器的租戶 ID。

一個簡單直接的解決方案,適用於 Grails 4.0.12。 我會看看我是否可以將它正式記錄下來,因為我的管理用例對於多租戶應用程序應該並不少見。

暫無
暫無

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

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