mirror of
https://github.com/flarum/framework.git
synced 2025-03-10 12:21:11 +08:00
Add user id slug driver (#2787)
This commit is contained in:
parent
04115e28c1
commit
b4738febaa
@ -13,6 +13,7 @@ use Flarum\Discussion\Discussion;
|
|||||||
use Flarum\Discussion\IdWithTransliteratedSlugDriver;
|
use Flarum\Discussion\IdWithTransliteratedSlugDriver;
|
||||||
use Flarum\Foundation\AbstractServiceProvider;
|
use Flarum\Foundation\AbstractServiceProvider;
|
||||||
use Flarum\Settings\SettingsRepositoryInterface;
|
use Flarum\Settings\SettingsRepositoryInterface;
|
||||||
|
use Flarum\User\IdSlugDriver;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
use Flarum\User\UsernameSlugDriver;
|
use Flarum\User\UsernameSlugDriver;
|
||||||
use Illuminate\Support\Arr;
|
use Illuminate\Support\Arr;
|
||||||
@ -38,7 +39,8 @@ class HttpServiceProvider extends AbstractServiceProvider
|
|||||||
'default' => IdWithTransliteratedSlugDriver::class
|
'default' => IdWithTransliteratedSlugDriver::class
|
||||||
],
|
],
|
||||||
User::class => [
|
User::class => [
|
||||||
'default' => UsernameSlugDriver::class
|
'default' => UsernameSlugDriver::class,
|
||||||
|
'id' => IdSlugDriver::class
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
36
framework/core/src/User/IdSlugDriver.php
Normal file
36
framework/core/src/User/IdSlugDriver.php
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of Flarum.
|
||||||
|
*
|
||||||
|
* For detailed copyright and license information, please view the
|
||||||
|
* LICENSE file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Flarum\User;
|
||||||
|
|
||||||
|
use Flarum\Database\AbstractModel;
|
||||||
|
use Flarum\Http\SlugDriverInterface;
|
||||||
|
|
||||||
|
class IdSlugDriver implements SlugDriverInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var UserRepository
|
||||||
|
*/
|
||||||
|
protected $users;
|
||||||
|
|
||||||
|
public function __construct(UserRepository $users)
|
||||||
|
{
|
||||||
|
$this->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);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user