drupal_execute를 사용하여 Drupal 노드를 만들려고하는데 잘 동작합니다. 유일한 문제는 새 노드를 로그인 한 사용자가 아닌 다른 사용자로 추가 할 수 없다는 것입니다.drupal_execute를 사용하여 다른 사용자로 새로운 drupal 6 노드를 만들 수 없습니다.
$ form_state [ 'values'] [ 'name']처럼 보이지 않습니다.
이것도 가능합니까?
도움이 될 것입니다.
drupal_execute를 사용하여 Drupal 노드를 만들려고하는데 잘 동작합니다. 유일한 문제는 새 노드를 로그인 한 사용자가 아닌 다른 사용자로 추가 할 수 없다는 것입니다.drupal_execute를 사용하여 다른 사용자로 새로운 drupal 6 노드를 만들 수 없습니다.
$ form_state [ 'values'] [ 'name']처럼 보이지 않습니다.
이것도 가능합니까?
도움이 될 것입니다.
https://drupal.org/node/178506#comment-726479 참조 - 처음에는 Drupal 5.7을 언급하지만 Drupal 6에도 적용됩니다. 그것의 요지는, 당신은 (safely) impersonate another user해야합니다. 이렇게하면 사용자가 액세스 할 수있는 기능에 액세스 할 수 있습니다.
사칭 사용자는 다음에 수행해야 할 작업은 당신이 가지고있는 형태의 배열 drupal_execute()
을 실행하는 것입니다 간단
global $user;
$original_user = $user;
$old_state = session_save_session();
session_save_session(FALSE);
$user = user_load(array('uid' => 1));
// Take your action here where you pretend to be the user with UID = 1 (typically the admin user on a site)
// If your code fails, it's not a problem because the session will not be saved
$user = $original_user;
session_save_session($old_state);
// From here on the $user is back to normal so it's OK for the session to be saved
같습니다.
kekkis 당신은 생명의 은인입니다! 이전에 전역 $ 사용자를 덮어 쓰려고했는데 제대로 작동했습니다. 문제는 새로운 글로벌 사용자가 로그인 상태로 유지되었으며 솔루션을 사용하여 세션을 복원했음을 의미합니다. 감사합니다. –
drupal 노드를 만들려면이 다른 사용자에게 필요한 권한을 부여 했습니까? – aaron
drupal 양식에서 노드를 만들 수있는 다른 사용자 이름으로 테스트했습니다. 하지만 내 질문은 여전히 drupal_execute를 사용하여 다른 사용자로 노드를 만들 수도 있습니다. –