Changeset 14218 for sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-release-confirmation.php
- Timestamp:
- 11/28/2024 01:50:26 AM (8 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/api/routes/class-plugin-release-confirmation.php
r12813 r14218 60 60 ], 61 61 'permission_callback' => [ $this, 'permission_can_access_plugin' ], 62 ] ); 63 64 register_rest_route( 'plugins/v1', '/plugin/(?P<plugin_slug>[^/]+)/release-confirmation/(?P<plugin_tag>[^/]+)/undo-discard', [ 65 'methods' => \WP_REST_Server::READABLE, // TODO: This really should be a POST 66 'callback' => [ $this, 'undo_discard_release' ], 67 'args' => [ 68 'plugin_slug' => [ 69 'validate_callback' => [ $this, 'validate_plugin_slug_callback' ], 70 ], 71 'plugin_tag' => [ 72 'validate_callback' => [ $this, 'validate_plugin_tag_callback' ], 73 ] 74 ], 75 'permission_callback' => function( $request ) { 76 if ( current_user_can( 'plugin_review' ) ) { 77 return $this->permission_can_access_plugin( $request ); 78 } 79 80 return false; 81 }, 62 82 ] ); 63 83 … … 243 263 244 264 /** 265 * A simple endpoint to undo discarding a release. 266 */ 267 public function undo_discard_release( $request ) { 268 $plugin = Plugin_Directory::get_plugin_post( $request['plugin_slug'] ); 269 $tag = $request['plugin_tag']; 270 $release = Plugin_Directory::get_release( $plugin, $tag ); 271 $result = [ 272 'location' => wp_get_referer() ?: home_url( '/developers/releases/' ), 273 ]; 274 header( 'Location: ' . $result['location'] ); 275 276 if ( ! $release || empty( $release['discarded'] ) ) { 277 // Not found or not discarded. 278 $result['confirmed'] = false; 279 return $result; 280 } 281 282 // Log this action. 283 Tools::audit_log( 284 sprintf( 285 'Release %s discard reverted. Originally discarded by %s at %s', 286 $tag, 287 $release['discarded']['user'], 288 date( 'Y-m-d H:i:s', $release['discarded']['time'] ) 289 ), 290 $plugin 291 ); 292 293 // Remove the discard state. 294 unset( $release['discarded'] ); 295 $release['undo-discard'] = true; 296 297 Plugin_Directory::add_release( $plugin, $release ); 298 299 return $result; 300 } 301 302 /** 245 303 * Send a Access email 246 304 */
Note: See TracChangeset
for help on using the changeset viewer.