public function addRules(EventInterface $event) {
        $accessControl = $event->getAccessControl();

        if (!($accessControl instanceof MutableAdapterInterface)) {
            throw new ResourceException('Access control adapter is immutable', 405);
        }

        $request = $event->getRequest();
        $publicKey = $request->getRoute()->get('publickey');
        $data = json_decode($request->getContent(), true);

        if (!is_array($data)) {
            throw new InvalidArgumentException('No access rule data provided', 400);
        }

        // If a single rule was provided, wrap it in an array
        if (!count($data) || !isset($data[0])) {
            $data = [$data];
        }

        $accessControl = $event->getAccessControl();

        // Perform rule validation
        foreach ($data as $rule) {
            $this->validateRule($event, $rule);
        }

        // Insert the rules
        foreach ($data as $rule) {
            $accessControl->addAccessRule($publicKey, $rule);
        }
    }