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'];
|
||||
}
|
||||
|
||||
if ( isset( $request['author_user_agent'] ) ) {
|
||||
if ( ! empty( $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'] ) ) {
|
||||
|
@ -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'] );
|
||||
}
|
||||
|
||||
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() {
|
||||
wp_set_current_user( self::$admin_id );
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user