Got it:
add_filter("attachment_fields_to_edit", "my_image_attachment_fields_to_edit", null, 2);
function my_image_attachment_fields_to_edit($form_fields, $post) {
$form_fields["OwnersHeading"]["tr"] = "
<tr>
<td colspan='2' style="font-size:16px;padding-left:15px">Tag Users:</td>
</tr>";
// get list of users
$wp_user_query = new WP_User_Query( array( 'orderby' => 'display_name' ) );
$authors = $wp_user_query->get_results();
if (!empty($authors)) {
foreach ($authors as $author) {
$belongs_to_value = (bool)get_post_meta( $post->ID, "_owner_$author->ID", true );
// create the field
$form_fields["owner_$author->ID"] = array(
'input' => 'html',
'html' => '
<input type="checkbox" id="attachments-' . $post->ID . '-owner'.$author->ID.'" name="attachments[' . $post->ID . '][owner_'.$author->ID.']" value="1"' . ( $belongs_to_value ? ' checked="checked"' : '' ) . ' />
<label for="attachments-' . $post->ID . '-owner'.$author->ID.'">'.$author_info->first_name.' '.$author_info->last_name.'</label>',
);
}
}
return $form_fields;
}
add_filter("attachment_fields_to_save", "my_image_attachment_fields_to_save", null, 2);
function my_image_attachment_fields_to_save($post, $attachment) {
// get list of users
$wp_user_query = new WP_User_Query( array( 'orderby' => 'display_name' ) );
$authors = $wp_user_query->get_results();
if (!empty($authors)) {
foreach ($authors as $author) {
update_post_meta($post['ID'], '_owner_'.$author->ID.'', $attachment['owner_'.$author->ID.'']);
}
}
return $post;
}