Changeset 14057
- Timestamp:
- 10/22/2024 11:04:18 PM (9 months ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-core/bp-core-avatars.php
r13927 r14057 1219 1219 */ 1220 1220 function bp_avatar_handle_capture( $data = '', $item_id = 0, $retval = 'boolean' ) { 1221 $return = $retval; 1221 $return = $retval; 1222 $item_id = (int) $item_id; 1222 1223 1223 1224 if ( empty( $data ) || empty( $item_id ) ) { … … 1391 1392 } 1392 1393 1394 // Sanitize object id. 1395 $item_id = (int) $avatar_data['item_id']; 1396 1393 1397 // Capability check. 1394 1398 if ( ! bp_attachments_current_user_can( 'edit_avatar', $avatar_data ) ) { … … 1404 1408 } 1405 1409 1406 $cropped_webcam_avatar = bp_avatar_handle_capture( $webcam_avatar, $ avatar_data['item_id'], 'array' );1410 $cropped_webcam_avatar = bp_avatar_handle_capture( $webcam_avatar, $item_id, 'array' ); 1407 1411 1408 1412 if ( ! $cropped_webcam_avatar ) { … … 1419 1423 array( 1420 1424 'object' => $avatar_data['object'], 1421 'item_id' => $ avatar_data['item_id'],1425 'item_id' => $item_id, 1422 1426 'html' => false, 1423 1427 'type' => 'full', … … 1426 1430 ), 1427 1431 'feedback_code' => 2, 1428 'item_id' => $ avatar_data['item_id'],1432 'item_id' => $item_id, 1429 1433 ); 1430 1434 1431 1435 /** This action is documented in wp-includes/deprecated.php */ 1432 do_action_deprecated( 'xprofile_avatar_uploaded', array( (int) $avatar_data['item_id'], $avatar_data['type'], $avatar_data ), '6.0.0', 'bp_members_avatar_uploaded' );1436 do_action_deprecated( 'xprofile_avatar_uploaded', array( $item_id, $avatar_data['type'], $avatar_data ), '6.0.0', 'bp_members_avatar_uploaded' ); 1433 1437 1434 1438 /** … … 1443 1447 * @param array $cropped_webcam_avatar Array containing the full, thumb avatar and the timestamp. 1444 1448 */ 1445 do_action( 'bp_members_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'], $avatar_data, $cropped_webcam_avatar );1449 do_action( 'bp_members_avatar_uploaded', $item_id, $avatar_data['type'], $avatar_data, $cropped_webcam_avatar ); 1446 1450 1447 1451 wp_send_json_success( $return ); … … 1464 1468 // Crop args. 1465 1469 $r = array( 1466 'item_id' => $ avatar_data['item_id'],1470 'item_id' => $item_id, 1467 1471 'object' => $avatar_data['object'], 1468 1472 'avatar_dir' => $avatar_dir, … … 1483 1487 array( 1484 1488 'object' => $avatar_data['object'], 1485 'item_id' => $ avatar_data['item_id'],1489 'item_id' => $item_id, 1486 1490 'html' => false, 1487 1491 'type' => 'full', … … 1490 1494 ), 1491 1495 'feedback_code' => 2, 1492 'item_id' => $ avatar_data['item_id'],1496 'item_id' => $item_id, 1493 1497 ); 1494 1498 1495 1499 if ( 'user' === $avatar_data['object'] ) { 1496 1500 /** This action is documented in wp-includes/deprecated.php */ 1497 do_action_deprecated( 'xprofile_avatar_uploaded', array( (int) $avatar_data['item_id'], $avatar_data['type'], $r ), '6.0.0', 'bp_members_avatar_uploaded' );1501 do_action_deprecated( 'xprofile_avatar_uploaded', array( $item_id, $avatar_data['type'], $r ), '6.0.0', 'bp_members_avatar_uploaded' ); 1498 1502 1499 1503 /** This action is documented in bp-core/bp-core-avatars.php */ 1500 do_action( 'bp_members_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'], $r, $cropped_avatar );1504 do_action( 'bp_members_avatar_uploaded', $item_id, $avatar_data['type'], $r, $cropped_avatar ); 1501 1505 } elseif ( 'group' === $avatar_data['object'] ) { 1502 1506 /** This action is documented in bp-groups/bp-groups-screens.php */ 1503 do_action( 'groups_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'], $r, $cropped_avatar );1507 do_action( 'groups_avatar_uploaded', $item_id, $avatar_data['type'], $r, $cropped_avatar ); 1504 1508 } 1505 1509 -
trunk/src/readme.txt
r14020 r14057 8 8 Requires at least: 6.4 9 9 Tested up to: 6.6 10 Stable tag: 14. 1.010 Stable tag: 14.2.1 11 11 12 12 Get together safely, in your own way, in WordPress. … … 131 131 == Upgrade Notice == 132 132 133 = 14.2.1 = 134 See: https://codex.buddypress.org/releases/version-14-2-1/ 135 133 136 = 14.1.0 = 134 137 See: https://codex.buddypress.org/releases/version-14-1-0/ … … 203 206 == Changelog == 204 207 208 = 14.2.1 = 209 See: https://codex.buddypress.org/releases/version-14-2-1/ 210 205 211 = 14.1.0 = 206 212 See: https://codex.buddypress.org/releases/version-14-1-0/ -
trunk/tests/phpunit/testcases/core/avatars.php
r13980 r14057 8 8 protected $allowed_image_types = array( 'jpg', 'jpeg', 'jpe', 'gif', 'png', 'webp' ); 9 9 protected $allowed_image_mimes = array( 'image/jpeg', 'image/jpeg', 'image/jpeg', 'image/gif', 'image/png', 'image/webp' ); 10 protected $capture = array(); 10 11 11 12 private function clean_existing_avatars( $type = 'user' ) { … … 420 421 $this->assertFalse( is_dir( $avatar_dir1 ) ); 421 422 } 423 424 public function set_capture( $return, $data ) { 425 $this->capture = $data; 426 return false; 427 } 428 429 /** 430 * @group bp_avatar_handle_capture 431 */ 432 public function test_bp_avatar_handle_capture() { 433 $u = self::factory()->user->create(); 434 $data = 'hello world'; 435 436 add_filter( 'bp_core_pre_avatar_handle_crop', array( $this, 'set_capture' ), 10, 2 ); 437 438 bp_avatar_handle_capture( $data, $u . '/../../../../../../foobar', 'array' ); 439 440 remove_filter( 'bp_core_pre_avatar_handle_crop', array( $this, 'set_capture' ), 10, 2 ); 441 442 $expected = '/avatars/' . $u . '/webcam-capture-' . $u . '.png'; 443 444 $this->assertEquals( $expected, $this->capture['original_file'] ); 445 } 422 446 }
Note: See TracChangeset
for help on using the changeset viewer.