addPasswordCheckers[$identifier] = $callback; return $this; } /** * Remove a password checker. * * @param string $identifier: The unique identifier of the password checker to remove. * @return self */ public function removePasswordChecker(string $identifier): self { $this->removePasswordCheckers[] = $identifier; return $this; } public function extend(Container $container, Extension $extension = null) { $container->extend('flarum.user.password_checkers', function ($passwordCheckers) use ($container) { foreach ($this->removePasswordCheckers as $identifier) { if (array_key_exists($identifier, $passwordCheckers)) { unset($passwordCheckers[$identifier]); } } foreach ($this->addPasswordCheckers as $identifier => $checker) { $passwordCheckers[$identifier] = ContainerUtil::wrapCallback($checker, $container); } return $passwordCheckers; }); } }