簡體   English   中英

僅允許特定用戶訪問模型

[英]only allow specific users to access model

所以首先我的模型結構:

公司有很多用戶,用戶屬於公司

model1屬於公司,公司有很多model1

model2屬於公司,公司有很多model2

對於model1的索引操作,我只是做類似

@model1 = current_user.company.model1s # i use devise for auth

在我的控制器中,我首先

before_filter :authenticate_user!

問題是,show動作(當然)顯示了每個登錄用戶的每個模型記錄。

將model1和model2記錄僅限制為屬於model1和model2所屬公司的用戶的最佳選擇是什么?

謝謝!

在一般情況下,請使用插件或gem(例如(無特定順序) CanCanClearance此處的其他一個)。 對於它的價值,我過去已經成功使用過acl9

這些解決方案中的大多數都在控制器/視圖級別實現授權控制,並以此方式控制對模型的特定實例(數據庫中的AKA行)的訪問。

另請參閱此問題 ,該問題從最佳角度討論了該主題。

最后,如果要自己滾動,最簡單的解決方案是在查詢中將model1model2companyuser 根據您的描述, model1model2具有company_id列,而company具有user_id列。 根據您在模型中建立關聯的方式,可以執行以下操作:

Model1.joins(:company => :user).where(:users => {:id => 1})

或(假設使用適當的身份驗證框架):

Model1.joins(:company => :user).where(:users => {:id => current_user.id})

暫無
暫無

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

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