$form_fields['groups_access'] = array('label' => __('Access restrictions', GROUPS_PLUGIN_DOMAIN), 'input' => 'html', 'html' => $output);
        }
        return $form_fields;
    }
    /**
     * Save capabilities for attachment post type (Media).
     * When multiple attachments are saved, this is called once for each.
     * @param array $post post data
     * @param array $attachment attachment field data
     * @return array
     */
    public static function attachment_fields_to_save($post, $attachment)
    {
        $post_types_option = Groups_Options::get_option(Groups_Post_Access::POST_TYPES, array());
        if (!isset($post_types_option['attachment']['add_meta_box']) || $post_types_option['attachment']['add_meta_box']) {
            if (current_user_can('edit_attachment')) {
                Groups_Post_Access::delete($post['ID'], null);
                if (!empty($attachment[self::CAPABILITY])) {
                    foreach ($attachment[self::CAPABILITY] as $capability_id) {
                        if ($capability = Groups_Capability::read($capability_id)) {
                            Groups_Post_Access::create(array('post_id' => $post['ID'], 'capability' => $capability->capability));
                        }
                    }
                }
            }
        }
        return $post;
    }
}
Groups_Access_Meta_Boxes::init();
 /**
  * Handles access restriction capability modifications from bulk-editing.
  * This is called once for each post that is included in bulk-editing.
  * The fields that are handled here are rendered through the
  * bulk_edit_custom_box() method in this class.
  * 
  * @param int $post_id
  */
 public static function save_post($post_id)
 {
     if (isset($_REQUEST['capabilities-action'])) {
         if (wp_verify_nonce($_REQUEST['bulk-post-capability-nonce'], 'post-capability')) {
             $field = Groups_Post_Access::POSTMETA_PREFIX . 'bulk-' . Groups_Post_Access::READ_POST_CAPABILITY;
             if (!empty($_REQUEST[$field]) && is_array($_REQUEST[$field])) {
                 if (Groups_Access_Meta_Boxes::user_can_restrict()) {
                     $valid_read_caps = Groups_Access_Meta_Boxes::get_valid_read_caps_for_user();
                     foreach ($_REQUEST[$field] as $capability_name) {
                         if ($capability = Groups_Capability::read_by_capability($capability_name)) {
                             if (in_array($capability->capability, $valid_read_caps)) {
                                 switch ($_REQUEST['capabilities-action']) {
                                     case 'add-capability':
                                         Groups_Post_Access::create(array('post_id' => $post_id, 'capability' => $capability->capability));
                                         break;
                                     case 'remove-capability':
                                         Groups_Post_Access::delete($post_id, $capability->capability);
                                         break;
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }