diff --git a/framework/core/src/Http/HttpServiceProvider.php b/framework/core/src/Http/HttpServiceProvider.php index ed6d6ee27..eba6a5f8f 100644 --- a/framework/core/src/Http/HttpServiceProvider.php +++ b/framework/core/src/Http/HttpServiceProvider.php @@ -13,6 +13,7 @@ use Flarum\Discussion\Discussion; use Flarum\Discussion\IdWithTransliteratedSlugDriver; use Flarum\Foundation\AbstractServiceProvider; use Flarum\Settings\SettingsRepositoryInterface; +use Flarum\User\IdSlugDriver; use Flarum\User\User; use Flarum\User\UsernameSlugDriver; use Illuminate\Support\Arr; @@ -38,7 +39,8 @@ class HttpServiceProvider extends AbstractServiceProvider 'default' => IdWithTransliteratedSlugDriver::class ], User::class => [ - 'default' => UsernameSlugDriver::class + 'default' => UsernameSlugDriver::class, + 'id' => IdSlugDriver::class ], ]; }); diff --git a/framework/core/src/User/IdSlugDriver.php b/framework/core/src/User/IdSlugDriver.php new file mode 100644 index 000000000..2a71a508c --- /dev/null +++ b/framework/core/src/User/IdSlugDriver.php @@ -0,0 +1,36 @@ +users = $users; + } + + public function toSlug(AbstractModel $instance): string + { + return $instance->id; + } + + public function fromSlug(string $slug, User $actor): AbstractModel + { + return $this->users->findOrFail($slug, $actor); + } +}