graphqlite icon indicating copy to clipboard operation
graphqlite copied to clipboard

@Security with External type declaration - error

Open ameoba32 opened this issue 2 years ago • 4 comments

I am getting next error when using @Security with External type declaration.

Version: 5.0.3

"array_combine(): Argument #1 ($keys) and argument #2 ($values) must have the same number of elements" vendor/thecodingmachine/graphqlite/src/Middlewares/SecurityFieldMiddleware.php:132

I've tried to debug the issue myself, it has something related with first parameter, which is always there. But no luck. If I comment out array_combine in SecurityFieldMiddleware.php:132 it seems to work.

Consider next php code example:

namespace App\Types;

use TheCodingMachine\GraphQLite\Annotations\Type;
use TheCodingMachine\GraphQLite\Annotations\Field;
use TheCodingMachine\GraphQLite\Annotations\Security;
use App\Entities\Product;

/**
 * @Type(class=Product::class)
 */
class ProductType
{
    /**
     * @Field
     * @Security("this.canAccess()")
     */
    public function getId(Product $product): string
    {
        return $product->getId();
    }
    
    public function canAccess(): bool
    {
        return true;
    }
}

thanks.

ameoba32 avatar Jan 20 '23 17:01 ameoba32