From 897e778800e161d052e304090323e339ad5fa419 Mon Sep 17 00:00:00 2001 From: Alexander Skvortsov <38059171+askvortsov1@users.noreply.github.com> Date: Fri, 19 Mar 2021 14:13:50 -0400 Subject: [PATCH] Remove deprecated code from beta 16 (#2705) --- framework/core/composer.json | 3 +- framework/core/js/src/forum/compat.js | 5 -- .../Api/Controller/CreateTokenController.php | 9 +-- .../src/Database/DatabaseServiceProvider.php | 15 +---- .../core/src/Discussion/Event/Searching.php | 39 ------------ .../Discussion/Search/DiscussionSearcher.php | 13 ---- .../src/Event/AbstractConfigureGambits.php | 31 ---------- .../src/Event/ConfigureDiscussionGambits.php | 17 ------ .../core/src/Event/ConfigurePostsQuery.php | 38 ------------ .../core/src/Event/ConfigureUserGambits.php | 17 ------ .../core/src/Event/GetModelIsPrivate.php | 33 ----------- framework/core/src/Extend/ApiSerializer.php | 22 ------- framework/core/src/Extend/Compat.php | 37 ------------ framework/core/src/Extension/Extension.php | 8 --- .../core/src/Filter/AbstractFilterer.php | 8 --- .../core/src/Filter/FilterServiceProvider.php | 19 +++--- .../Foundation/AbstractServiceProvider.php | 2 +- framework/core/src/Http/AccessToken.php | 12 +--- framework/core/src/Http/Rememberer.php | 24 +------- .../core/src/Http/SessionAuthenticator.php | 14 +---- .../core/src/Locale/LocaleServiceProvider.php | 2 - framework/core/src/Locale/Translator.php | 3 +- framework/core/src/Post/Filter/UserFilter.php | 21 ------- framework/core/src/Query/QueryCriteria.php | 3 +- framework/core/src/Query/QueryResults.php | 3 +- .../core/src/Search/AbstractRegexGambit.php | 10 +--- framework/core/src/Search/AbstractSearch.php | 45 -------------- .../core/src/Search/AbstractSearcher.php | 11 +--- framework/core/src/Search/GambitManager.php | 16 ----- framework/core/src/Search/SearchCriteria.php | 17 ------ framework/core/src/Search/SearchResults.php | 17 ------ .../core/src/Search/SearchServiceProvider.php | 29 --------- framework/core/src/Search/SearchState.php | 29 ++++++++- framework/core/src/TranslatorInterface.php | 20 ------- .../core/src/User/Event/CheckingPassword.php | 38 ------------ framework/core/src/User/Event/Searching.php | 39 ------------ .../core/src/User/Search/UserSearcher.php | 13 ---- framework/core/src/User/User.php | 5 +- .../tests/integration/api/posts/ListTest.php | 59 ------------------- .../extenders/ModelPrivateTest.php | 2 +- 40 files changed, 59 insertions(+), 689 deletions(-) delete mode 100644 framework/core/src/Discussion/Event/Searching.php delete mode 100644 framework/core/src/Event/AbstractConfigureGambits.php delete mode 100644 framework/core/src/Event/ConfigureDiscussionGambits.php delete mode 100644 framework/core/src/Event/ConfigurePostsQuery.php delete mode 100644 framework/core/src/Event/ConfigureUserGambits.php delete mode 100644 framework/core/src/Event/GetModelIsPrivate.php delete mode 100644 framework/core/src/Extend/Compat.php delete mode 100644 framework/core/src/Post/Filter/UserFilter.php delete mode 100644 framework/core/src/Search/AbstractSearch.php delete mode 100644 framework/core/src/Search/SearchCriteria.php delete mode 100644 framework/core/src/Search/SearchResults.php delete mode 100644 framework/core/src/TranslatorInterface.php delete mode 100644 framework/core/src/User/Event/CheckingPassword.php delete mode 100644 framework/core/src/User/Event/Searching.php diff --git a/framework/core/composer.json b/framework/core/composer.json index 89bdaf4a2..799cbe2ba 100644 --- a/framework/core/composer.json +++ b/framework/core/composer.json @@ -74,8 +74,7 @@ "Flarum\\": "src/" }, "files": [ - "src/helpers.php", - "src/TranslatorInterface.php" + "src/helpers.php" ] }, "autoload-dev": { diff --git a/framework/core/js/src/forum/compat.js b/framework/core/js/src/forum/compat.js index 368d12970..4d6a0f5db 100644 --- a/framework/core/js/src/forum/compat.js +++ b/framework/core/js/src/forum/compat.js @@ -36,8 +36,6 @@ import HeaderSecondary from './components/HeaderSecondary'; import ComposerButton from './components/ComposerButton'; import DiscussionList from './components/DiscussionList'; import ReplyPlaceholder from './components/ReplyPlaceholder'; -import TextEditor from '../common/components/TextEditor'; // @deprecated beta 16, remove beta 17. Moved to common. -import TextEditorButton from '../common/components/TextEditorButton'; // @deprecated beta 16, remove beta 17. Moved to common. import AvatarEditor from './components/AvatarEditor'; import Post from './components/Post'; import SettingsPage from './components/SettingsPage'; @@ -87,7 +85,6 @@ export default Object.assign(compat, { 'utils/UserControls': UserControls, 'utils/Pane': Pane, 'utils/BasicEditorDriver': BasicEditorDriver, - 'utils/SuperTextarea': BasicEditorDriver, // @deprecated beta 16, remove beta 17 'states/ComposerState': ComposerState, 'states/DiscussionListState': DiscussionListState, 'states/GlobalSearchState': GlobalSearchState, @@ -116,8 +113,6 @@ export default Object.assign(compat, { 'components/ComposerButton': ComposerButton, 'components/DiscussionList': DiscussionList, 'components/ReplyPlaceholder': ReplyPlaceholder, - 'components/TextEditor': TextEditor, // @deprecated beta 16, remove beta 17. Moved to common. - 'components/TextEditorButton': TextEditorButton, // @deprecated beta 16, remove beta 17. Moved to common. 'components/AvatarEditor': AvatarEditor, 'components/Post': Post, 'components/SettingsPage': SettingsPage, diff --git a/framework/core/src/Api/Controller/CreateTokenController.php b/framework/core/src/Api/Controller/CreateTokenController.php index 8490cb90d..197bdc76d 100644 --- a/framework/core/src/Api/Controller/CreateTokenController.php +++ b/framework/core/src/Api/Controller/CreateTokenController.php @@ -59,7 +59,6 @@ class CreateTokenController implements RequestHandlerInterface $identification = Arr::get($body, 'identification'); $password = Arr::get($body, 'password'); - $lifetime = Arr::get($body, 'lifetime', 3600); $user = $this->users->findByIdentification($identification); @@ -67,13 +66,7 @@ class CreateTokenController implements RequestHandlerInterface throw new NotAuthenticatedException; } - // Use of lifetime attribute is deprecated in beta 16, removed in beta 17 - // For backward compatibility with custom integrations, longer lifetimes will be interpreted as remember tokens - if ($lifetime > 3600 || Arr::get($body, 'remember')) { - if ($lifetime > 3600) { - trigger_error('Use of parameter lifetime is deprecated in beta 16, will be removed in beta 17. Use remember parameter to start a remember session', E_USER_DEPRECATED); - } - + if (Arr::get($body, 'remember')) { $token = RememberAccessToken::generate($user->id); } else { $token = SessionAccessToken::generate($user->id); diff --git a/framework/core/src/Database/DatabaseServiceProvider.php b/framework/core/src/Database/DatabaseServiceProvider.php index c3143de5b..47ead30a7 100644 --- a/framework/core/src/Database/DatabaseServiceProvider.php +++ b/framework/core/src/Database/DatabaseServiceProvider.php @@ -9,10 +9,7 @@ namespace Flarum\Database; -use Flarum\Discussion\Discussion; -use Flarum\Event\GetModelIsPrivate; use Flarum\Foundation\AbstractServiceProvider; -use Flarum\Post\CommentPost; use Illuminate\Database\Capsule\Manager; use Illuminate\Database\ConnectionInterface; use Illuminate\Database\ConnectionResolverInterface; @@ -63,12 +60,7 @@ class DatabaseServiceProvider extends AbstractServiceProvider }); $this->container->singleton('flarum.database.model_private_checkers', function () { - // Discussion and CommentPost are explicitly listed here to trigger the deprecated - // event-based model privacy system. They should be removed in beta 17. - return [ - Discussion::class => [], - CommentPost::class => [] - ]; + return []; }); } @@ -91,11 +83,6 @@ class DatabaseServiceProvider extends AbstractServiceProvider } $instance->is_private = false; - - // @deprecated BC layer, remove beta 17 - $event = new GetModelIsPrivate($instance); - - $instance->is_private = $this->container->make('events')->until($event) === true; }); } } diff --git a/framework/core/src/Discussion/Event/Searching.php b/framework/core/src/Discussion/Event/Searching.php deleted file mode 100644 index 61f0b8916..000000000 --- a/framework/core/src/Discussion/Event/Searching.php +++ /dev/null @@ -1,39 +0,0 @@ -search = $search; - $this->criteria = $criteria; - } -} diff --git a/framework/core/src/Discussion/Search/DiscussionSearcher.php b/framework/core/src/Discussion/Search/DiscussionSearcher.php index 7809936a8..afdd40724 100644 --- a/framework/core/src/Discussion/Search/DiscussionSearcher.php +++ b/framework/core/src/Discussion/Search/DiscussionSearcher.php @@ -10,11 +10,8 @@ namespace Flarum\Discussion\Search; use Flarum\Discussion\DiscussionRepository; -use Flarum\Discussion\Event\Searching; -use Flarum\Query\QueryCriteria; use Flarum\Search\AbstractSearcher; use Flarum\Search\GambitManager; -use Flarum\Search\SearchState; use Flarum\User\User; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Database\Eloquent\Builder; @@ -49,14 +46,4 @@ class DiscussionSearcher extends AbstractSearcher { return $this->discussions->query()->select('discussions.*')->whereVisibleTo($actor); } - - /** - * @deprecated along with the Searching event, remove in Beta 17. - */ - protected function mutateSearch(SearchState $search, QueryCriteria $criteria) - { - parent::mutateSearch($search, $criteria); - - $this->events->dispatch(new Searching($search, $criteria)); - } } diff --git a/framework/core/src/Event/AbstractConfigureGambits.php b/framework/core/src/Event/AbstractConfigureGambits.php deleted file mode 100644 index 62b75d8ce..000000000 --- a/framework/core/src/Event/AbstractConfigureGambits.php +++ /dev/null @@ -1,31 +0,0 @@ -gambits = $gambits; - } -} diff --git a/framework/core/src/Event/ConfigureDiscussionGambits.php b/framework/core/src/Event/ConfigureDiscussionGambits.php deleted file mode 100644 index ba47e15c7..000000000 --- a/framework/core/src/Event/ConfigureDiscussionGambits.php +++ /dev/null @@ -1,17 +0,0 @@ -query = $query; - $this->filter = $filter; - } -} diff --git a/framework/core/src/Event/ConfigureUserGambits.php b/framework/core/src/Event/ConfigureUserGambits.php deleted file mode 100644 index 80e14ed48..000000000 --- a/framework/core/src/Event/ConfigureUserGambits.php +++ /dev/null @@ -1,17 +0,0 @@ -model = $model; - } -} diff --git a/framework/core/src/Extend/ApiSerializer.php b/framework/core/src/Extend/ApiSerializer.php index 81ce63ec1..95bf4e030 100644 --- a/framework/core/src/Extend/ApiSerializer.php +++ b/framework/core/src/Extend/ApiSerializer.php @@ -74,28 +74,6 @@ class ApiSerializer implements ExtenderInterface return $this; } - /** - * Add to or modify the attributes array of this serializer. - * - * @param callable|string $callback - * - * The callback can be a closure or an invokable class, and should accept: - * - $serializer: An instance of this serializer. - * - $model: An instance of the model being serialized. - * - $attributes: An array of existing attributes. - * - * The callable should return: - * - An array of additional attributes to merge with the existing array. - * Or a modified $attributes array. - * - * @deprecated in beta 16, removed in beta 17 - * @return self - */ - public function mutate($callback) - { - return $this->attributes($callback); - } - /** * Establish a simple hasOne relationship from this serializer to another serializer. * This represents a one-to-one relationship. diff --git a/framework/core/src/Extend/Compat.php b/framework/core/src/Extend/Compat.php deleted file mode 100644 index e99b483e7..000000000 --- a/framework/core/src/Extend/Compat.php +++ /dev/null @@ -1,37 +0,0 @@ -callback = $callback; - } - - public function extend(Container $container, Extension $extension = null) - { - $container->call($this->callback); - } -} diff --git a/framework/core/src/Extension/Extension.php b/framework/core/src/Extension/Extension.php index bafb440f1..e35651878 100644 --- a/framework/core/src/Extension/Extension.php +++ b/framework/core/src/Extension/Extension.php @@ -10,7 +10,6 @@ namespace Flarum\Extension; use Flarum\Database\Migrator; -use Flarum\Extend\Compat; use Flarum\Extend\LifecycleInterface; use Illuminate\Contracts\Container\Container; use Illuminate\Contracts\Support\Arrayable; @@ -135,13 +134,6 @@ class Extension implements Arrayable public function extend(Container $container) { foreach ($this->getExtenders() as $extender) { - // If an extension has not yet switched to the new extend.php - // format, it might return a function (or more of them). We wrap - // these in a Compat extender to enjoy an unique interface. - if ($extender instanceof \Closure || is_string($extender)) { - $extender = new Compat($extender); - } - $extender->extend($container, $this); } } diff --git a/framework/core/src/Filter/AbstractFilterer.php b/framework/core/src/Filter/AbstractFilterer.php index 5f07fdbbb..234c81ff6 100644 --- a/framework/core/src/Filter/AbstractFilterer.php +++ b/framework/core/src/Filter/AbstractFilterer.php @@ -9,8 +9,6 @@ namespace Flarum\Filter; -use Flarum\Event\ConfigurePostsQuery; -use Flarum\Post\Filter\PostFilterer; use Flarum\Query\ApplyQueryParametersTrait; use Flarum\Query\QueryCriteria; use Flarum\Query\QueryResults; @@ -71,12 +69,6 @@ abstract class AbstractFilterer $this->applyOffset($filterState, $offset); $this->applyLimit($filterState, $limit + 1); - // DEPRECATED BC LAYER, REMOVE BETA 17 - if (static::class === PostFilterer::class) { - event(new ConfigurePostsQuery($query, $criteria->query)); - } - // END DEPRECATED BC LAYER - foreach ($this->filterMutators as $mutator) { $mutator($filterState, $criteria); } diff --git a/framework/core/src/Filter/FilterServiceProvider.php b/framework/core/src/Filter/FilterServiceProvider.php index 09ec80df3..b2ca7c739 100644 --- a/framework/core/src/Filter/FilterServiceProvider.php +++ b/framework/core/src/Filter/FilterServiceProvider.php @@ -28,7 +28,7 @@ class FilterServiceProvider extends AbstractServiceProvider */ public function register() { - $this->app->singleton('flarum.filter.filters', function () { + $this->container->singleton('flarum.filter.filters', function () { return [ DiscussionFilterer::class => [ DiscussionQuery\AuthorFilterGambit::class, @@ -45,13 +45,12 @@ class FilterServiceProvider extends AbstractServiceProvider PostFilter\DiscussionFilter::class, PostFilter\IdFilter::class, PostFilter\NumberFilter::class, - PostFilter\TypeFilter::class, - PostFilter\UserFilter::class, + PostFilter\TypeFilter::class ], ]; }); - $this->app->singleton('flarum.filter.filter_mutators', function () { + $this->container->singleton('flarum.filter.filter_mutators', function () { return []; }); } @@ -61,30 +60,30 @@ class FilterServiceProvider extends AbstractServiceProvider // We can resolve the filter mutators in the when->needs->give callback, // but we need to resolve at least one regardless so we know which // filterers we need to register filters for. - $filters = $this->app->make('flarum.filter.filters'); + $filters = $this->container->make('flarum.filter.filters'); foreach ($filters as $filterer => $filterClasses) { - $this->app + $this->container ->when($filterer) ->needs('$filters') ->give(function () use ($filterClasses) { $compiled = []; foreach ($filterClasses as $filterClass) { - $filter = $this->app->make($filterClass); + $filter = $this->container->make($filterClass); $compiled[$filter->getFilterKey()][] = $filter; } return $compiled; }); - $this->app + $this->container ->when($filterer) ->needs('$filterMutators') ->give(function () use ($filterer) { return array_map(function ($filterMutatorClass) { - return ContainerUtil::wrapCallback($filterMutatorClass, $this->app); - }, Arr::get($this->app->make('flarum.filter.filter_mutators'), $filterer, [])); + return ContainerUtil::wrapCallback($filterMutatorClass, $this->container); + }, Arr::get($this->container->make('flarum.filter.filter_mutators'), $filterer, [])); }); } } diff --git a/framework/core/src/Foundation/AbstractServiceProvider.php b/framework/core/src/Foundation/AbstractServiceProvider.php index 0ab731a59..22e32ca67 100644 --- a/framework/core/src/Foundation/AbstractServiceProvider.php +++ b/framework/core/src/Foundation/AbstractServiceProvider.php @@ -15,7 +15,7 @@ use Illuminate\Support\ServiceProvider; abstract class AbstractServiceProvider extends ServiceProvider { /** - * @deprecated beta 16, remove beta 17 + * @deprecated perpetually, not removed because Laravel needs it. * @var Container */ protected $app; diff --git a/framework/core/src/Http/AccessToken.php b/framework/core/src/Http/AccessToken.php index c641c6577..75f4afe78 100644 --- a/framework/core/src/Http/AccessToken.php +++ b/framework/core/src/Http/AccessToken.php @@ -67,20 +67,12 @@ class AccessToken extends AbstractModel * Generate an access token for the specified user. * * @param int $userId - * @param int $lifetime Does nothing. Deprecated in beta 16, removed in beta 17 * @return static */ - public static function generate($userId, $lifetime = null) + public static function generate($userId) { - if (! is_null($lifetime)) { - trigger_error('Parameter $lifetime is deprecated in beta 16, will be removed in beta 17', E_USER_DEPRECATED); - } - if (static::class === self::class) { - trigger_error('Use of AccessToken::generate() is deprecated in beta 16. Use SessionAccessToken::generate() or RememberAccessToken::generate()', E_USER_DEPRECATED); - - $token = new SessionAccessToken; - $token->type = 'session'; + throw new \Exception('Use of AccessToken::generate() is not allowed: use the `generate` method on one of the subclasses.'); } else { $token = new static; $token->type = static::$type; diff --git a/framework/core/src/Http/Rememberer.php b/framework/core/src/Http/Rememberer.php index 607537ad1..2f8eb763b 100644 --- a/framework/core/src/Http/Rememberer.php +++ b/framework/core/src/Http/Rememberer.php @@ -32,37 +32,17 @@ class Rememberer /** * Sets the remember cookie on a response. * @param ResponseInterface $response - * @param RememberAccessToken $token The remember token to set on the response. Use of non-remember token is deprecated in beta 16, removed eta 17. + * @param RememberAccessToken $token The remember token to set on the response. * @return ResponseInterface */ - public function remember(ResponseInterface $response, AccessToken $token) + public function remember(ResponseInterface $response, RememberAccessToken $token) { - if (! ($token instanceof RememberAccessToken)) { - trigger_error('Parameter $token of type AccessToken is deprecated in beta 16, must be instance of RememberAccessToken in beta 17', E_USER_DEPRECATED); - - $token->type = 'session_remember'; - $token->save(); - } - return FigResponseCookies::set( $response, $this->cookie->make(self::COOKIE_NAME, $token->token, RememberAccessToken::rememberCookieLifeTime()) ); } - /** - * @param ResponseInterface $response - * @param $userId - * @return ResponseInterface - * @deprecated beta 16, removed beta 17. Use remember() with a token - */ - public function rememberUser(ResponseInterface $response, $userId) - { - $token = RememberAccessToken::generate($userId); - - return $this->remember($response, $token); - } - public function forget(ResponseInterface $response) { return FigResponseCookies::set( diff --git a/framework/core/src/Http/SessionAuthenticator.php b/framework/core/src/Http/SessionAuthenticator.php index b85f891a6..7698fee15 100644 --- a/framework/core/src/Http/SessionAuthenticator.php +++ b/framework/core/src/Http/SessionAuthenticator.php @@ -15,20 +15,10 @@ class SessionAuthenticator { /** * @param Session $session - * @param AccessToken|int $token Token or user ID. Use of User ID is deprecated in beta 16, will be removed in beta 17 + * @param AccessToken $token */ - public function logIn(Session $session, $token) + public function logIn(Session $session, AccessToken $token) { - // Backwards compatibility with $userId as parameter - // Remove in beta 17 - if (! ($token instanceof AccessToken)) { - $userId = $token; - - trigger_error('Parameter $userId is deprecated in beta 16, will be replaced by $token in beta 17', E_USER_DEPRECATED); - - $token = SessionAccessToken::generate($userId); - } - $session->regenerate(true); $session->put('access_token', $token->token); } diff --git a/framework/core/src/Locale/LocaleServiceProvider.php b/framework/core/src/Locale/LocaleServiceProvider.php index 8a4ffbb3e..68149e595 100644 --- a/framework/core/src/Locale/LocaleServiceProvider.php +++ b/framework/core/src/Locale/LocaleServiceProvider.php @@ -15,7 +15,6 @@ use Flarum\Foundation\Paths; use Flarum\Settings\SettingsRepositoryInterface; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Translation\Translator as TranslatorContract; -use Symfony\Component\Translation\TranslatorInterface as DeprecatedTranslatorInterface; use Symfony\Contracts\Translation\TranslatorInterface; class LocaleServiceProvider extends AbstractServiceProvider @@ -67,7 +66,6 @@ class LocaleServiceProvider extends AbstractServiceProvider $this->container->alias('translator', Translator::class); $this->container->alias('translator', TranslatorContract::class); $this->container->alias('translator', TranslatorInterface::class); - $this->container->alias('translator', DeprecatedTranslatorInterface::class); } private function getDefaultLocale(): string diff --git a/framework/core/src/Locale/Translator.php b/framework/core/src/Locale/Translator.php index 99023cfa7..c4995bea3 100644 --- a/framework/core/src/Locale/Translator.php +++ b/framework/core/src/Locale/Translator.php @@ -12,9 +12,8 @@ namespace Flarum\Locale; use Illuminate\Contracts\Translation\Translator as TranslatorContract; use Symfony\Component\Translation\MessageCatalogueInterface; use Symfony\Component\Translation\Translator as BaseTranslator; -use Symfony\Component\Translation\TranslatorInterface; // Defined locally as BC layer -class Translator extends BaseTranslator implements TranslatorContract, TranslatorInterface +class Translator extends BaseTranslator implements TranslatorContract { const REFERENCE_REGEX = '/^=>\s*([a-z0-9_\-\.]+)$/i'; diff --git a/framework/core/src/Post/Filter/UserFilter.php b/framework/core/src/Post/Filter/UserFilter.php deleted file mode 100644 index b03fce5d2..000000000 --- a/framework/core/src/Post/Filter/UserFilter.php +++ /dev/null @@ -1,21 +0,0 @@ -pattern during beta 17. - if (preg_match('/^(-?)'.($this->pattern ?? $this->getGambitPattern()).'$/i', $bit, $matches)) { + if (preg_match('/^(-?)'.$this->getGambitPattern().'$/i', $bit, $matches)) { return $matches; } } @@ -55,6 +52,5 @@ abstract class AbstractRegexGambit implements GambitInterface * or not the conditions should be negated. * @return mixed */ - // Uncomment for beta 17 - // abstract protected function conditions(SearchState $search, array $matches, $negate); + abstract protected function conditions(SearchState $search, array $matches, $negate); } diff --git a/framework/core/src/Search/AbstractSearch.php b/framework/core/src/Search/AbstractSearch.php deleted file mode 100644 index ce9b4a77d..000000000 --- a/framework/core/src/Search/AbstractSearch.php +++ /dev/null @@ -1,45 +0,0 @@ -activeGambits; - } - - /** - * Add a gambit as being active in this search. - * - * @param GambitInterface $gambit - * @return void - */ - public function addActiveGambit(GambitInterface $gambit) - { - $this->activeGambits[] = $gambit; - } -} diff --git a/framework/core/src/Search/AbstractSearcher.php b/framework/core/src/Search/AbstractSearcher.php index c2fe4d9f8..d0dd0329c 100644 --- a/framework/core/src/Search/AbstractSearcher.php +++ b/framework/core/src/Search/AbstractSearcher.php @@ -37,13 +37,6 @@ abstract class AbstractSearcher abstract protected function getQuery(User $actor): Builder; - protected function mutateSearch(SearchState $search, QueryCriteria $criteria) - { - foreach ($this->searchMutators as $mutator) { - $mutator($search, $criteria); - } - } - /** * @param QueryCriteria $criteria * @param int|null $limit @@ -65,7 +58,9 @@ abstract class AbstractSearcher $this->applyOffset($search, $offset); $this->applyLimit($search, $limit + 1); - $this->mutateSearch($search, $criteria); + foreach ($this->searchMutators as $mutator) { + $mutator($search, $criteria); + } // Execute the search query and retrieve the results. We get one more // results than the user asked for, so that we can say if there are more diff --git a/framework/core/src/Search/GambitManager.php b/framework/core/src/Search/GambitManager.php index b9e5b0b0f..ca625dfd0 100644 --- a/framework/core/src/Search/GambitManager.php +++ b/framework/core/src/Search/GambitManager.php @@ -36,22 +36,6 @@ class GambitManager $this->gambits[] = $gambit; } - /** - * @deprecated Do not use. Added temporarily to provide support for ConfigureUserGambits and ConfigureDiscussionGambits until they are removed in beta 17. - */ - public function getFullTextGambit() - { - return $this->fulltextGambit; - } - - /** - * @deprecated Do not use. Added temporarily to provide support for ConfigureUserGambits and ConfigureDiscussionGambits until they are removed in beta 17. - */ - public function getGambits() - { - return $this->gambits; - } - /** * Apply gambits to a search, given a search query. * diff --git a/framework/core/src/Search/SearchCriteria.php b/framework/core/src/Search/SearchCriteria.php deleted file mode 100644 index 0437e3241..000000000 --- a/framework/core/src/Search/SearchCriteria.php +++ /dev/null @@ -1,17 +0,0 @@ -add($this->container->make($gambit)); } - // Temporary BC Layer - // @deprecated beta 16, remove beta 17. - - $oldEvents = [ - DiscussionSearcher::class => ConfigureDiscussionGambits::class, - UserSearcher::class => ConfigureUserGambits::class - ]; - - foreach ($oldEvents as $oldSearcher => $event) { - if ($searcher === $oldSearcher) { - $tempGambits = new GambitManager; - $this->container->make('events')->dispatch( - new $event($tempGambits) - ); - - if (! is_null($fullTextGambit = $tempGambits->getFullTextGambit())) { - $gambitManager->setFullTextGambit($this->container->make($fullTextGambit)); - } - - foreach ($tempGambits->getGambits() as $gambit) { - $gambitManager->add($this->container->make($gambit)); - } - } - } - - // End BC Layer - return $gambitManager; }); diff --git a/framework/core/src/Search/SearchState.php b/framework/core/src/Search/SearchState.php index b57fbeee2..392cc99a1 100644 --- a/framework/core/src/Search/SearchState.php +++ b/framework/core/src/Search/SearchState.php @@ -9,6 +9,33 @@ namespace Flarum\Search; -class SearchState extends AbstractSearch +use Flarum\Query\AbstractQueryState; + +class SearchState extends AbstractQueryState { + /** + * @var GambitInterface[] + */ + protected $activeGambits = []; + + /** + * Get a list of the gambits that are active in this search. + * + * @return GambitInterface[] + */ + public function getActiveGambits() + { + return $this->activeGambits; + } + + /** + * Add a gambit as being active in this search. + * + * @param GambitInterface $gambit + * @return void + */ + public function addActiveGambit(GambitInterface $gambit) + { + $this->activeGambits[] = $gambit; + } } diff --git a/framework/core/src/TranslatorInterface.php b/framework/core/src/TranslatorInterface.php deleted file mode 100644 index 91acaf53c..000000000 --- a/framework/core/src/TranslatorInterface.php +++ /dev/null @@ -1,20 +0,0 @@ -user = $user; - $this->password = $password; - } -} diff --git a/framework/core/src/User/Event/Searching.php b/framework/core/src/User/Event/Searching.php deleted file mode 100644 index 78941092e..000000000 --- a/framework/core/src/User/Event/Searching.php +++ /dev/null @@ -1,39 +0,0 @@ -search = $search; - $this->criteria = $criteria; - } -} diff --git a/framework/core/src/User/Search/UserSearcher.php b/framework/core/src/User/Search/UserSearcher.php index 8b61b224d..2f95d5087 100644 --- a/framework/core/src/User/Search/UserSearcher.php +++ b/framework/core/src/User/Search/UserSearcher.php @@ -9,11 +9,8 @@ namespace Flarum\User\Search; -use Flarum\Query\QueryCriteria; use Flarum\Search\AbstractSearcher; use Flarum\Search\GambitManager; -use Flarum\Search\SearchState; -use Flarum\User\Event\Searching; use Flarum\User\User; use Flarum\User\UserRepository; use Illuminate\Contracts\Events\Dispatcher; @@ -49,14 +46,4 @@ class UserSearcher extends AbstractSearcher { return $this->users->query()->whereVisibleTo($actor); } - - /** - * @deprecated along with the Searching event, remove in Beta 17. - */ - protected function mutateSearch(SearchState $search, QueryCriteria $criteria) - { - parent::mutateSearch($search, $criteria); - - $this->events->dispatch(new Searching($search, $criteria)); - } } diff --git a/framework/core/src/User/User.php b/framework/core/src/User/User.php index 04acf0e47..6356f743a 100644 --- a/framework/core/src/User/User.php +++ b/framework/core/src/User/User.php @@ -24,7 +24,6 @@ use Flarum\Post\Post; use Flarum\User\DisplayName\DriverInterface; use Flarum\User\Event\Activated; use Flarum\User\Event\AvatarChanged; -use Flarum\User\Event\CheckingPassword; use Flarum\User\Event\Deleted; use Flarum\User\Event\EmailChanged; use Flarum\User\Event\EmailChangeRequested; @@ -343,7 +342,7 @@ class User extends AbstractModel */ public function checkPassword($password) { - $valid = static::$dispatcher->until(new CheckingPassword($this, $password)); + $valid = false; foreach (static::$passwordCheckers as $checker) { $result = $checker($this, $password); @@ -355,7 +354,7 @@ class User extends AbstractModel } } - return $valid || false; + return $valid; } /** diff --git a/framework/core/tests/integration/api/posts/ListTest.php b/framework/core/tests/integration/api/posts/ListTest.php index 4f3a9788f..9986cef0a 100644 --- a/framework/core/tests/integration/api/posts/ListTest.php +++ b/framework/core/tests/integration/api/posts/ListTest.php @@ -10,7 +10,6 @@ namespace Flarum\Tests\integration\api\posts; use Carbon\Carbon; -use Flarum\Event\ConfigurePostsQuery; use Flarum\Testing\integration\RetrievesAuthorizedUsers; use Flarum\Testing\integration\TestCase; use Illuminate\Support\Arr; @@ -114,44 +113,6 @@ class ListTests extends TestCase $this->assertEquals(['1', '2', '3', '4', '5'], Arr::pluck($data['data'], 'id')); } - /** - * @test - * @deprecated - */ - public function user_filter_works() - { - $response = $this->send( - $this->request('GET', '/api/posts', ['authenticatedAs' => 1]) - ->withQueryParams([ - 'filter' => ['user' => 'admin'], - ]) - ); - - $this->assertEquals(200, $response->getStatusCode()); - $data = json_decode($response->getBody()->getContents(), true); - - $this->assertEquals(['1', '2'], Arr::pluck($data['data'], 'id')); - } - - /** - * @test - * @deprecated - */ - public function user_filter_works_with_multiple_values() - { - $response = $this->send( - $this->request('GET', '/api/posts', ['authenticatedAs' => 1]) - ->withQueryParams([ - 'filter' => ['user' => 'admin,normal'], - ]) - ); - - $this->assertEquals(200, $response->getStatusCode()); - $data = json_decode($response->getBody()->getContents(), true); - - $this->assertEquals(['1', '2', '3', '4', '5'], Arr::pluck($data['data'], 'id')); - } - /** * @test */ @@ -241,24 +202,4 @@ class ListTests extends TestCase $this->assertEquals(['1', '3', '5'], Arr::pluck($data['data'], 'id')); } - - /** - * @deprecated beta 16, remove beta 17 - * @test - */ - public function deprecated_configure_posts_query_extension_still_works() - { - $this->app()->getContainer()->make('events')->listen(ConfigurePostsQuery::class, function (ConfigurePostsQuery $event) { - $event->query->where('id', '1'); - }); - - $response = $this->send( - $this->request('GET', '/api/posts', ['authenticatedAs' => 1]) - ); - - $this->assertEquals(200, $response->getStatusCode()); - $data = json_decode($response->getBody()->getContents(), true); - - $this->assertEquals(['1'], Arr::pluck($data['data'], 'id')); - } } diff --git a/framework/core/tests/integration/extenders/ModelPrivateTest.php b/framework/core/tests/integration/extenders/ModelPrivateTest.php index 6d22df1bf..cde9e0096 100644 --- a/framework/core/tests/integration/extenders/ModelPrivateTest.php +++ b/framework/core/tests/integration/extenders/ModelPrivateTest.php @@ -31,7 +31,7 @@ class ModelPrivateTest extends TestCase $discussion = Discussion::start('Some Discussion', $user); $discussion->save(); - $this->assertFalse($discussion->is_private); + $this->assertNull($discussion->is_private); } /**