set node author via hook_form_alter & custom submit function? (D7)

Greetings 🙂

I have a node type that’s used for registrations, and I have a few different workflows using hook_menu and drupal_get_form and it seems all very cool what I can cobble together this way. But I’m totally stumped on this one aspect:

I want to set the node’s author to be the user associated with the redhen contact entity that’s referenced in one of the nodes fields. I can get the user id and print it in drupal_set_message(), but I can’t figure out how to use it for setting the node’s author.

function mymodule_form_program_registration_node_form_alter(&$form, $form_id, $form_state) {
  $path = current_path();
  if ($path == 'admin/register-existing-adult/program') {
  // stuff
    $form['actions']['submit']['#submit'][] = 'roots_reg_register_existing_adult_submit';
  }
}
function mymodule_register_existing_adult_submit(&$form, &$form_state) {
  $registrant_id = $form['#node']->field_registrant['und'][0]['target_id'];
  $contact_wrapper = entity_metadata_wrapper('redhen_contact', $registrant_id);
  $registrant_name = $contact_wrapper->label();
  $registrant_email = $contact_wrapper->email->value();
  $registrant_user = $contact_wrapper->user->value();
  $registrant_url = $contact_wrapper->user->value();
  // test that these variables do indeed get the proper data...
  drupal_set_message(t("Hey this works! " . "ID=" . $registrant_id . " " . $registrant_name . " " . $registrant_email . "
" . $registrant_user->uid)); // that works // but none of the following work.. //$form['additional_settings']['group']['#groups']['additional_settings'][0]['name']['#value'] = $registrant_user->uid; //$form['additional_settings']['group']['#groups']['additional_settings'][0]['name']['#default_value'] = $registrant_user->uid; //$form['author']['name']['#default_value'] = $registrant_user->uid; //$form['author']['name']['#value'] = $registrant_user->uid; //$form_state['complete form']['uid']['#value'] = $registrant_user->uid; //$form_state['complete form']['uid']['#value'] = $registrant_email; //$form_state['values']['uid'] = $registrant_user->uid; //$form_state['build_info']['args'][0]->uid = $registrant_user->uid; //$form['uid'] = $registrant_user->uid; //$form['oh']['god']['why']['dont']['any']['of']['these'] = work? $form['#node']->uid = $registrant_user->uid; }

Am I missing the needle inside the haystack form array?

Am I going about this the wrong way? Should I be using some other hook?

Help please? Pretty please? And thank you!

Drupal version: 


Source: https://www.drupal.org/taxonomy/term/4/feed