我正在尝试修改devel generate模块,以防止没有生成此内容类型权限的用户生成内容。
问题是我对drupal相当新,所以我不熟悉它的钩子。有人能给我一些提示如何处理这个问题。
http://ftp.drupal.org/files/projects/devel-6.x-1.20.tar.gz
答案 0 :(得分: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)
中或通过引入可选参数来实现所有这些。
答案 1 :(得分:1)
我认为您尝试做的事与Devel生成的工作方式之间存在一些脱节。要使用Devel生成需要administer nodes
权限:这意味着任何可以使用Devel生成的人都可以管理所有内容类型。
如果您尝试在没有administer nodes
权限的情况下让Devel生成工作,请不要。它是一个用于创建虚拟数据的开发模块:它永远不应该作为非特权用户运行。
你想要完成的是什么?