PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 2.9.6
Jetpack – WP Security, Backup, Speed, & Growth v2.9.6
15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / class.jetpack-bbpress-json-api-compat.php
jetpack Last commit date
3rd-party 10 years ago _inc 10 years ago languages 10 years ago modules 5 years ago views 10 years ago .svnignore 10 years ago class.jetpack-bbpress-json-api-compat.php 10 years ago class.jetpack-cli.php 10 years ago class.jetpack-client-server.php 10 years ago class.jetpack-client.php 10 years ago class.jetpack-data.php 10 years ago class.jetpack-debugger.php 10 years ago class.jetpack-error.php 10 years ago class.jetpack-heartbeat.php 10 years ago class.jetpack-ixr-client.php 10 years ago class.jetpack-network-sites-list-table.php 10 years ago class.jetpack-network.php 10 years ago class.jetpack-options.php 10 years ago class.jetpack-post-images.php 10 years ago class.jetpack-signature.php 10 years ago class.jetpack-sync.php 10 years ago class.jetpack-user-agent.php 10 years ago class.jetpack-xmlrpc-server.php 10 years ago class.jetpack.php 10 years ago class.json-api-endpoints.php 3 years ago class.json-api.php 10 years ago class.media-extractor.php 10 years ago class.media-summary.php 10 years ago class.photon.php 10 years ago composer.json 10 years ago functions.compat.php 10 years ago functions.gallery.php 10 years ago functions.opengraph.php 10 years ago functions.photon.php 10 years ago functions.twitter-cards.php 10 years ago jetpack.php 3 years ago locales.php 10 years ago readme.txt 3 years ago require-lib.php 10 years ago uninstall.php 10 years ago
class.jetpack-bbpress-json-api-compat.php
109 lines
1 <?php
2 /**
3 * bbPress & Jetpack REST API Compatibility
4 * Enables bbPress to work with the Jetpack REST API
5 */
6 class bbPress_Jetpack_REST_API {
7
8 private static $instance;
9
10 public static function instance() {
11 if ( isset( self::$instance ) )
12 return self::$instance;
13
14 self::$instance = new self;
15 }
16
17 private function __construct() {
18 add_filter( 'rest_api_allowed_post_types', array( $this, 'allow_bbpress_post_types' ) );
19 add_filter( 'bbp_map_meta_caps', array( $this, 'adjust_meta_caps' ), 10, 4 );
20 add_filter( 'rest_api_allowed_public_metadata', array( $this, 'allow_bbpress_public_metadata' ) );
21 }
22
23 function allow_bbpress_post_types( $allowed_post_types ) {
24
25 // only run for REST API requests
26 if ( ! defined( 'REST_API_REQUEST' ) || ! REST_API_REQUEST )
27 return $allowed_post_types;
28
29 $allowed_post_types[] = 'forum';
30 $allowed_post_types[] = 'topic';
31 $allowed_post_types[] = 'reply';
32 return $allowed_post_types;
33 }
34
35 function allow_bbpress_public_metadata( $allowed_meta_keys ) {
36
37 // only run for REST API requests
38 if ( ! defined( 'REST_API_REQUEST' ) || ! REST_API_REQUEST )
39 return $allowed_meta_keys;
40
41 $allowed_meta_keys[] = '_bbp_forum_id';
42 $allowed_meta_keys[] = '_bbp_topic_id';
43 $allowed_meta_keys[] = '_bbp_status';
44 $allowed_meta_keys[] = '_bbp_forum_type';
45 $allowed_meta_keys[] = '_bbp_forum_subforum_count';
46 $allowed_meta_keys[] = '_bbp_reply_count';
47 $allowed_meta_keys[] = '_bbp_total_reply_count';
48 $allowed_meta_keys[] = '_bbp_topic_count';
49 $allowed_meta_keys[] = '_bbp_total_topic_count';
50 $allowed_meta_keys[] = '_bbp_topic_count_hidden';
51 $allowed_meta_keys[] = '_bbp_last_topic_id';
52 $allowed_meta_keys[] = '_bbp_last_reply_id';
53 $allowed_meta_keys[] = '_bbp_last_active_time';
54 $allowed_meta_keys[] = '_bbp_last_active_id';
55 $allowed_meta_keys[] = '_bbp_sticky_topics';
56 $allowed_meta_keys[] = '_bbp_voice_count';
57 $allowed_meta_keys[] = '_bbp_reply_count_hidden';
58 $allowed_meta_keys[] = '_bbp_anonymous_reply_count';
59
60 return $allowed_meta_keys;
61 }
62
63 function adjust_meta_caps( $caps, $cap, $user_id, $args ) {
64
65 // only run for REST API requests
66 if ( ! defined( 'REST_API_REQUEST' ) || ! REST_API_REQUEST )
67 return $caps;
68
69 // only modify caps for meta caps and for bbPress meta keys
70 if ( ! in_array( $cap, array( 'edit_post_meta', 'delete_post_meta', 'add_post_meta' ) ) || empty( $args[1] ) || false === strpos( $args[1], '_bbp_' ) )
71 return $caps;
72
73 // $args[0] could be a post ID or a post_type string
74 if ( is_int( $args[0] ) ) {
75 $_post = get_post( $args[0] );
76 if ( ! empty( $_post ) ) {
77 $post_type = get_post_type_object( $_post->post_type );
78 }
79 } elseif ( is_string( $args[0] ) ) {
80 $post_type = get_post_type_object( $args[0] );
81 }
82
83 // no post type found, bail
84 if ( empty( $post_type ) )
85 return $caps;
86
87 // reset the needed caps
88 $caps = array();
89
90 // Add 'do_not_allow' cap if user is spam or deleted
91 if ( bbp_is_user_inactive( $user_id ) ) {
92 $caps[] = 'do_not_allow';
93
94 // Moderators can always edit meta
95 } elseif ( user_can( $user_id, 'moderate' ) ) {
96 $caps[] = 'moderate';
97
98 // Unknown so map to edit_posts
99 } else {
100 $caps[] = $post_type->cap->edit_posts;
101 }
102
103 return $caps;
104 }
105
106 }
107
108 bbPress_Jetpack_REST_API::instance();
109