| @@ -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 | } |