2014-10-11 85 views
0

我使用Drupal 7,寧願這樣做,但如果我需要使用Drupal 6,我會。我有一個Drupal 7網站,允許「顧問」創建經過身份驗證的用戶。我是網站上的管理員,所以我看到並可以做所有事情。 「顧問」所能做的就是創建和編輯經過身份驗證的用戶。有沒有辦法讓視圖顯示特定顧問在顧問登錄時創建的用戶?Drupal如何讓某些管理員只能看到他們創建的用戶

如果你不明白我在說什麼,讓我這樣說吧。我是網站的管理員,所以我可以做所有事情。我創建了一個稱爲顧問的用戶角色。還有一個用戶身份驗證的角色。顧問可以創建經過身份驗證的用戶。所以我有顧問1.顧問1創建了10個用戶。我也有顧問2.顧問2創建了3個用戶。我想要一個頁面(很可能是用視圖構建的 - 我以前在其他站點上使用過視圖,所以我很熟悉它們) - 我想要一個Advisor 1登錄後可以前往的頁面,將顯示他們創建的所有10個用戶。顧問1不會看到顧問2創建的用戶。

這可能嗎?任何幫助,將不勝感激。先謝謝你。

+0

這當然需要使用自定義權限來構建自定義功能。沒有提供開箱即用的功能或模塊。 – 2014-10-11 05:56:52

回答

0

我已經實現了類似的東西,我可以給你一些指導。 首先,drupal 7不存儲用戶創建者的信息。 因此,爲了追蹤這個,你需要附加一個自定義字段給用戶來保存這些信息。

在這種情況下,你就必須確保每一個創作者可以插入只有自己在這一領域,而不是其他任何人或你就必須找到一種自動化的方式來填補它英寸 我建議你使用field permission module設置這個字段的權限(用戶可能甚至不應該有視圖,創建者不應該能夠改變它等等)和computed field module用於在創建時自動填充字段(例如creator_field),例如用創建者的uid創建。

最後,在創建視圖時,您可以使用creator_field上的登錄用戶添加上下文篩選。

你還應該看看有機族羣。我沒有使用它,但可能有幫助

希望它有幫助。

更新

在計算字段設置添加

global $user; 
    $entity_field[0]['value'] = $user -> uid; 

到計算出的代碼(PHP)並存儲該值,如「數據庫存儲設置」整數。然後在您的視圖中,您應該使用creator_field的上下文過濾器添加用戶視圖。在上下文篩選設置中,您必須在「篩選值不在URL中」部分設置「提供默認值」 - >「來自登錄用戶的用戶ID」。

+0

謝謝,有道理。我會試試看,並讓你知道它是怎麼回事。 – 2014-10-12 02:41:07

+0

好的geoandri(或任何人),我需要一些幫助。我已經按照你所說的添加了計算字段,但是我將在我的新字段「creator_field」中將「計算代碼(PHP)」字段和「顯示代碼(PHP)」字段放入什麼位置。看到這個屏幕截圖,你會默認Drupal將它放在那裏。 http://michaeljbaran.com/field-setting.jpg – 2014-10-14 02:00:51

+0

嘗試全局$ user; $ entity_field [0] ['value'] = $ user - > uid;在「計算代碼」中設置「數據庫存儲設置」爲整數。我會把它添加到我的帖子 – geoandri 2014-10-14 05:26:20

0

在Drupal 7中,通過在用戶配置文件中添加一個指向用戶創建者的字段(使用Entity Reference模塊),可以相對簡單地完成此操作。 Profile2可能會提供一個快捷方式使此字段在配置文件中可用,但如果這是您需要添加到配置文件的唯一自定義設置,那麼在自定義模塊中執行此操作將會更加簡潔。

可以將視圖(Views module)配置爲輸出當前登錄用戶的用戶列表作爲創建者。

您還需要爲user_access添加類似的邏輯以允許/限制配置文件編輯(如果當前用戶是配置文件中引用的用戶)。如果您計劃擁有不同的管理級別,權限掛鉤也可能很有用。

Tokens模塊應該通過將當前用戶插入字段來爲新用戶插入此值。或者你可以在用戶保存之前做到這一點。它會有點像這樣:

function mymodule_user_presave(&$edit, $account, $category) { 
    if ($account->is_new) { 
    global $user; 
    $created_by = $user->uid; 
    $edit['created_by'] = $created_by; 
    } 
} 

祝你好運。

+0

從我下面的評論頂部到geoandri,我嘗試了你建議的baaj並且只有一件事,那麼我會如何讓這個新領域自動填充創建者ID?我嘗試了幾種不同的方法,沒有任何成功。我不在乎我如何完成這項工作,只要我能完成就可以:) – 2014-10-14 04:40:59

+0

更新了我的回答,以解決上述問題 – baaj 2014-10-14 11:25:38

相關問題