Changeset 12767
- Timestamp:
- 08/01/2023 09:56:57 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/photo-directory/inc/moderation.php
r12735 r12767 54 54 add_action( 'wporg_photos_moderation_email_sent', [ __CLASS__, 'sent_user_email' ] ); 55 55 add_filter( 'wporg_photos_pre_upload_form', [ __CLASS__, 'output_list_of_pending_submissions_for_user' ] ); 56 57 // Disable moderating own posts. 58 add_filter( 'user_has_cap', [ __CLASS__, 'disable_own_post_editing' ], 10, 4 ); 56 59 57 60 // Add column to users table with count of photos moderated. … … 191 194 $caps = array_merge( (array) $photos_moderator_role->capabilities, (array) $caps ); 192 195 } 196 } 197 198 return $caps; 199 } 200 201 /** 202 * Prevents moderators from being able to edit or moderate their own photos. 203 * 204 * @param array $caps Array of key/value pairs where keys represent a 205 * capability name and boolean values represent whether 206 * the user has that capability. 207 * @param string[] $cap Required primitive capabilities for requested capability. 208 * @param array $args { 209 * Arguments that accompany the requested capability check. 210 * 211 * @type string $0 Requested capability. 212 * @type int $1 Concerned user ID. 213 * @type mixed ...$2 Optional second and further parameters, typically object ID. 214 * } 215 * @param WP_User $user The user object. 216 * @return array 217 */ 218 public static function disable_own_post_editing( $caps, $cap, $args, $user ) { 219 // Bail if not a relevant capability. 220 if ( ! in_array( $cap[0], [ 'edit_photos', 'publish_photos' ] ) ) { 221 return $caps; 222 } 223 224 // Bail if no post context provided. 225 if ( ! isset( $args[2] ) ) { 226 return $caps; 227 } 228 229 // Bail if user isn't a moderator. 230 if ( ! user_can( $user->ID, 'photos_moderator' ) ) { 231 return $caps; 232 } 233 234 $post = get_post( $args[2] ); 235 236 // Bail if not a photo post. 237 if ( Registrations::get_post_type() !== $post->post_type ) { 238 return $caps; 239 } 240 241 // Disallow editing their own submission. 242 if ( isset( $post->post_author ) && $post->post_author == $user->ID ) { 243 $caps['edit_photos'] = false; 244 $caps['publish_photos'] = false; 193 245 } 194 246
Note: See TracChangeset
for help on using the changeset viewer.