PluginProbe
Code Snippets / trunk
Code Snippets vtrunk
4.0.0-beta.2 3.10.2 3.10.1 3.10.0 3.10.0-beta.2 3.10.0-beta.1 4.0.0-beta.1 3.9.6 trunk 2.10.0 2.10.1 2.12.0 2.12.1 2.13.0 2.13.1 2.13.2 2.13.3 2.14.0 2.14.1 2.14.2 2.14.3 2.14.4 2.14.5 2.14.6 3.0.0 All 65 releases
← All changes | php/REST_API/REST_Collection_Controller.php +14 -6 4.0.0-beta.1 → trunk View file →
@@ -3,9 +3,8 @@
3 3 namespace Code_Snippets\REST_API;
4 4
5 5 use WP_REST_Controller;
6 6 use WP_REST_Request;
7 -use function Code_Snippets\code_snippets;
8 7 use const Code_Snippets\REST_API_NAMESPACE;
9 8
10 9 /**
11 10 * Base class for REST API controllers that manage collections of items.
@@ -54,8 +53,17 @@
54 53 add_action( 'rest_api_init', [ $this, 'register_routes' ] );
55 54 }
56 55
57 56 /**
57 + * Default permission callback for this controller's routes.
58 + *
59 + * @param WP_REST_Request $request Full data about the request.
60 + *
61 + * @return bool
62 + */
63 + abstract public function permission_callback( WP_REST_Request $request ): bool;
64 +
65 + /**
58 66 * Check if a given request has access to get items.
59 67 *
60 68 * @param WP_REST_Request $request Full data about the request.
61 69 *
@@ -61,9 +69,9 @@
61 69 *
62 70 * @return bool
63 71 */
64 72 public function get_items_permissions_check( $request ): bool {
65 - return code_snippets()->current_user_can();
73 + return $this->permission_callback( $request );
66 74 }
67 75
68 76 /**
69 77 * Check if a given request has access to get a specific item.
@@ -72,9 +80,9 @@
72 80 *
73 81 * @return bool
74 82 */
75 83 public function get_item_permissions_check( $request ): bool {
76 - return $this->get_items_permissions_check( $request );
84 + return $this->permission_callback( $request );
77 85 }
78 86
79 87 /**
80 88 * Check if a given request has access to create items.
@@ -83,9 +91,9 @@
83 91 *
84 92 * @return bool
85 93 */
86 94 public function create_item_permissions_check( $request ): bool {
87 - return code_snippets()->current_user_can();
95 + return $this->permission_callback( $request );
88 96 }
89 97
90 98 /**
91 99 * Check if a given request has access to update a specific item.
@@ -94,9 +102,9 @@
94 102 *
95 103 * @return bool
96 104 */
97 105 public function update_item_permissions_check( $request ): bool {
98 - return $this->create_item_permissions_check( $request );
106 + return $this->permission_callback( $request );
99 107 }
100 108
101 109 /**
102 110 * Check if a given request has access to delete a specific item.
@@ -105,7 +113,7 @@
105 113 *
106 114 * @return bool
107 115 */
108 116 public function delete_item_permissions_check( $request ): bool {
109 - return $this->create_item_permissions_check( $request );
117 + return $this->permission_callback( $request );
110 118 }
111 119 }