Changeset 2562 for sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-wporg-plugin-directory-tools.php
- Timestamp:
- 02/24/2016 08:02:18 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-wporg-plugin-directory-tools.php
r2555 r2562 54 54 55 55 $tonesque = new Tonesque( $file_location ); 56 if ( $tonesque ) { 57 return $tonesque->color(); 56 return $tonesque->color(); 57 } 58 59 /** 60 * Retrieve a list of users who have commit to a specific plugin. 61 * 62 * @param string $plugin_slug The plugin slug. 63 * @return array The list of user_login's which have commit. 64 */ 65 public static function get_plugin_committers( $plugin_slug ) { 66 global $wpdb; 67 68 return $wpdb->get_col( $wpdb->prepare( 'SELECT user FROM `' . PLUGINS_TABLE_PREFIX . 'svn_access' . '` WHERE path = %s', "/{$plugin_slug}" ) ); 69 } 70 71 /** 72 * Grant a user RW access to a plugin. 73 * 74 * @param string $plugin_slug The plugin slug. 75 * @param string|WP_User $user The user to grant access to. 76 */ 77 public static function grant_plugin_committer( $plugin_slug, $user ) { 78 global $wpdb, $wporg_plugin_directory; 79 if ( ! $user instanceof WP_User ) { 80 $user = new WP_User( $user ); 58 81 } 59 82 60 return false; 83 if ( ! $user->exists() || ! $wporg_plugin_directory->get_plugin_post( $plugin_slug ) ) { 84 return false; 85 } 86 87 $existing_committers = wp_list_pluck( self::get_plugin_committers( $plugin_slug ), 'user_login' ); 88 if ( in_array( $user->user_login, $existing_committers, true ) ) { 89 // User already has write access 90 return true; 91 } 92 93 return (bool)$wpdb->insert( 94 PLUGINS_TABLE_PREFIX . 'svn_access', 95 array( 96 'path' => "/{$plugin_slug}", 97 'user' => $user->user_login, 98 'access' => 'rw' 99 ) 100 ); 61 101 } 102 103 /** 104 * Revoke a users RW access to a plugin. 105 * 106 * @param string $plugin_slug The plugin slug. 107 * @param string|WP_User $user The user to revoke access of. 108 */ 109 public static function revoke_plugin_committer( $plugin_slug, $user ) { 110 global $wpdb, $wporg_plugin_directory; 111 if ( ! $user instanceof WP_User ) { 112 $user = new WP_User( $user ); 113 } 114 115 if ( ! $user->exists() || ! $wporg_plugin_directory->get_plugin_post( $plugin_slug ) ) { 116 return false; 117 } 118 119 return $wpdb->delete( 120 PLUGINS_TABLE_PREFIX . 'svn_access', 121 array( 122 'path' => "/{$plugin_slug}", 123 'user' => $user->user_login 124 ) 125 ); 126 } 127 128 62 129 }
Note: See TracChangeset
for help on using the changeset viewer.