File "WeMailMiddleware.php"
Full Path: /home/hmstorb/www/wp-content+12/plugins/wemail/includes/Rest/Middleware/WeMailMiddleware.php
File size: 1.25 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace WeDevs\WeMail\Rest\Middleware;
use WP_User_Query;
class WeMailMiddleware {
protected $permission;
/**
* WeMail constructor.
* @param $permission
*/
public function __construct( $permission ) {
$this->permission = $permission;
}
/**
* @param $request
* @return bool
*/
public function handle( $request ) {
$api_key = $request->get_header( 'X-WeMail-Key' );
if ( ! empty( $api_key ) ) {
$query = new WP_User_Query(
[
'fields' => 'ID',
'meta_key' => 'wemail_api_key',
'meta_value' => $api_key,
]
);
if ( $query->get_total() ) {
$results = $query->get_results();
$user_id = array_pop( $results );
wp_set_current_user( $user_id );
return wemail()->user->can( 'manage_settings' );
}
}
return false;
}
/**
* @param string $permission
* @param \WP_REST_Request $request
* @return bool
*/
public static function check( $permission, $request ) {
return ( new self( $permission ) )->handle( $request );
}
}