团队管理
Drupal Team management
我是 drupal 的新手(但不是编程人员)
我正在开发一个具有 3 个用户级别的网站。
- 一位能够更改任何用户内容的大师。
- 能够更改其内容和注册为其雇员的用户的内容的媒体人。
- 一个只能改变自己内容的普通人。
中级用户不能更改在另一个中级用户下注册的基本用户的内容。
研究 google 我找到了 Organic Group 模块。然而,这个模块似乎根据内容类型对用户进行分组。这不是我想要的。它更像是有领导者和成员的团队,团队会发布相同的内容类型。
谁能帮帮我?
用户层级
您可以使用用户字段 (/admin/config/people/accounts/fields) 来创建用户层次结构。你可以:
- 创建对经理的引用
- 或为团队创建许多引用
版本安全
您可以使用 hook_form_alter()
。在您的模块中实现此挂钩时,您将能够检查用户是否可以编辑内容。
这是一个示例代码:
function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
global $user;
if ($form_id == 'TYPE_node_form') {
// or if (strpos($form_id, '_node_form') !== false) {
$node = $form_state['build_info']['args'][0] ;
if (! check_if_user_can_edit($user, $node)) {
drupal_set_message(t('Restricted'), 'error');
drupal_goto('<front>');
}
}
}
你 check_if_user_can_edit()
函数,应该检查 $user
字段(团队或其他),并检查 $node
的所有者($node->uid
),以及return TRUE
如果用户能够编辑,或者 FALSE
二者之一。
您还可以实施 hook_node_presave()
以确保无法使用相同的 check_if_user_can_edit()
功能以其他方式编辑任何节点。
我是 drupal 的新手(但不是编程人员) 我正在开发一个具有 3 个用户级别的网站。
- 一位能够更改任何用户内容的大师。
- 能够更改其内容和注册为其雇员的用户的内容的媒体人。
- 一个只能改变自己内容的普通人。
中级用户不能更改在另一个中级用户下注册的基本用户的内容。
研究 google 我找到了 Organic Group 模块。然而,这个模块似乎根据内容类型对用户进行分组。这不是我想要的。它更像是有领导者和成员的团队,团队会发布相同的内容类型。
谁能帮帮我?
用户层级
您可以使用用户字段 (/admin/config/people/accounts/fields) 来创建用户层次结构。你可以:
- 创建对经理的引用
- 或为团队创建许多引用
版本安全
您可以使用 hook_form_alter()
。在您的模块中实现此挂钩时,您将能够检查用户是否可以编辑内容。
这是一个示例代码:
function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
global $user;
if ($form_id == 'TYPE_node_form') {
// or if (strpos($form_id, '_node_form') !== false) {
$node = $form_state['build_info']['args'][0] ;
if (! check_if_user_can_edit($user, $node)) {
drupal_set_message(t('Restricted'), 'error');
drupal_goto('<front>');
}
}
}
你 check_if_user_can_edit()
函数,应该检查 $user
字段(团队或其他),并检查 $node
的所有者($node->uid
),以及return TRUE
如果用户能够编辑,或者 FALSE
二者之一。
您还可以实施 hook_node_presave()
以确保无法使用相同的 check_if_user_can_edit()
功能以其他方式编辑任何节点。