芝麻web文件管理V1.00
编辑当前文件:/home/prismawe/clients/_syntaxis.fr/wp-content/plugins/groups/lib/wp/class-groups-wordpress.php
user ) && isset( $groups_user->user->ID ) ) { $result = user_can( $groups_user->user->ID, $capability ); } } } return $result; } /** * Extend user capabilities with Groups user capabilities. * * @param array $allcaps the capabilities the user has * @param array $caps the requested capabilities * @param array $args capability context which can provide the requested capability as $args[0], the user ID as $args[1] and the related object's ID as $args[2] * @param WP_User $user the user object */ public static function user_has_cap( $allcaps, $caps, $args, $user ) { if ( is_array( $caps ) ) { $user_id = isset( $user->ID ) ? $user->ID : isset( $args[1] ) ? $args[1] : 0; $hash = md5( json_encode( $caps ) . json_encode( $args ) ); $cached = Groups_Cache::get( self::HAS_CAP . '_' . $user_id . '_' . $hash, self::CACHE_GROUP ); if ( $cached !== null ) { $allcaps = $cached->value; unset( $cached ); } else { $groups_user = new Groups_User( $user_id ); // we need to deactivate this because invoking $groups_user->can() // would trigger this same function and we would end up // in an infinite loop remove_filter( 'user_has_cap', array( __CLASS__, 'user_has_cap' ), 10 ); foreach( $caps as $cap ) { if ( $groups_user->can( $cap ) ) { $allcaps[$cap] = true; } } add_filter( 'user_has_cap', array( __CLASS__, 'user_has_cap' ), 10, 4 ); Groups_Cache::set( self::HAS_CAP . '_' . $user_id . '_' . $hash, $allcaps, self::CACHE_GROUP ); } } return $allcaps; } /** * Adds WordPress capabilities to Groups capabilities. * Must be called explicitly. * @see Groups_Controller::activate() */ public static function activate() { self::refresh_capabilities(); } /** * Refreshes Groups capabilities based on WordPress capabilities. * @return int number of capabilities added */ public static function refresh_capabilities() { global $wp_roles; $capabilities = array(); $count = 0; if ( !isset( $wp_roles ) ) { // just trigger initialization get_role( 'administrator' ); } $roles = $wp_roles->roles; if ( is_array( $roles ) ) { foreach ( $roles as $rolename => $atts ) { if ( isset( $atts['capabilities'] ) && is_array( $atts['capabilities'] ) ) { foreach ( $atts['capabilities'] as $capability => $value ) { if ( !in_array( $capability, $capabilities ) ) { $capabilities[] = $capability; } } } } } foreach ( $capabilities as $capability ) { if ( !Groups_Capability::read_by_capability( $capability ) ) { Groups_Capability::create( array( 'capability' => $capability ) ); $count++; } } return $count; } } Groups_WordPress::init();