Automattic\WooCommerce\Internal\MCP\Transport

WooCommerceRestTransport::check_ability_permissionpublicWC 1.0

Check REST ability permissions for HTTP method.

Method of the class: WooCommerceRestTransport{}

No Hooks.

Returns

true|false. Whether permission is granted.

Usage

$WooCommerceRestTransport = new WooCommerceRestTransport();
$WooCommerceRestTransport->check_ability_permission( $allowed, $method, $controller );
$allowed(true|false) (required)
Whether the operation is allowed.
Default: false
$method(string) (required)
HTTP method (GET, POST, PUT, DELETE).
$controller(object) (required)
REST controller instance.

WooCommerceRestTransport::check_ability_permission() code WC 10.3.3

public function check_ability_permission( $allowed, $method, $controller ) {
	// Only check permissions if we have MCP context.
	$permissions = self::get_current_user_permissions();
	if ( null === $permissions ) {
		return $allowed;
	}

	// Check permissions based on method.
	switch ( $method ) {
		case 'HEAD':
		case 'GET':
			return ( 'read' === $permissions || 'read_write' === $permissions );
		case 'POST':
		case 'PUT':
		case 'PATCH':
		case 'DELETE':
			return ( 'write' === $permissions || 'read_write' === $permissions );
		case 'OPTIONS':
			return true;
		default:
			return false;
	}
}