Changeset 14218
- Timestamp:
- 11/28/2024 01:50:26 AM (18 months ago)
- Location:
- sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory
- Files:
-
- 3 edited
-
api/routes/class-plugin-release-confirmation.php (modified) (2 diffs)
-
class-plugin-directory.php (modified) (1 diff)
-
class-template.php (modified) (1 diff)
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 */ -
sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php
r14003 r14218 1868 1868 $release[ $k ] = $v; 1869 1869 } 1870 } 1871 1872 /* 1873 * Allow a discarded release to be reset. 1874 * See API\Routes\Plugin_Release_Confirmation::undo_discard_release() 1875 */ 1876 if ( isset( $data['undo-discard'] ) && ! empty( $release['discarded'] ) && empty( $data['discarded'] ) ) { 1877 unset( $release['discarded'] ); 1870 1878 } 1871 1879 -
sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php
r14154 r14218 988 988 } elseif ( 'discard' === $what ) { 989 989 $endpoint = 'plugin/%s/release-confirmation/%s/discard'; 990 } elseif ( 'undo-discard' === $what ) { 991 $endpoint = 'plugin/%s/release-confirmation/%s/undo-discard'; 990 992 } else { 991 993 return '';
Note: See TracChangeset
for help on using the changeset viewer.