| @@ -124,8 +124,25 @@ | ||
| 124 | 124 | * @param $request WP_REST_Request for getting all route request in time. |
| 125 | 125 | * |
| 126 | 126 | * @return WP_Error|boolean |
| 127 | 127 | */ |
| 128 | + public function _permission_check( WP_REST_Request $request ) { | |
| 129 | + $this->request = $request; | |
| 130 | + $this->api_key = $this->utils('options')->get( 'api_key' ); | |
| 131 | + if(!current_user_can('delete_posts')){ | |
| 132 | + return false; | |
| 133 | + } | |
| 134 | + | |
| 135 | + add_filter('wp_redirect', '__return_false', 999); | |
| 136 | + | |
| 137 | + return $this->permission_check( $request ); | |
| 138 | + } | |
| 139 | + | |
| 140 | + /** | |
| 141 | + * @param $request WP_REST_Request for getting all route request in time. | |
| 142 | + * | |
| 143 | + * @return WP_Error|boolean | |
| 144 | + */ | |
| 128 | 145 | public function permission_check( WP_REST_Request $request ) { |
| 129 | 146 | $this->request = $request; |
| 130 | 147 | $this->api_key = $this->utils('options')->get( 'api_key' ); |
| 131 | 148 | |
| @@ -145,9 +162,9 @@ | ||
| 145 | 162 | * @return WP_Error |
| 146 | 163 | */ |
| 147 | 164 | protected function permission_error( $message, $endpoint = '') { |
| 148 | 165 | if( empty( $message ) ) { |
| 149 | - $message = __( 'Sorry, you need to login/re-login again.', 'templately' ); | |
| 166 | + $message = __( 'Your session has expired. Please log in again.', 'templately' ); | |
| 150 | 167 | } |
| 151 | 168 | |
| 152 | 169 | $_additional_data = [ |
| 153 | 170 | 'status' => rest_authorization_required_code(), |
| @@ -185,9 +202,9 @@ | ||
| 185 | 202 | $endpoint, |
| 186 | 203 | [ |
| 187 | 204 | 'methods' => $methods, |
| 188 | 205 | 'callback' => $callback, |
| 189 | - 'permission_callback' => [ $this, 'permission_check' ], | |
| 206 | + 'permission_callback' => [ $this, '_permission_check' ], | |
| 190 | 207 | 'args' => $args, |
| 191 | 208 | ] |
| 192 | 209 | ); |
| 193 | 210 | } |
| @@ -212,8 +229,24 @@ | ||
| 212 | 229 | * @return WP_REST_Response |
| 213 | 230 | */ |
| 214 | 231 | public function success( $data ) { |
| 215 | 232 | return new WP_REST_Response( $data, 200 ); |
| 233 | + } | |
| 234 | + | |
| 235 | + /** | |
| 236 | + * Enhanced success response wrapper that automatically adds success flag and wraps data | |
| 237 | + * | |
| 238 | + * @param $data mixed The data to be wrapped in the response | |
| 239 | + * | |
| 240 | + * @return WP_REST_Response | |
| 241 | + */ | |
| 242 | + public function successWithData( $data ) { | |
| 243 | + $enhanced_response = [ | |
| 244 | + 'success' => true, | |
| 245 | + 'data' => $data | |
| 246 | + ]; | |
| 247 | + | |
| 248 | + return $this->success( $enhanced_response ); | |
| 216 | 249 | } |
| 217 | 250 | /** |
| 218 | 251 | * @param $error_code string |
| 219 | 252 | * @param $error_message string|array |