/** * Check permission level for an account. * * @return array List of permission issues. */ protected function check_permissions_level() { $permission_issues = array(); $video_id = false; // Start enumerating permissions that we'll need to ensure the account is good. $cms_api = new BC_CMS_API(); // Create a video $video_creation = $cms_api->video_add(__('Brightcove WordPress plugin test video', 'brightcove')); if (!$video_creation || is_wp_error($video_creation)) { $permission_issues[] = esc_html__('create videos', 'brightcove'); } else { $video_id = $video_creation['id']; // Update a video $renamed_title = __('Brightcove WordPress plugin test video renamed', 'brightcove'); $video_renamed = $cms_api->video_update($video_id, array('name' => $renamed_title)); if (!$video_renamed || $renamed_title !== $video_renamed['name']) { $permission_issues[] = esc_html__('modify videos', 'brightcove'); } } $playlist = $cms_api->playlist_add(__('Brightcove WordPress plugin test playlist', 'brightcove')); if (!$playlist || !is_array($playlist) || !isset($playlist['id'])) { $permission_issues[] = esc_html__('create playlists', 'brightcove'); } else { // For use through other Playlist test API calls. $playlist_id = $playlist['id']; $update_data = array('video_ids' => array($video_id), 'type' => 'EXPLICIT'); $updated_playlist = $cms_api->playlist_update($playlist_id, $update_data); if (!$updated_playlist || !is_array($updated_playlist) || !isset($updated_playlist['id'])) { $permission_issues[] = esc_html__('modify playlists', 'brightcove'); } // Delete a playlist if (!$cms_api->playlist_delete($playlist_id)) { $permission_issues[] = esc_html__('delete playlists', 'brightcove'); } } // Delete a video if (!$cms_api->video_delete($video_id)) { $permission_issues[] = esc_html__('delete videos', 'brightcove'); } $player_api = new BC_Player_Management_API($this); // Fetch all players $players = $player_api->player_list(); if (is_wp_error($players) || !is_array($players['items'])) { $permission_issues[] = esc_html__('fetch players', 'brightcove'); } return $permission_issues; }
public static function update_video_meta() { if (!wp_verify_nonce($_POST['nonce'], '_bc_ajax_search_nonce')) { return; } if (!array_key_exists('update-metadata', $_POST)) { return; } $video_id = BC_Utility::sanitize_id($_POST['video-id']); $api = new BC_CMS_API(); $video = $api->video_get($video_id); $updated_data = array(); foreach ($_POST as $key => $postdata) { echo esc_attr($key); $updated_data = BC_Utility::sanitize_payload_item($postdata); } if (array_key_exists('video-related-url', $_POST)) { $video_related_url = esc_url_raw($_POST['video-related-url']); if (strlen($video_related_url)) { $updated_data['link'] = array_merge($video['link'], array('url' => $video_related_url)); } } if (array_key_exists('video-related-text', $_POST)) { $updated_data['link'] = array_merge($video['link'], array('text' => sanitize_text_field($_POST['video-related-text']))); } if (array_key_exists('video-tags', $_POST)) { $tags = explode(',', $_POST['video-tags']); $tags = array_filter($tags, 'trim'); $tags = array_filter($tags, 'sanitize_text_field'); $updated_data['tags'] = array_merge($video['tags'], $tags); } $api->video_update($video_id, $updated_data); }