2010-01-16 92 views
0

假設我有兩個內容類型「作業列表」和「作業應用程序」。作業應用程序具有一個字段(使用CCK模塊)來引用作業列表(必填字段)。假設工作申請有一個字段「狀態」,其值爲「新」,「接受」,「拒絕」。基於相關節點字段的Drupal(+ CCK)權限

我想設置權限,以便工作申請狀態只能由其對應的工作清單的創建者設置。如果有一個插件可以做到這一點很好。我也想要一個定製插件可以實現這個的一般方向。

(我在下面章場景。O'Reilly的「使用Drupal的」 3)

+0

drupal.org上有人推薦我看看http://drupal.org/project/nodeaccess_nodereference – 2010-01-16 23:12:49

回答

2

我不知道是否有這個模塊,但是這可以通過一些自定義代碼很容易做到雖然。

  1. 使用hook_form_alter將您自己的驗證處理程序添加到應用程序內容類型的node_edit表單中。
  2. 檢查值是否已更改
  3. 設置錯誤是用戶不是創建者或具有管理內容權限。
  4. 你完成了。
1

googletorp的方向是正確的軌道,但你將不得不照顧一些更多的權限也。

  • 刪除應用程序內容類型的編輯自己的權限。
  • 此外,您可能不希望一個作業列表的作者列表編輯應用程序以響應其他一些工作列表。這是很難做任何內置的權限。因此,請檢查form_alter鉤子,以確定當前用戶與正在編輯的應用程序連接到的作業列表的作者是否相同。
+0

您實際上並不需要花時間在權限上。只要有人嘗試編輯所選字段,您就可以隨時拋出一個表單錯誤。這將有效地阻止用戶編輯,因爲表單不會驗證。但是,使用管理內容的用戶可以編輯該字段,這可能是一個好主意,因爲這是該權限的用途。 – googletorp 2010-01-16 22:24:23

+0

謝謝。我需要玩這個有點Drupal是全新的 – 2010-01-16 23:11:54