2014-02-20 32 views
0

我需要在同一個對象上應用不同的記錄規則,根據記錄的狀態給予不同的訪問權限。例如,有三個階段:第一階段,第二階段,第三階段。在具有不同CRUD選項的同一對象上記錄規則?

在具有特定的訪問權限組第一階段的用戶可以這樣做:

讀取,寫入,創建了自己的紀錄。當他按下按鈕進入stage2時,他只能讀取該記錄(如果該記錄會返回到stage1--不是由該用戶執行,那麼他可以執行以前的操作)。在stage3上,用戶沒有看到任何記錄,也沒有看到任何其他記錄。

我試圖做這樣的事情:

第一條規則(適用於R,W,C):

[('user_id','=',user.id)]

這一個工程。 但是當我去其他階段時會遇到問題。 我試圖創建另一個rule2(應用r):

[('stage','=','stage2')] 但它不起作用,該用戶仍然可以做任何他可以在stage1中做的事情。

如果我作出這樣的規則(適用於R,W,C):

['|', ('user_id','=',user.id),('stage','=','stage1')]

然後可以訪問權限錯誤,你不能去下一個階段,因爲你沒有閱讀該階段的訪問權限。 這怎麼解決..

回答

0

看來這一個工程:

需要建立兩個規則(適用於R,W,C):

['&', ('user_id','=',user.id),('state','=','stage1')]

而第二條規則(適用r):

[('stage','=','stage2')]

相關問題