modelClass = $modelClass; } /** * Add a model privacy checker. * * @param callable|string $callback * * The callback can be a closure or invokable class, and should accept: * - \Flarum\Database\AbstractModel $instance: An instance of the model. * * It should return `true` if the model instance should be made private. * * @return self */ public function checker($callback) { $this->checkers[] = $callback; return $this; } public function extend(Container $container, Extension $extension = null) { if (! class_exists($this->modelClass)) { return; } $container->extend('flarum.database.model_private_checkers', function ($originalCheckers) use ($container) { foreach ($this->checkers as $checker) { $originalCheckers[$this->modelClass][] = ContainerUtil::wrapCallback($checker, $container); } return $originalCheckers; }); } }