moduleId || !$owner['active'])) { return null; } $adapter = Engine::adapter($type); if ($adapter === null || ($owner === null && strpos(get_class($adapter), 'Llamly\\Free\\') !== 0) || $this->userId < 1) { return null; } if ($objectId < 1) { return $adapter->fingerprint(null); } // A missing item answers like one the user cannot change, so the reader never tells whether an ID exists. $state = $adapter->capture($objectId); if ($state === null || !$adapter->canInverse($this->userId, $objectId, $state, $state)) { return null; } return $adapter->fingerprint($state); } }