Drupal 7 Drupal 7:由允许的用户编辑时不保存用户信息
我目前正在为一个艺术家组织开发一个新网站。允许管理员角色创建帐户和其他一些节点内容,创建的帐户具有相同的默认角色artisan。管理员也是工匠。工匠可以创建和编辑自己的内容。管理员和artisan都应该能够为admin编辑所有用户配置文件,仅为artisan编辑自己的用户配置文件。事实上,管理员可以创建一个用户,但除了user1之外,没有人可以在编辑后保存用户配置文件,但它对其他节点非常有效。权限已被扫描多次。我到处找都没找到,我错过了什么?我做了很少的更改,我编写的唯一相关代码如下:Drupal 7 Drupal 7:由允许的用户编辑时不保存用户信息,drupal-7,Drupal 7,我目前正在为一个艺术家组织开发一个新网站。允许管理员角色创建帐户和其他一些节点内容,创建的帐户具有相同的默认角色artisan。管理员也是工匠。工匠可以创建和编辑自己的内容。管理员和artisan都应该能够为admin编辑所有用户配置文件,仅为artisan编辑自己的用户配置文件。事实上,管理员可以创建一个用户,但除了user1之外,没有人可以在编辑后保存用户配置文件,但它对其他节点非常有效。权限已被扫描多次。我到处找都没找到,我错过了什么?我做了很少的更改,我编写的唯一相关代码如下: <
<?php
function canardesign_system_form_alter(&$form, &$form_state, $form_id){
global $user;
switch ($form_id){
case 'oeuvre_node_form':
$form['actions']['submit']['#submit'][] = 'canardesign_system_oeuvre_redirect';
if (in_array('artisan', array_values($user->roles))){
$form['field_auteur']['#type']= 'hidden';
$form['field_auteur']['und']['#default_value']= $user->uid;
}
break;
case 'user_profile_form':
if (in_array('artisan', array_values($user->roles))){
$form['actions']['submit']['#submit'][] = 'canardesign_system_user_profile_form_submit';
}
break;
}
}
function canardesign_system_oeuvre_redirect($form, &$form_state) {
$type=$form['#node']->type;
if(isset($type))
{
$node = node_load($form_state['nid']);
$uid=field_get_items('node', $node, 'field_auteur')[0]['target_id'];
$form_state['redirect'] = 'oeuvres/'.$uid;
}
}
function canardesign_system_user_profile_form_submit($form, &$form_state) {
drupal_goto('artisans');
}
/*default role when administrator (who is artisan as well) creates an account*/
function canardesign_system_user_insert(&$edit, $account, $category) {
global $user;
if (in_array('artisan', array_values($user->roles))){
$account->role = 'artisan';
}
}
?>
谢谢你的帮助 我不确定这是否是问题的原因,但在提交钩子中调用drupal_goto肯定是有问题的。它本质上缩短了表单的处理 这可能是由于阻止执行其他必要的代码而导致问题 相反,您应该将$form_state的重定向键设置为希望用户最终到达的目标 表单处理完成后,Drupal会将用户发送到那里
function canardesign_system_user_profile_form_submit($form, &$form_state) {
$form_state['redirect'] = 'artisans';
}
你说得对,一旦我删除了drupal,就转到了按预期保存的配置文件。然而,没有发生重定向。因此,我最终创建了一个新规则,它带来了添加微调条件和反应的好处,而无需任何编码。非常感谢。