2010-07-31 105 views
1

我試圖修改devel generate模塊,以防止它生成內容的用戶沒有權限生成此內容類型。修改開發模塊

問題是我對drupal相當新,所以我不熟悉它的鉤子。有人可以給我一些提示如何解決這個問題。

http://ftp.drupal.org/files/projects/devel-6.x-1.20.tar.gz

回答

1

我覺得有你想要做什麼和如何傑韋利產生的作品之間有一些脫節。要使用Devel generate,需要administer nodes權限:這意味着任何可以使用Devel generate的人都可以管理所有內容類型。

如果您試圖讓Devel生成在沒有administer nodes權限的情況下工作,請不要。這是一個創建虛擬數據的開發模塊:它永遠不應該作爲非特權用戶運行。

你試圖完成什麼?

+1

Devel生成內容並將作者附加到該內容。隨機。通常它會附加作者,根據權限,根本不會創建這樣的內容。 Devel應該認識到這些權限,並且僅將作者附加到實際可以創建此類內容的生成內容。 – berkes 2010-07-31 11:30:27

+0

@berkes的評論是正確的。這是我的觀點。 – cyclo 2010-07-31 20:11:27

+0

這是一個開發模塊:它並不意味着在權限很重要的網站上使用,例如生產站點。 – 2010-07-31 20:56:27

2

function devel_generate_content_add_node(&$results) { 

有一個$users = $results['users'];其中包含 「錯誤的用戶」。 你可以破解那裏的用戶,或者確保他們不是首先添加的。

這發生在

function devel_get_users() { 
    $users = array(); 
    $result = db_query_range("SELECT uid FROM {users}", 0, 50); 
    while($user = db_fetch_object($result)){ 
    $users[] = $user->uid; 
    } 
    return $users; 
} 

您將需要修改的方法,使它只返回用戶均可進行一定的權限。您可以在while循環中省略不正確的用戶;使用node access

但是,這個devel_get_users例程也被稱爲其他事情,所以你可能想要通過新方法devel_get_permissioned_users($perm)或通過引入可選參數來實現所有這些。