REST API: On comment create, fallback to the user_agent
header value.
If a user-agent is not explicitly provided in the `author_user_agent` parameter, fallback to the `user_agent` value in the request header. Props dd32, jnylen0, rachelbaker. Fixes #38817. git-svn-id: https://develop.svn.wordpress.org/trunk@39287 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
faf751b039
commit
cceb9a6053
@ -1041,8 +1041,10 @@ class WP_REST_Comments_Controller extends WP_REST_Controller {
|
|||||||
$prepared_comment['comment_author_IP'] = $request['author_ip'];
|
$prepared_comment['comment_author_IP'] = $request['author_ip'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isset( $request['author_user_agent'] ) ) {
|
if ( ! empty( $request['author_user_agent'] ) ) {
|
||||||
$prepared_comment['comment_agent'] = $request['author_user_agent'];
|
$prepared_comment['comment_agent'] = $request['author_user_agent'];
|
||||||
|
} elseif ( $request->get_header( 'user_agent' ) ) {
|
||||||
|
$prepared_comment['comment_agent'] = $request->get_header( 'user_agent' );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isset( $request['type'] ) ) {
|
if ( isset( $request['type'] ) ) {
|
||||||
|
@ -1246,6 +1246,31 @@ class WP_Test_REST_Comments_Controller extends WP_Test_REST_Controller_Testcase
|
|||||||
$this->assertEquals( 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36', $data['author_user_agent'] );
|
$this->assertEquals( 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36', $data['author_user_agent'] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_create_comment_user_agent_header() {
|
||||||
|
wp_set_current_user( self::$admin_id );
|
||||||
|
|
||||||
|
$params = array(
|
||||||
|
'post' => self::$post_id,
|
||||||
|
'author_name' => 'Homer Jay Simpson',
|
||||||
|
'author_email' => 'chunkylover53@aol.com',
|
||||||
|
'author_url' => 'http://compuglobalhypermeganet.com',
|
||||||
|
'content' => 'Here\’s to alcohol: the cause of, and solution to, all of life\’s problems.',
|
||||||
|
);
|
||||||
|
|
||||||
|
$request = new WP_REST_Request( 'POST', '/wp/v2/comments' );
|
||||||
|
$request->add_header( 'content-type', 'application/json' );
|
||||||
|
$request->add_header( 'user_agent', 'Mozilla/4.0 (compatible; MSIE 5.5; AOL 4.0; Windows 95)' );
|
||||||
|
$request->set_body( wp_json_encode( $params ) );
|
||||||
|
|
||||||
|
$response = $this->server->dispatch( $request );
|
||||||
|
$this->assertEquals( 201, $response->get_status() );
|
||||||
|
|
||||||
|
$data = $response->get_data();
|
||||||
|
|
||||||
|
$new_comment = get_comment( $data['id'] );
|
||||||
|
$this->assertEquals( 'Mozilla/4.0 (compatible; MSIE 5.5; AOL 4.0; Windows 95)', $new_comment->comment_agent );
|
||||||
|
}
|
||||||
|
|
||||||
public function test_create_comment_invalid_author_IP() {
|
public function test_create_comment_invalid_author_IP() {
|
||||||
wp_set_current_user( self::$admin_id );
|
wp_set_current_user( self::$admin_id );
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user