mirror of
https://github.com/flarum/framework.git
synced 2025-02-06 14:37:14 +08:00
Use Laravel's class-based Str and Arr helpers
Starting with version 5.9, the global funtions will be deprecated. * https://laravel-news.com/laravel-5-8-deprecates-string-and-array-helpers * https://github.com/laravel/framework/pull/26898
This commit is contained in:
parent
039973c5f8
commit
32e84d651c
|
@ -14,6 +14,7 @@ namespace Flarum\Api;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Flarum\Database\AbstractModel;
|
use Flarum\Database\AbstractModel;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property int $id
|
* @property int $id
|
||||||
|
@ -38,7 +39,7 @@ class ApiKey extends AbstractModel
|
||||||
{
|
{
|
||||||
$key = new static;
|
$key = new static;
|
||||||
|
|
||||||
$key->key = str_random(40);
|
$key->key = Str::random(40);
|
||||||
|
|
||||||
return $key;
|
return $key;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ use Flarum\Discussion\Command\ReadDiscussion;
|
||||||
use Flarum\Discussion\Command\StartDiscussion;
|
use Flarum\Discussion\Command\StartDiscussion;
|
||||||
use Flarum\Post\Floodgate;
|
use Flarum\Post\Floodgate;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -63,14 +64,14 @@ class CreateDiscussionController extends AbstractCreateController
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
$ipAddress = array_get($request->getServerParams(), 'REMOTE_ADDR', '127.0.0.1');
|
$ipAddress = Arr::get($request->getServerParams(), 'REMOTE_ADDR', '127.0.0.1');
|
||||||
|
|
||||||
if (! $request->getAttribute('bypassFloodgate')) {
|
if (! $request->getAttribute('bypassFloodgate')) {
|
||||||
$this->floodgate->assertNotFlooding($actor);
|
$this->floodgate->assertNotFlooding($actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
$discussion = $this->bus->dispatch(
|
$discussion = $this->bus->dispatch(
|
||||||
new StartDiscussion($actor, array_get($request->getParsedBody(), 'data', []), $ipAddress)
|
new StartDiscussion($actor, Arr::get($request->getParsedBody(), 'data', []), $ipAddress)
|
||||||
);
|
);
|
||||||
|
|
||||||
// After creating the discussion, we assume that the user has seen all
|
// After creating the discussion, we assume that the user has seen all
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
|
||||||
use Flarum\Api\Serializer\GroupSerializer;
|
use Flarum\Api\Serializer\GroupSerializer;
|
||||||
use Flarum\Group\Command\CreateGroup;
|
use Flarum\Group\Command\CreateGroup;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -43,7 +44,7 @@ class CreateGroupController extends AbstractCreateController
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
return $this->bus->dispatch(
|
return $this->bus->dispatch(
|
||||||
new CreateGroup($request->getAttribute('actor'), array_get($request->getParsedBody(), 'data', []))
|
new CreateGroup($request->getAttribute('actor'), Arr::get($request->getParsedBody(), 'data', []))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ use Flarum\Discussion\Command\ReadDiscussion;
|
||||||
use Flarum\Post\Command\PostReply;
|
use Flarum\Post\Command\PostReply;
|
||||||
use Flarum\Post\Floodgate;
|
use Flarum\Post\Floodgate;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -62,9 +63,9 @@ class CreatePostController extends AbstractCreateController
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
$data = array_get($request->getParsedBody(), 'data', []);
|
$data = Arr::get($request->getParsedBody(), 'data', []);
|
||||||
$discussionId = array_get($data, 'relationships.discussion.data.id');
|
$discussionId = Arr::get($data, 'relationships.discussion.data.id');
|
||||||
$ipAddress = array_get($request->getServerParams(), 'REMOTE_ADDR', '127.0.0.1');
|
$ipAddress = Arr::get($request->getServerParams(), 'REMOTE_ADDR', '127.0.0.1');
|
||||||
|
|
||||||
if (! $request->getAttribute('bypassFloodgate')) {
|
if (! $request->getAttribute('bypassFloodgate')) {
|
||||||
$this->floodgate->assertNotFlooding($actor);
|
$this->floodgate->assertNotFlooding($actor);
|
||||||
|
|
|
@ -16,6 +16,7 @@ use Flarum\User\Exception\PermissionDeniedException;
|
||||||
use Flarum\User\UserRepository;
|
use Flarum\User\UserRepository;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher as BusDispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher as BusDispatcher;
|
||||||
use Illuminate\Contracts\Events\Dispatcher as EventDispatcher;
|
use Illuminate\Contracts\Events\Dispatcher as EventDispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
@ -57,9 +58,9 @@ class CreateTokenController implements RequestHandlerInterface
|
||||||
{
|
{
|
||||||
$body = $request->getParsedBody();
|
$body = $request->getParsedBody();
|
||||||
|
|
||||||
$identification = array_get($body, 'identification');
|
$identification = Arr::get($body, 'identification');
|
||||||
$password = array_get($body, 'password');
|
$password = Arr::get($body, 'password');
|
||||||
$lifetime = array_get($body, 'lifetime', 3600);
|
$lifetime = Arr::get($body, 'lifetime', 3600);
|
||||||
|
|
||||||
$user = $this->users->findByIdentification($identification);
|
$user = $this->users->findByIdentification($identification);
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
|
||||||
use Flarum\Api\Serializer\CurrentUserSerializer;
|
use Flarum\Api\Serializer\CurrentUserSerializer;
|
||||||
use Flarum\User\Command\RegisterUser;
|
use Flarum\User\Command\RegisterUser;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -43,7 +44,7 @@ class CreateUserController extends AbstractCreateController
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
return $this->bus->dispatch(
|
return $this->bus->dispatch(
|
||||||
new RegisterUser($request->getAttribute('actor'), array_get($request->getParsedBody(), 'data', []))
|
new RegisterUser($request->getAttribute('actor'), Arr::get($request->getParsedBody(), 'data', []))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
|
||||||
use Flarum\Api\Serializer\UserSerializer;
|
use Flarum\Api\Serializer\UserSerializer;
|
||||||
use Flarum\User\Command\DeleteAvatar;
|
use Flarum\User\Command\DeleteAvatar;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -43,7 +44,7 @@ class DeleteAvatarController extends AbstractShowController
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
return $this->bus->dispatch(
|
return $this->bus->dispatch(
|
||||||
new DeleteAvatar(array_get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
|
new DeleteAvatar(Arr::get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
|
||||||
|
|
||||||
use Flarum\Discussion\Command\DeleteDiscussion;
|
use Flarum\Discussion\Command\DeleteDiscussion;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
|
|
||||||
class DeleteDiscussionController extends AbstractDeleteController
|
class DeleteDiscussionController extends AbstractDeleteController
|
||||||
|
@ -35,7 +36,7 @@ class DeleteDiscussionController extends AbstractDeleteController
|
||||||
*/
|
*/
|
||||||
protected function delete(ServerRequestInterface $request)
|
protected function delete(ServerRequestInterface $request)
|
||||||
{
|
{
|
||||||
$id = array_get($request->getQueryParams(), 'id');
|
$id = Arr::get($request->getQueryParams(), 'id');
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
$input = $request->getParsedBody();
|
$input = $request->getParsedBody();
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
|
||||||
|
|
||||||
use Flarum\Group\Command\DeleteGroup;
|
use Flarum\Group\Command\DeleteGroup;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
|
|
||||||
class DeleteGroupController extends AbstractDeleteController
|
class DeleteGroupController extends AbstractDeleteController
|
||||||
|
@ -36,7 +37,7 @@ class DeleteGroupController extends AbstractDeleteController
|
||||||
protected function delete(ServerRequestInterface $request)
|
protected function delete(ServerRequestInterface $request)
|
||||||
{
|
{
|
||||||
$this->bus->dispatch(
|
$this->bus->dispatch(
|
||||||
new DeleteGroup(array_get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
|
new DeleteGroup(Arr::get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
|
||||||
|
|
||||||
use Flarum\Post\Command\DeletePost;
|
use Flarum\Post\Command\DeletePost;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
|
|
||||||
class DeletePostController extends AbstractDeleteController
|
class DeletePostController extends AbstractDeleteController
|
||||||
|
@ -36,7 +37,7 @@ class DeletePostController extends AbstractDeleteController
|
||||||
protected function delete(ServerRequestInterface $request)
|
protected function delete(ServerRequestInterface $request)
|
||||||
{
|
{
|
||||||
$this->bus->dispatch(
|
$this->bus->dispatch(
|
||||||
new DeletePost(array_get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
|
new DeletePost(Arr::get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
|
||||||
|
|
||||||
use Flarum\User\Command\DeleteUser;
|
use Flarum\User\Command\DeleteUser;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
|
|
||||||
class DeleteUserController extends AbstractDeleteController
|
class DeleteUserController extends AbstractDeleteController
|
||||||
|
@ -36,7 +37,7 @@ class DeleteUserController extends AbstractDeleteController
|
||||||
protected function delete(ServerRequestInterface $request)
|
protected function delete(ServerRequestInterface $request)
|
||||||
{
|
{
|
||||||
$this->bus->dispatch(
|
$this->bus->dispatch(
|
||||||
new DeleteUser(array_get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
|
new DeleteUser(Arr::get($request->getQueryParams(), 'id'), $request->getAttribute('actor'))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
|
||||||
use Flarum\User\Command\RequestPasswordReset;
|
use Flarum\User\Command\RequestPasswordReset;
|
||||||
use Flarum\User\UserRepository;
|
use Flarum\User\UserRepository;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
@ -46,7 +47,7 @@ class ForgotPasswordController implements RequestHandlerInterface
|
||||||
*/
|
*/
|
||||||
public function handle(ServerRequestInterface $request): ResponseInterface
|
public function handle(ServerRequestInterface $request): ResponseInterface
|
||||||
{
|
{
|
||||||
$email = array_get($request->getParsedBody(), 'email');
|
$email = Arr::get($request->getParsedBody(), 'email');
|
||||||
|
|
||||||
$this->bus->dispatch(
|
$this->bus->dispatch(
|
||||||
new RequestPasswordReset($email)
|
new RequestPasswordReset($email)
|
||||||
|
|
|
@ -16,6 +16,7 @@ use Flarum\Discussion\Discussion;
|
||||||
use Flarum\Discussion\Search\DiscussionSearcher;
|
use Flarum\Discussion\Search\DiscussionSearcher;
|
||||||
use Flarum\Http\UrlGenerator;
|
use Flarum\Http\UrlGenerator;
|
||||||
use Flarum\Search\SearchCriteria;
|
use Flarum\Search\SearchCriteria;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -75,7 +76,7 @@ class ListDiscussionsController extends AbstractListController
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
$query = array_get($this->extractFilter($request), 'q');
|
$query = Arr::get($this->extractFilter($request), 'q');
|
||||||
$sort = $this->extractSort($request);
|
$sort = $this->extractSort($request);
|
||||||
|
|
||||||
$criteria = new SearchCriteria($actor, $query, $sort);
|
$criteria = new SearchCriteria($actor, $query, $sort);
|
||||||
|
|
|
@ -15,6 +15,8 @@ use Flarum\Api\Serializer\PostSerializer;
|
||||||
use Flarum\Event\ConfigurePostsQuery;
|
use Flarum\Event\ConfigurePostsQuery;
|
||||||
use Flarum\Post\PostRepository;
|
use Flarum\Post\PostRepository;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
use Tobscure\JsonApi\Exception\InvalidParameterException;
|
use Tobscure\JsonApi\Exception\InvalidParameterException;
|
||||||
|
@ -64,7 +66,7 @@ class ListPostsController extends AbstractListController
|
||||||
$filter = $this->extractFilter($request);
|
$filter = $this->extractFilter($request);
|
||||||
$include = $this->extractInclude($request);
|
$include = $this->extractInclude($request);
|
||||||
|
|
||||||
if ($postIds = array_get($filter, 'id')) {
|
if ($postIds = Arr::get($filter, 'id')) {
|
||||||
$postIds = explode(',', $postIds);
|
$postIds = explode(',', $postIds);
|
||||||
} else {
|
} else {
|
||||||
$postIds = $this->getPostIds($request);
|
$postIds = $this->getPostIds($request);
|
||||||
|
@ -86,7 +88,7 @@ class ListPostsController extends AbstractListController
|
||||||
$limit = $this->extractLimit($request);
|
$limit = $this->extractLimit($request);
|
||||||
$filter = $this->extractFilter($request);
|
$filter = $this->extractFilter($request);
|
||||||
|
|
||||||
if (($near = array_get($queryParams, 'page.near')) > 1) {
|
if (($near = Arr::get($queryParams, 'page.near')) > 1) {
|
||||||
if (count($filter) > 1 || ! isset($filter['discussion']) || $sort) {
|
if (count($filter) > 1 || ! isset($filter['discussion']) || $sort) {
|
||||||
throw new InvalidParameterException(
|
throw new InvalidParameterException(
|
||||||
'You can only use page[near] with filter[discussion] and the default sort order'
|
'You can only use page[near] with filter[discussion] and the default sort order'
|
||||||
|
@ -120,7 +122,7 @@ class ListPostsController extends AbstractListController
|
||||||
$query->skip($offset)->take($limit);
|
$query->skip($offset)->take($limit);
|
||||||
|
|
||||||
foreach ((array) $sort as $field => $order) {
|
foreach ((array) $sort as $field => $order) {
|
||||||
$query->orderBy(snake_case($field), $order);
|
$query->orderBy(Str::snake($field), $order);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $query->pluck('id')->all();
|
return $query->pluck('id')->all();
|
||||||
|
@ -132,19 +134,19 @@ class ListPostsController extends AbstractListController
|
||||||
*/
|
*/
|
||||||
private function applyFilters(Builder $query, array $filter)
|
private function applyFilters(Builder $query, array $filter)
|
||||||
{
|
{
|
||||||
if ($discussionId = array_get($filter, 'discussion')) {
|
if ($discussionId = Arr::get($filter, 'discussion')) {
|
||||||
$query->where('discussion_id', $discussionId);
|
$query->where('discussion_id', $discussionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($number = array_get($filter, 'number')) {
|
if ($number = Arr::get($filter, 'number')) {
|
||||||
$query->where('number', $number);
|
$query->where('number', $number);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($userId = array_get($filter, 'user')) {
|
if ($userId = Arr::get($filter, 'user')) {
|
||||||
$query->where('user_id', $userId);
|
$query->where('user_id', $userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($type = array_get($filter, 'type')) {
|
if ($type = Arr::get($filter, 'type')) {
|
||||||
$query->where('type', $type);
|
$query->where('type', $type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ use Flarum\Http\UrlGenerator;
|
||||||
use Flarum\Search\SearchCriteria;
|
use Flarum\Search\SearchCriteria;
|
||||||
use Flarum\User\Exception\PermissionDeniedException;
|
use Flarum\User\Exception\PermissionDeniedException;
|
||||||
use Flarum\User\Search\UserSearcher;
|
use Flarum\User\Search\UserSearcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -73,7 +74,7 @@ class ListUsersController extends AbstractListController
|
||||||
throw new PermissionDeniedException;
|
throw new PermissionDeniedException;
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = array_get($this->extractFilter($request), 'q');
|
$query = Arr::get($this->extractFilter($request), 'q');
|
||||||
$sort = $this->extractSort($request);
|
$sort = $this->extractSort($request);
|
||||||
|
|
||||||
$criteria = new SearchCriteria($actor, $query, $sort);
|
$criteria = new SearchCriteria($actor, $query, $sort);
|
||||||
|
|
|
@ -18,6 +18,7 @@ use Flarum\User\EmailToken;
|
||||||
use Flarum\User\Exception\PermissionDeniedException;
|
use Flarum\User\Exception\PermissionDeniedException;
|
||||||
use Illuminate\Contracts\Mail\Mailer;
|
use Illuminate\Contracts\Mail\Mailer;
|
||||||
use Illuminate\Mail\Message;
|
use Illuminate\Mail\Message;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
@ -67,7 +68,7 @@ class SendConfirmationEmailController implements RequestHandlerInterface
|
||||||
*/
|
*/
|
||||||
public function handle(ServerRequestInterface $request): ResponseInterface
|
public function handle(ServerRequestInterface $request): ResponseInterface
|
||||||
{
|
{
|
||||||
$id = array_get($request->getQueryParams(), 'id');
|
$id = Arr::get($request->getQueryParams(), 'id');
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
|
|
||||||
$this->assertRegistered($actor);
|
$this->assertRegistered($actor);
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
|
||||||
|
|
||||||
use Flarum\Group\Permission;
|
use Flarum\Group\Permission;
|
||||||
use Flarum\User\AssertPermissionTrait;
|
use Flarum\User\AssertPermissionTrait;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
@ -30,8 +31,8 @@ class SetPermissionController implements RequestHandlerInterface
|
||||||
$this->assertAdmin($request->getAttribute('actor'));
|
$this->assertAdmin($request->getAttribute('actor'));
|
||||||
|
|
||||||
$body = $request->getParsedBody();
|
$body = $request->getParsedBody();
|
||||||
$permission = array_get($body, 'permission');
|
$permission = Arr::get($body, 'permission');
|
||||||
$groupIds = array_get($body, 'groupIds');
|
$groupIds = Arr::get($body, 'groupIds');
|
||||||
|
|
||||||
Permission::where('permission', $permission)->delete();
|
Permission::where('permission', $permission)->delete();
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@ use Flarum\Discussion\Discussion;
|
||||||
use Flarum\Discussion\DiscussionRepository;
|
use Flarum\Discussion\DiscussionRepository;
|
||||||
use Flarum\Post\PostRepository;
|
use Flarum\Post\PostRepository;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -73,7 +75,7 @@ class ShowDiscussionController extends AbstractShowController
|
||||||
*/
|
*/
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
$discussionId = array_get($request->getQueryParams(), 'id');
|
$discussionId = Arr::get($request->getQueryParams(), 'id');
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
$include = $this->extractInclude($request);
|
$include = $this->extractInclude($request);
|
||||||
|
|
||||||
|
@ -86,7 +88,7 @@ class ShowDiscussionController extends AbstractShowController
|
||||||
}
|
}
|
||||||
|
|
||||||
$discussion->load(array_filter($include, function ($relationship) {
|
$discussion->load(array_filter($include, function ($relationship) {
|
||||||
return ! starts_with($relationship, 'posts');
|
return ! Str::startsWith($relationship, 'posts');
|
||||||
}));
|
}));
|
||||||
|
|
||||||
return $discussion;
|
return $discussion;
|
||||||
|
@ -150,7 +152,7 @@ class ShowDiscussionController extends AbstractShowController
|
||||||
$queryParams = $request->getQueryParams();
|
$queryParams = $request->getQueryParams();
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
|
|
||||||
if (($near = array_get($queryParams, 'page.near')) > 1) {
|
if (($near = Arr::get($queryParams, 'page.near')) > 1) {
|
||||||
$offset = $this->posts->getIndexForNumber($discussion->id, $near, $actor);
|
$offset = $this->posts->getIndexForNumber($discussion->id, $near, $actor);
|
||||||
$offset = max(0, $offset - $limit / 2);
|
$offset = max(0, $offset - $limit / 2);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
|
||||||
|
|
||||||
use Flarum\Api\Serializer\PostSerializer;
|
use Flarum\Api\Serializer\PostSerializer;
|
||||||
use Flarum\Post\PostRepository;
|
use Flarum\Post\PostRepository;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -52,6 +53,6 @@ class ShowPostController extends AbstractShowController
|
||||||
*/
|
*/
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
return $this->posts->findOrFail(array_get($request->getQueryParams(), 'id'), $request->getAttribute('actor'));
|
return $this->posts->findOrFail(Arr::get($request->getQueryParams(), 'id'), $request->getAttribute('actor'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
|
||||||
use Flarum\Api\Serializer\CurrentUserSerializer;
|
use Flarum\Api\Serializer\CurrentUserSerializer;
|
||||||
use Flarum\Api\Serializer\UserSerializer;
|
use Flarum\Api\Serializer\UserSerializer;
|
||||||
use Flarum\User\UserRepository;
|
use Flarum\User\UserRepository;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -47,7 +48,7 @@ class ShowUserController extends AbstractShowController
|
||||||
*/
|
*/
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
$id = array_get($request->getQueryParams(), 'id');
|
$id = Arr::get($request->getQueryParams(), 'id');
|
||||||
|
|
||||||
if (! is_numeric($id)) {
|
if (! is_numeric($id)) {
|
||||||
$id = $this->users->getIdForUsername($id);
|
$id = $this->users->getIdForUsername($id);
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
|
||||||
|
|
||||||
use Flarum\Extension\ExtensionManager;
|
use Flarum\Extension\ExtensionManager;
|
||||||
use Flarum\User\AssertPermissionTrait;
|
use Flarum\User\AssertPermissionTrait;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
|
|
||||||
class UninstallExtensionController extends AbstractDeleteController
|
class UninstallExtensionController extends AbstractDeleteController
|
||||||
|
@ -36,7 +37,7 @@ class UninstallExtensionController extends AbstractDeleteController
|
||||||
{
|
{
|
||||||
$this->assertAdmin($request->getAttribute('actor'));
|
$this->assertAdmin($request->getAttribute('actor'));
|
||||||
|
|
||||||
$name = array_get($request->getQueryParams(), 'name');
|
$name = Arr::get($request->getQueryParams(), 'name');
|
||||||
|
|
||||||
if ($this->extensions->getExtension($name) == null) {
|
if ($this->extensions->getExtension($name) == null) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -16,6 +16,7 @@ use Flarum\Discussion\Command\EditDiscussion;
|
||||||
use Flarum\Discussion\Command\ReadDiscussion;
|
use Flarum\Discussion\Command\ReadDiscussion;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -45,8 +46,8 @@ class UpdateDiscussionController extends AbstractShowController
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
$discussionId = array_get($request->getQueryParams(), 'id');
|
$discussionId = Arr::get($request->getQueryParams(), 'id');
|
||||||
$data = array_get($request->getParsedBody(), 'data', []);
|
$data = Arr::get($request->getParsedBody(), 'data', []);
|
||||||
|
|
||||||
$discussion = $this->bus->dispatch(
|
$discussion = $this->bus->dispatch(
|
||||||
new EditDiscussion($discussionId, $actor, $data)
|
new EditDiscussion($discussionId, $actor, $data)
|
||||||
|
@ -54,7 +55,7 @@ class UpdateDiscussionController extends AbstractShowController
|
||||||
|
|
||||||
// TODO: Refactor the ReadDiscussion (state) command into EditDiscussion?
|
// TODO: Refactor the ReadDiscussion (state) command into EditDiscussion?
|
||||||
// That's what extensions will do anyway.
|
// That's what extensions will do anyway.
|
||||||
if ($readNumber = array_get($data, 'attributes.lastReadPostNumber')) {
|
if ($readNumber = Arr::get($data, 'attributes.lastReadPostNumber')) {
|
||||||
$state = $this->bus->dispatch(
|
$state = $this->bus->dispatch(
|
||||||
new ReadDiscussion($discussionId, $actor, $readNumber)
|
new ReadDiscussion($discussionId, $actor, $readNumber)
|
||||||
);
|
);
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Api\Controller;
|
||||||
|
|
||||||
use Flarum\Extension\ExtensionManager;
|
use Flarum\Extension\ExtensionManager;
|
||||||
use Flarum\User\AssertPermissionTrait;
|
use Flarum\User\AssertPermissionTrait;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
@ -42,8 +43,8 @@ class UpdateExtensionController implements RequestHandlerInterface
|
||||||
{
|
{
|
||||||
$this->assertAdmin($request->getAttribute('actor'));
|
$this->assertAdmin($request->getAttribute('actor'));
|
||||||
|
|
||||||
$enabled = array_get($request->getParsedBody(), 'enabled');
|
$enabled = Arr::get($request->getParsedBody(), 'enabled');
|
||||||
$name = array_get($request->getQueryParams(), 'name');
|
$name = Arr::get($request->getQueryParams(), 'name');
|
||||||
|
|
||||||
if ($enabled === true) {
|
if ($enabled === true) {
|
||||||
$this->extensions->enable($name);
|
$this->extensions->enable($name);
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
|
||||||
use Flarum\Api\Serializer\GroupSerializer;
|
use Flarum\Api\Serializer\GroupSerializer;
|
||||||
use Flarum\Group\Command\EditGroup;
|
use Flarum\Group\Command\EditGroup;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -42,9 +43,9 @@ class UpdateGroupController extends AbstractShowController
|
||||||
*/
|
*/
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
$id = array_get($request->getQueryParams(), 'id');
|
$id = Arr::get($request->getQueryParams(), 'id');
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
$data = array_get($request->getParsedBody(), 'data', []);
|
$data = Arr::get($request->getParsedBody(), 'data', []);
|
||||||
|
|
||||||
return $this->bus->dispatch(
|
return $this->bus->dispatch(
|
||||||
new EditGroup($id, $actor, $data)
|
new EditGroup($id, $actor, $data)
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
|
||||||
use Flarum\Api\Serializer\NotificationSerializer;
|
use Flarum\Api\Serializer\NotificationSerializer;
|
||||||
use Flarum\Notification\Command\ReadNotification;
|
use Flarum\Notification\Command\ReadNotification;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -42,7 +43,7 @@ class UpdateNotificationController extends AbstractShowController
|
||||||
*/
|
*/
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
$id = array_get($request->getQueryParams(), 'id');
|
$id = Arr::get($request->getQueryParams(), 'id');
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
|
|
||||||
return $this->bus->dispatch(
|
return $this->bus->dispatch(
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
|
||||||
use Flarum\Api\Serializer\PostSerializer;
|
use Flarum\Api\Serializer\PostSerializer;
|
||||||
use Flarum\Post\Command\EditPost;
|
use Flarum\Post\Command\EditPost;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -50,9 +51,9 @@ class UpdatePostController extends AbstractShowController
|
||||||
*/
|
*/
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
$id = array_get($request->getQueryParams(), 'id');
|
$id = Arr::get($request->getQueryParams(), 'id');
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
$data = array_get($request->getParsedBody(), 'data', []);
|
$data = Arr::get($request->getParsedBody(), 'data', []);
|
||||||
|
|
||||||
return $this->bus->dispatch(
|
return $this->bus->dispatch(
|
||||||
new EditPost($id, $actor, $data)
|
new EditPost($id, $actor, $data)
|
||||||
|
|
|
@ -16,6 +16,7 @@ use Flarum\Api\Serializer\UserSerializer;
|
||||||
use Flarum\User\Command\EditUser;
|
use Flarum\User\Command\EditUser;
|
||||||
use Flarum\User\Exception\PermissionDeniedException;
|
use Flarum\User\Exception\PermissionDeniedException;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -49,9 +50,9 @@ class UpdateUserController extends AbstractShowController
|
||||||
*/
|
*/
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
$id = array_get($request->getQueryParams(), 'id');
|
$id = Arr::get($request->getQueryParams(), 'id');
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
$data = array_get($request->getParsedBody(), 'data', []);
|
$data = Arr::get($request->getParsedBody(), 'data', []);
|
||||||
|
|
||||||
if ($actor->id == $id) {
|
if ($actor->id == $id) {
|
||||||
$this->serializer = CurrentUserSerializer::class;
|
$this->serializer = CurrentUserSerializer::class;
|
||||||
|
@ -60,7 +61,7 @@ class UpdateUserController extends AbstractShowController
|
||||||
// Require the user's current password if they are attempting to change
|
// Require the user's current password if they are attempting to change
|
||||||
// their own email address.
|
// their own email address.
|
||||||
if (isset($data['attributes']['email']) && $actor->id == $id) {
|
if (isset($data['attributes']['email']) && $actor->id == $id) {
|
||||||
$password = array_get($request->getParsedBody(), 'meta.password');
|
$password = Arr::get($request->getParsedBody(), 'meta.password');
|
||||||
|
|
||||||
if (! $actor->checkPassword($password)) {
|
if (! $actor->checkPassword($password)) {
|
||||||
throw new PermissionDeniedException;
|
throw new PermissionDeniedException;
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
|
||||||
use Flarum\Api\Serializer\UserSerializer;
|
use Flarum\Api\Serializer\UserSerializer;
|
||||||
use Flarum\User\Command\UploadAvatar;
|
use Flarum\User\Command\UploadAvatar;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Tobscure\JsonApi\Document;
|
use Tobscure\JsonApi\Document;
|
||||||
|
|
||||||
|
@ -42,9 +43,9 @@ class UploadAvatarController extends AbstractShowController
|
||||||
*/
|
*/
|
||||||
protected function data(ServerRequestInterface $request, Document $document)
|
protected function data(ServerRequestInterface $request, Document $document)
|
||||||
{
|
{
|
||||||
$id = array_get($request->getQueryParams(), 'id');
|
$id = Arr::get($request->getQueryParams(), 'id');
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
$file = array_get($request->getUploadedFiles(), 'avatar');
|
$file = Arr::get($request->getUploadedFiles(), 'avatar');
|
||||||
|
|
||||||
return $this->bus->dispatch(
|
return $this->bus->dispatch(
|
||||||
new UploadAvatar($id, $file, $actor)
|
new UploadAvatar($id, $file, $actor)
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
|
||||||
use Flarum\Foundation\Application;
|
use Flarum\Foundation\Application;
|
||||||
use Flarum\Settings\SettingsRepositoryInterface;
|
use Flarum\Settings\SettingsRepositoryInterface;
|
||||||
use Flarum\User\AssertPermissionTrait;
|
use Flarum\User\AssertPermissionTrait;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Intervention\Image\ImageManager;
|
use Intervention\Image\ImageManager;
|
||||||
use League\Flysystem\Adapter\Local;
|
use League\Flysystem\Adapter\Local;
|
||||||
|
@ -52,7 +53,7 @@ class UploadFaviconController extends ShowForumController
|
||||||
{
|
{
|
||||||
$this->assertAdmin($request->getAttribute('actor'));
|
$this->assertAdmin($request->getAttribute('actor'));
|
||||||
|
|
||||||
$file = array_get($request->getUploadedFiles(), 'favicon');
|
$file = Arr::get($request->getUploadedFiles(), 'favicon');
|
||||||
|
|
||||||
$tmpFile = tempnam($this->app->storagePath().'/tmp', 'favicon');
|
$tmpFile = tempnam($this->app->storagePath().'/tmp', 'favicon');
|
||||||
$file->moveTo($tmpFile);
|
$file->moveTo($tmpFile);
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Api\Controller;
|
||||||
use Flarum\Foundation\Application;
|
use Flarum\Foundation\Application;
|
||||||
use Flarum\Settings\SettingsRepositoryInterface;
|
use Flarum\Settings\SettingsRepositoryInterface;
|
||||||
use Flarum\User\AssertPermissionTrait;
|
use Flarum\User\AssertPermissionTrait;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use Intervention\Image\ImageManager;
|
use Intervention\Image\ImageManager;
|
||||||
use League\Flysystem\Adapter\Local;
|
use League\Flysystem\Adapter\Local;
|
||||||
|
@ -52,7 +53,7 @@ class UploadLogoController extends ShowForumController
|
||||||
{
|
{
|
||||||
$this->assertAdmin($request->getAttribute('actor'));
|
$this->assertAdmin($request->getAttribute('actor'));
|
||||||
|
|
||||||
$file = array_get($request->getUploadedFiles(), 'logo');
|
$file = Arr::get($request->getUploadedFiles(), 'logo');
|
||||||
|
|
||||||
$tmpFile = tempnam($this->app->storagePath().'/tmp', 'logo');
|
$tmpFile = tempnam($this->app->storagePath().'/tmp', 'logo');
|
||||||
$file->moveTo($tmpFile);
|
$file->moveTo($tmpFile);
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
namespace Flarum\Api\Event;
|
namespace Flarum\Api\Event;
|
||||||
|
|
||||||
use Flarum\Api\Controller\AbstractSerializeController;
|
use Flarum\Api\Controller\AbstractSerializeController;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class WillGetData
|
class WillGetData
|
||||||
{
|
{
|
||||||
|
@ -64,7 +65,7 @@ class WillGetData
|
||||||
*/
|
*/
|
||||||
public function removeInclude($name)
|
public function removeInclude($name)
|
||||||
{
|
{
|
||||||
array_forget($this->controller->include, $name);
|
Arr::forget($this->controller->include, $name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -84,7 +85,7 @@ class WillGetData
|
||||||
*/
|
*/
|
||||||
public function removeOptionalInclude($name)
|
public function removeOptionalInclude($name)
|
||||||
{
|
{
|
||||||
array_forget($this->controller->optionalInclude, $name);
|
Arr::forget($this->controller->optionalInclude, $name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -124,7 +125,7 @@ class WillGetData
|
||||||
*/
|
*/
|
||||||
public function removeSortField($field)
|
public function removeSortField($field)
|
||||||
{
|
{
|
||||||
array_forget($this->controller->sortFields, $field);
|
Arr::forget($this->controller->sortFields, $field);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -17,6 +17,7 @@ use Flarum\Discussion\Event\Saving;
|
||||||
use Flarum\Foundation\DispatchEventsTrait;
|
use Flarum\Foundation\DispatchEventsTrait;
|
||||||
use Flarum\User\AssertPermissionTrait;
|
use Flarum\User\AssertPermissionTrait;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class EditDiscussionHandler
|
class EditDiscussionHandler
|
||||||
{
|
{
|
||||||
|
@ -54,7 +55,7 @@ class EditDiscussionHandler
|
||||||
{
|
{
|
||||||
$actor = $command->actor;
|
$actor = $command->actor;
|
||||||
$data = $command->data;
|
$data = $command->data;
|
||||||
$attributes = array_get($data, 'attributes', []);
|
$attributes = Arr::get($data, 'attributes', []);
|
||||||
|
|
||||||
$discussion = $this->discussions->findOrFail($command->discussionId, $actor);
|
$discussion = $this->discussions->findOrFail($command->discussionId, $actor);
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ use Flarum\Post\Command\PostReply;
|
||||||
use Flarum\User\AssertPermissionTrait;
|
use Flarum\User\AssertPermissionTrait;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher as BusDispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher as BusDispatcher;
|
||||||
use Illuminate\Contracts\Events\Dispatcher as EventDispatcher;
|
use Illuminate\Contracts\Events\Dispatcher as EventDispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class StartDiscussionHandler
|
class StartDiscussionHandler
|
||||||
{
|
{
|
||||||
|
@ -66,7 +67,7 @@ class StartDiscussionHandler
|
||||||
// an opportunity to alter the discussion entity based on data in the
|
// an opportunity to alter the discussion entity based on data in the
|
||||||
// command they may have passed through in the controller.
|
// command they may have passed through in the controller.
|
||||||
$discussion = Discussion::start(
|
$discussion = Discussion::start(
|
||||||
array_get($data, 'attributes.title'),
|
Arr::get($data, 'attributes.title'),
|
||||||
$actor
|
$actor
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Event;
|
||||||
|
|
||||||
use DirectoryIterator;
|
use DirectoryIterator;
|
||||||
use Flarum\Locale\LocaleManager;
|
use Flarum\Locale\LocaleManager;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use RuntimeException;
|
use RuntimeException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -49,8 +50,8 @@ class ConfigureLocales
|
||||||
throw new RuntimeException("Error parsing composer.json in $name: ".json_last_error_msg());
|
throw new RuntimeException("Error parsing composer.json in $name: ".json_last_error_msg());
|
||||||
}
|
}
|
||||||
|
|
||||||
$locale = array_get($json, 'extra.flarum-locale.code');
|
$locale = Arr::get($json, 'extra.flarum-locale.code');
|
||||||
$title = array_get($json, 'extra.flarum-locale.title', $title);
|
$title = Arr::get($json, 'extra.flarum-locale.title', $title);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! isset($locale)) {
|
if (! isset($locale)) {
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Extension;
|
||||||
use Flarum\Extension\Event\Disabling;
|
use Flarum\Extension\Event\Disabling;
|
||||||
use Flarum\Http\Exception\ForbiddenException;
|
use Flarum\Http\Exception\ForbiddenException;
|
||||||
use Flarum\Settings\SettingsRepositoryInterface;
|
use Flarum\Settings\SettingsRepositoryInterface;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class DefaultLanguagePackGuard
|
class DefaultLanguagePackGuard
|
||||||
{
|
{
|
||||||
|
@ -34,7 +35,7 @@ class DefaultLanguagePackGuard
|
||||||
}
|
}
|
||||||
|
|
||||||
$defaultLocale = $this->settings->get('default_locale');
|
$defaultLocale = $this->settings->get('default_locale');
|
||||||
$locale = array_get($event->extension->extra, 'flarum-locale.code');
|
$locale = Arr::get($event->extension->extra, 'flarum-locale.code');
|
||||||
|
|
||||||
if ($locale === $defaultLocale) {
|
if ($locale === $defaultLocale) {
|
||||||
throw new ForbiddenException('You cannot disable the default language pack!');
|
throw new ForbiddenException('You cannot disable the default language pack!');
|
||||||
|
|
|
@ -15,6 +15,7 @@ use Flarum\Http\Rememberer;
|
||||||
use Flarum\User\LoginProvider;
|
use Flarum\User\LoginProvider;
|
||||||
use Flarum\User\RegistrationToken;
|
use Flarum\User\RegistrationToken;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Zend\Diactoros\Response\HtmlResponse;
|
use Zend\Diactoros\Response\HtmlResponse;
|
||||||
|
|
||||||
|
@ -43,7 +44,7 @@ class ResponseFactory
|
||||||
|
|
||||||
$provided = $registration->getProvided();
|
$provided = $registration->getProvided();
|
||||||
|
|
||||||
if (! empty($provided['email']) && $user = User::where(array_only($provided, 'email'))->first()) {
|
if (! empty($provided['email']) && $user = User::where(Arr::only($provided, 'email'))->first()) {
|
||||||
$user->loginProviders()->create(compact('provider', 'identifier'));
|
$user->loginProviders()->create(compact('provider', 'identifier'));
|
||||||
|
|
||||||
return $this->makeLoggedInResponse($user);
|
return $this->makeLoggedInResponse($user);
|
||||||
|
|
|
@ -17,6 +17,7 @@ use Flarum\Http\Exception\RouteNotFoundException;
|
||||||
use Flarum\Http\UrlGenerator;
|
use Flarum\Http\UrlGenerator;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
use Illuminate\Contracts\View\Factory;
|
use Illuminate\Contracts\View\Factory;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
|
|
||||||
class Discussion
|
class Discussion
|
||||||
|
@ -51,12 +52,12 @@ class Discussion
|
||||||
public function __invoke(Document $document, Request $request)
|
public function __invoke(Document $document, Request $request)
|
||||||
{
|
{
|
||||||
$queryParams = $request->getQueryParams();
|
$queryParams = $request->getQueryParams();
|
||||||
$page = max(1, array_get($queryParams, 'page'));
|
$page = max(1, Arr::get($queryParams, 'page'));
|
||||||
|
|
||||||
$params = [
|
$params = [
|
||||||
'id' => (int) array_get($queryParams, 'id'),
|
'id' => (int) Arr::get($queryParams, 'id'),
|
||||||
'page' => [
|
'page' => [
|
||||||
'near' => array_get($queryParams, 'near'),
|
'near' => Arr::get($queryParams, 'near'),
|
||||||
'offset' => ($page - 1) * 20,
|
'offset' => ($page - 1) * 20,
|
||||||
'limit' => 20
|
'limit' => 20
|
||||||
]
|
]
|
||||||
|
@ -65,7 +66,7 @@ class Discussion
|
||||||
$apiDocument = $this->getApiDocument($request->getAttribute('actor'), $params);
|
$apiDocument = $this->getApiDocument($request->getAttribute('actor'), $params);
|
||||||
|
|
||||||
$getResource = function ($link) use ($apiDocument) {
|
$getResource = function ($link) use ($apiDocument) {
|
||||||
return array_first($apiDocument->included, function ($value) use ($link) {
|
return Arr::first($apiDocument->included, function ($value) use ($link) {
|
||||||
return $value->type === $link->type && $value->id === $link->id;
|
return $value->type === $link->type && $value->id === $link->id;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -16,6 +16,7 @@ use Flarum\Api\Controller\ListDiscussionsController;
|
||||||
use Flarum\Frontend\Document;
|
use Flarum\Frontend\Document;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
use Illuminate\Contracts\View\Factory;
|
use Illuminate\Contracts\View\Factory;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
|
|
||||||
class Index
|
class Index
|
||||||
|
@ -44,9 +45,9 @@ class Index
|
||||||
{
|
{
|
||||||
$queryParams = $request->getQueryParams();
|
$queryParams = $request->getQueryParams();
|
||||||
|
|
||||||
$sort = array_pull($queryParams, 'sort');
|
$sort = Arr::pull($queryParams, 'sort');
|
||||||
$q = array_pull($queryParams, 'q');
|
$q = Arr::pull($queryParams, 'q');
|
||||||
$page = array_pull($queryParams, 'page', 1);
|
$page = Arr::pull($queryParams, 'page', 1);
|
||||||
|
|
||||||
$sortMap = $this->getSortMap();
|
$sortMap = $this->getSortMap();
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ use Flarum\Http\SessionAuthenticator;
|
||||||
use Flarum\User\Command\ConfirmEmail;
|
use Flarum\User\Command\ConfirmEmail;
|
||||||
use Flarum\User\Exception\InvalidConfirmationTokenException;
|
use Flarum\User\Exception\InvalidConfirmationTokenException;
|
||||||
use Illuminate\Contracts\Bus\Dispatcher;
|
use Illuminate\Contracts\Bus\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
@ -58,7 +59,7 @@ class ConfirmEmailController implements RequestHandlerInterface
|
||||||
public function handle(Request $request): ResponseInterface
|
public function handle(Request $request): ResponseInterface
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$token = array_get($request->getQueryParams(), 'token');
|
$token = Arr::get($request->getQueryParams(), 'token');
|
||||||
|
|
||||||
$user = $this->bus->dispatch(
|
$user = $this->bus->dispatch(
|
||||||
new ConfirmEmail($token)
|
new ConfirmEmail($token)
|
||||||
|
|
|
@ -18,6 +18,7 @@ use Flarum\Http\Rememberer;
|
||||||
use Flarum\Http\SessionAuthenticator;
|
use Flarum\Http\SessionAuthenticator;
|
||||||
use Flarum\User\Event\LoggedIn;
|
use Flarum\User\Event\LoggedIn;
|
||||||
use Flarum\User\UserRepository;
|
use Flarum\User\UserRepository;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
@ -65,7 +66,7 @@ class LogInController implements RequestHandlerInterface
|
||||||
{
|
{
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
$body = $request->getParsedBody();
|
$body = $request->getParsedBody();
|
||||||
$params = array_only($body, ['identification', 'password']);
|
$params = Arr::only($body, ['identification', 'password']);
|
||||||
|
|
||||||
$response = $this->apiClient->send(CreateTokenController::class, $actor, [], $params);
|
$response = $this->apiClient->send(CreateTokenController::class, $actor, [], $params);
|
||||||
|
|
||||||
|
@ -79,7 +80,7 @@ class LogInController implements RequestHandlerInterface
|
||||||
|
|
||||||
event(new LoggedIn($this->users->findOrFail($data->userId), $token));
|
event(new LoggedIn($this->users->findOrFail($data->userId), $token));
|
||||||
|
|
||||||
if (array_get($body, 'remember')) {
|
if (Arr::get($body, 'remember')) {
|
||||||
$response = $this->rememberer->remember($response, $token);
|
$response = $this->rememberer->remember($response, $token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ use Flarum\User\AssertPermissionTrait;
|
||||||
use Flarum\User\Event\LoggedOut;
|
use Flarum\User\Event\LoggedOut;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
use Illuminate\Contracts\View\Factory;
|
use Illuminate\Contracts\View\Factory;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
@ -94,7 +95,7 @@ class LogOutController implements RequestHandlerInterface
|
||||||
$session = $request->getAttribute('session');
|
$session = $request->getAttribute('session');
|
||||||
$actor = $request->getAttribute('actor');
|
$actor = $request->getAttribute('actor');
|
||||||
|
|
||||||
$url = array_get($request->getQueryParams(), 'return', $this->app->url());
|
$url = Arr::get($request->getQueryParams(), 'return', $this->app->url());
|
||||||
|
|
||||||
// If there is no user logged in, return to the index.
|
// If there is no user logged in, return to the index.
|
||||||
if ($actor->isGuest()) {
|
if ($actor->isGuest()) {
|
||||||
|
@ -105,8 +106,8 @@ class LogOutController implements RequestHandlerInterface
|
||||||
// allow the user to press a button to complete the log out process.
|
// allow the user to press a button to complete the log out process.
|
||||||
$csrfToken = $session->token();
|
$csrfToken = $session->token();
|
||||||
|
|
||||||
if (array_get($request->getQueryParams(), 'token') !== $csrfToken) {
|
if (Arr::get($request->getQueryParams(), 'token') !== $csrfToken) {
|
||||||
$return = array_get($request->getQueryParams(), 'return');
|
$return = Arr::get($request->getQueryParams(), 'return');
|
||||||
|
|
||||||
$view = $this->view->make('flarum.forum::log-out')
|
$view = $this->view->make('flarum.forum::log-out')
|
||||||
->with('url', $this->url->to('forum')->route('logout').'?token='.$csrfToken.($return ? '&return='.urlencode($return) : ''));
|
->with('url', $this->url->to('forum')->route('logout').'?token='.$csrfToken.($return ? '&return='.urlencode($return) : ''));
|
||||||
|
|
|
@ -16,6 +16,7 @@ use Flarum\Http\Controller\AbstractHtmlController;
|
||||||
use Flarum\User\Exception\InvalidConfirmationTokenException;
|
use Flarum\User\Exception\InvalidConfirmationTokenException;
|
||||||
use Flarum\User\PasswordToken;
|
use Flarum\User\PasswordToken;
|
||||||
use Illuminate\Contracts\View\Factory;
|
use Illuminate\Contracts\View\Factory;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
|
|
||||||
class ResetPasswordController extends AbstractHtmlController
|
class ResetPasswordController extends AbstractHtmlController
|
||||||
|
@ -40,7 +41,7 @@ class ResetPasswordController extends AbstractHtmlController
|
||||||
*/
|
*/
|
||||||
public function render(Request $request)
|
public function render(Request $request)
|
||||||
{
|
{
|
||||||
$token = array_get($request->getQueryParams(), 'token');
|
$token = Arr::get($request->getQueryParams(), 'token');
|
||||||
|
|
||||||
$token = PasswordToken::findOrFail($token);
|
$token = PasswordToken::findOrFail($token);
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ use Flarum\User\PasswordToken;
|
||||||
use Flarum\User\UserValidator;
|
use Flarum\User\UserValidator;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
use Illuminate\Contracts\Validation\Factory;
|
use Illuminate\Contracts\Validation\Factory;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Illuminate\Support\MessageBag;
|
use Illuminate\Support\MessageBag;
|
||||||
use Illuminate\Validation\ValidationException;
|
use Illuminate\Validation\ValidationException;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
|
@ -72,9 +73,9 @@ class SavePasswordController implements RequestHandlerInterface
|
||||||
{
|
{
|
||||||
$input = $request->getParsedBody();
|
$input = $request->getParsedBody();
|
||||||
|
|
||||||
$token = PasswordToken::findOrFail(array_get($input, 'passwordToken'));
|
$token = PasswordToken::findOrFail(Arr::get($input, 'passwordToken'));
|
||||||
|
|
||||||
$password = array_get($input, 'password');
|
$password = Arr::get($input, 'password');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// todo: probably shouldn't use the user validator for this,
|
// todo: probably shouldn't use the user validator for this,
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Foundation;
|
||||||
|
|
||||||
use Flarum\Foundation\Event\Validating;
|
use Flarum\Foundation\Event\Validating;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Illuminate\Validation\Factory;
|
use Illuminate\Validation\Factory;
|
||||||
use Illuminate\Validation\ValidationException;
|
use Illuminate\Validation\ValidationException;
|
||||||
use Symfony\Component\Translation\TranslatorInterface;
|
use Symfony\Component\Translation\TranslatorInterface;
|
||||||
|
@ -89,7 +90,7 @@ abstract class AbstractValidator
|
||||||
*/
|
*/
|
||||||
protected function makeValidator(array $attributes)
|
protected function makeValidator(array $attributes)
|
||||||
{
|
{
|
||||||
$rules = array_only($this->getRules(), array_keys($attributes));
|
$rules = Arr::only($this->getRules(), array_keys($attributes));
|
||||||
|
|
||||||
$validator = $this->validator->make($attributes, $rules, $this->getMessages());
|
$validator = $this->validator->make($attributes, $rules, $this->getMessages());
|
||||||
|
|
||||||
|
|
|
@ -127,7 +127,7 @@ class Application extends Container implements ApplicationContract
|
||||||
*/
|
*/
|
||||||
public function config($key, $default = null)
|
public function config($key, $default = null)
|
||||||
{
|
{
|
||||||
return array_get($this->make('flarum.config'), $key, $default);
|
return Arr::get($this->make('flarum.config'), $key, $default);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -149,7 +149,7 @@ class Application extends Container implements ApplicationContract
|
||||||
public function url($path = null)
|
public function url($path = null)
|
||||||
{
|
{
|
||||||
$config = $this->make('flarum.config');
|
$config = $this->make('flarum.config');
|
||||||
$url = array_get($config, 'url', array_get($_SERVER, 'REQUEST_URI'));
|
$url = Arr::get($config, 'url', Arr::get($_SERVER, 'REQUEST_URI'));
|
||||||
|
|
||||||
if (is_array($url)) {
|
if (is_array($url)) {
|
||||||
if (isset($url[$path])) {
|
if (isset($url[$path])) {
|
||||||
|
@ -160,7 +160,7 @@ class Application extends Container implements ApplicationContract
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($path) {
|
if ($path) {
|
||||||
$url .= '/'.array_get($config, "paths.$path", $path);
|
$url .= '/'.Arr::get($config, "paths.$path", $path);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $url;
|
return $url;
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
namespace Flarum\Foundation;
|
namespace Flarum\Foundation;
|
||||||
|
|
||||||
|
use Illuminate\Support\Str;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
@ -38,7 +39,7 @@ class MaintenanceModeHandler implements RequestHandlerInterface
|
||||||
|
|
||||||
private function isApiRequest(ServerRequestInterface $request): bool
|
private function isApiRequest(ServerRequestInterface $request): bool
|
||||||
{
|
{
|
||||||
return str_contains(
|
return Str::contains(
|
||||||
$request->getHeaderLine('Accept'),
|
$request->getHeaderLine('Accept'),
|
||||||
'application/vnd.api+json'
|
'application/vnd.api+json'
|
||||||
);
|
);
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Frontend;
|
||||||
|
|
||||||
use Flarum\Frontend\Compiler\Source\SourceCollector;
|
use Flarum\Frontend\Compiler\Source\SourceCollector;
|
||||||
use Flarum\Locale\LocaleManager;
|
use Flarum\Locale\LocaleManager;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class AddTranslations
|
class AddTranslations
|
||||||
{
|
{
|
||||||
|
@ -56,7 +57,7 @@ class AddTranslations
|
||||||
{
|
{
|
||||||
$translations = $this->locales->getTranslator()->getCatalogue($locale)->all('messages');
|
$translations = $this->locales->getTranslator()->getCatalogue($locale)->all('messages');
|
||||||
|
|
||||||
return array_only(
|
return Arr::only(
|
||||||
$translations,
|
$translations,
|
||||||
array_filter(array_keys($translations), $this->filter)
|
array_filter(array_keys($translations), $this->filter)
|
||||||
);
|
);
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Frontend\Compiler;
|
||||||
use Flarum\Frontend\Compiler\Source\SourceCollector;
|
use Flarum\Frontend\Compiler\Source\SourceCollector;
|
||||||
use Flarum\Frontend\Compiler\Source\SourceInterface;
|
use Flarum\Frontend\Compiler\Source\SourceInterface;
|
||||||
use Illuminate\Contracts\Filesystem\Filesystem;
|
use Illuminate\Contracts\Filesystem\Filesystem;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class RevisionCompiler implements CompilerInterface
|
class RevisionCompiler implements CompilerInterface
|
||||||
{
|
{
|
||||||
|
@ -202,7 +203,7 @@ class RevisionCompiler implements CompilerInterface
|
||||||
if ($this->assetsDir->has(static::REV_MANIFEST)) {
|
if ($this->assetsDir->has(static::REV_MANIFEST)) {
|
||||||
$manifest = json_decode($this->assetsDir->read(static::REV_MANIFEST), true);
|
$manifest = json_decode($this->assetsDir->read(static::REV_MANIFEST), true);
|
||||||
|
|
||||||
return array_get($manifest, $this->filename);
|
return Arr::get($manifest, $this->filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
namespace Flarum\Frontend\Content;
|
namespace Flarum\Frontend\Content;
|
||||||
|
|
||||||
use Flarum\Frontend\Document;
|
use Flarum\Frontend\Document;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
|
|
||||||
class Meta
|
class Meta
|
||||||
|
@ -28,8 +29,8 @@ class Meta
|
||||||
|
|
||||||
$meta = [
|
$meta = [
|
||||||
'viewport' => 'width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1',
|
'viewport' => 'width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1',
|
||||||
'description' => array_get($forumApiDocument, 'data.attributes.description'),
|
'description' => Arr::get($forumApiDocument, 'data.attributes.description'),
|
||||||
'theme-color' => array_get($forumApiDocument, 'data.attributes.themePrimaryColor')
|
'theme-color' => Arr::get($forumApiDocument, 'data.attributes.themePrimaryColor')
|
||||||
];
|
];
|
||||||
|
|
||||||
return $meta;
|
return $meta;
|
||||||
|
@ -39,7 +40,7 @@ class Meta
|
||||||
{
|
{
|
||||||
$head = [];
|
$head = [];
|
||||||
|
|
||||||
if ($faviconUrl = array_get($document->getForumApiDocument(), 'data.attributes.faviconUrl')) {
|
if ($faviconUrl = Arr::get($document->getForumApiDocument(), 'data.attributes.faviconUrl')) {
|
||||||
$head['favicon'] = '<link rel="shortcut icon" href="'.e($faviconUrl).'">';
|
$head['favicon'] = '<link rel="shortcut icon" href="'.e($faviconUrl).'">';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Frontend;
|
||||||
use Illuminate\Contracts\Support\Renderable;
|
use Illuminate\Contracts\Support\Renderable;
|
||||||
use Illuminate\Contracts\View\Factory;
|
use Illuminate\Contracts\View\Factory;
|
||||||
use Illuminate\Contracts\View\View;
|
use Illuminate\Contracts\View\View;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A view which renders a HTML skeleton for Flarum's frontend app.
|
* A view which renders a HTML skeleton for Flarum's frontend app.
|
||||||
|
@ -147,7 +148,7 @@ class Document implements Renderable
|
||||||
*/
|
*/
|
||||||
public function render(): string
|
public function render(): string
|
||||||
{
|
{
|
||||||
$this->view->share('forum', array_get($this->forumApiDocument, 'data.attributes'));
|
$this->view->share('forum', Arr::get($this->forumApiDocument, 'data.attributes'));
|
||||||
|
|
||||||
return $this->makeView()->render();
|
return $this->makeView()->render();
|
||||||
}
|
}
|
||||||
|
@ -174,7 +175,7 @@ class Document implements Renderable
|
||||||
*/
|
*/
|
||||||
protected function makeTitle(): string
|
protected function makeTitle(): string
|
||||||
{
|
{
|
||||||
return ($this->title ? $this->title.' - ' : '').array_get($this->forumApiDocument, 'data.attributes.title');
|
return ($this->title ? $this->title.' - ' : '').Arr::get($this->forumApiDocument, 'data.attributes.title');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -17,6 +17,7 @@ use Flarum\Group\Group;
|
||||||
use Flarum\Group\GroupValidator;
|
use Flarum\Group\GroupValidator;
|
||||||
use Flarum\User\AssertPermissionTrait;
|
use Flarum\User\AssertPermissionTrait;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class CreateGroupHandler
|
class CreateGroupHandler
|
||||||
{
|
{
|
||||||
|
@ -51,10 +52,10 @@ class CreateGroupHandler
|
||||||
$this->assertCan($actor, 'createGroup');
|
$this->assertCan($actor, 'createGroup');
|
||||||
|
|
||||||
$group = Group::build(
|
$group = Group::build(
|
||||||
array_get($data, 'attributes.nameSingular'),
|
Arr::get($data, 'attributes.nameSingular'),
|
||||||
array_get($data, 'attributes.namePlural'),
|
Arr::get($data, 'attributes.namePlural'),
|
||||||
array_get($data, 'attributes.color'),
|
Arr::get($data, 'attributes.color'),
|
||||||
array_get($data, 'attributes.icon')
|
Arr::get($data, 'attributes.icon')
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->events->dispatch(
|
$this->events->dispatch(
|
||||||
|
|
|
@ -19,6 +19,7 @@ use Flarum\Group\GroupValidator;
|
||||||
use Flarum\User\AssertPermissionTrait;
|
use Flarum\User\AssertPermissionTrait;
|
||||||
use Flarum\User\Exception\PermissionDeniedException;
|
use Flarum\User\Exception\PermissionDeniedException;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class EditGroupHandler
|
class EditGroupHandler
|
||||||
{
|
{
|
||||||
|
@ -61,7 +62,7 @@ class EditGroupHandler
|
||||||
|
|
||||||
$this->assertCan($actor, 'edit', $group);
|
$this->assertCan($actor, 'edit', $group);
|
||||||
|
|
||||||
$attributes = array_get($data, 'attributes', []);
|
$attributes = Arr::get($data, 'attributes', []);
|
||||||
|
|
||||||
if (isset($attributes['nameSingular']) && isset($attributes['namePlural'])) {
|
if (isset($attributes['nameSingular']) && isset($attributes['namePlural'])) {
|
||||||
$group->rename($attributes['nameSingular'], $attributes['namePlural']);
|
$group->rename($attributes['nameSingular'], $attributes['namePlural']);
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Http;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Flarum\Database\AbstractModel;
|
use Flarum\Database\AbstractModel;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property string $token
|
* @property string $token
|
||||||
|
@ -47,7 +48,7 @@ class AccessToken extends AbstractModel
|
||||||
{
|
{
|
||||||
$token = new static;
|
$token = new static;
|
||||||
|
|
||||||
$token->token = str_random(40);
|
$token->token = Str::random(40);
|
||||||
$token->user_id = $userId;
|
$token->user_id = $userId;
|
||||||
$token->created_at = Carbon::now();
|
$token->created_at = Carbon::now();
|
||||||
$token->last_activity_at = Carbon::now();
|
$token->last_activity_at = Carbon::now();
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Http;
|
||||||
|
|
||||||
use Dflydev\FigCookies\SetCookie;
|
use Dflydev\FigCookies\SetCookie;
|
||||||
use Flarum\Foundation\Application;
|
use Flarum\Foundation\Application;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class CookieFactory
|
class CookieFactory
|
||||||
{
|
{
|
||||||
|
@ -54,9 +55,9 @@ class CookieFactory
|
||||||
|
|
||||||
// Get the cookie settings from the config or use the default values
|
// Get the cookie settings from the config or use the default values
|
||||||
$this->prefix = $app->config('cookie.name', 'flarum');
|
$this->prefix = $app->config('cookie.name', 'flarum');
|
||||||
$this->path = $app->config('cookie.path', array_get($url, 'path') ?: '/');
|
$this->path = $app->config('cookie.path', Arr::get($url, 'path') ?: '/');
|
||||||
$this->domain = $app->config('cookie.domain');
|
$this->domain = $app->config('cookie.domain');
|
||||||
$this->secure = $app->config('cookie.secure', array_get($url, 'scheme') === 'https');
|
$this->secure = $app->config('cookie.secure', Arr::get($url, 'scheme') === 'https');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Http\Middleware;
|
||||||
use Flarum\Api\ApiKey;
|
use Flarum\Api\ApiKey;
|
||||||
use Flarum\Http\AccessToken;
|
use Flarum\Http\AccessToken;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
use Psr\Http\Message\ResponseInterface as Response;
|
use Psr\Http\Message\ResponseInterface as Response;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
use Psr\Http\Server\MiddlewareInterface as Middleware;
|
use Psr\Http\Server\MiddlewareInterface as Middleware;
|
||||||
|
@ -29,7 +30,7 @@ class AuthenticateWithHeader implements Middleware
|
||||||
|
|
||||||
$parts = explode(';', $headerLine);
|
$parts = explode(';', $headerLine);
|
||||||
|
|
||||||
if (isset($parts[0]) && starts_with($parts[0], self::TOKEN_PREFIX)) {
|
if (isset($parts[0]) && Str::startsWith($parts[0], self::TOKEN_PREFIX)) {
|
||||||
$id = substr($parts[0], strlen(self::TOKEN_PREFIX));
|
$id = substr($parts[0], strlen(self::TOKEN_PREFIX));
|
||||||
|
|
||||||
if ($key = ApiKey::where('key', $id)->first()) {
|
if ($key = ApiKey::where('key', $id)->first()) {
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
namespace Flarum\Http\Middleware;
|
namespace Flarum\Http\Middleware;
|
||||||
|
|
||||||
|
use Illuminate\Support\Str;
|
||||||
use Psr\Http\Message\ResponseInterface as Response;
|
use Psr\Http\Message\ResponseInterface as Response;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
use Psr\Http\Server\MiddlewareInterface as Middleware;
|
use Psr\Http\Server\MiddlewareInterface as Middleware;
|
||||||
|
@ -20,7 +21,7 @@ class ParseJsonBody implements Middleware
|
||||||
{
|
{
|
||||||
public function process(Request $request, Handler $handler): Response
|
public function process(Request $request, Handler $handler): Response
|
||||||
{
|
{
|
||||||
if (str_contains($request->getHeaderLine('content-type'), 'json')) {
|
if (Str::contains($request->getHeaderLine('content-type'), 'json')) {
|
||||||
$input = json_decode($request->getBody(), true);
|
$input = json_decode($request->getBody(), true);
|
||||||
|
|
||||||
$request = $request->withParsedBody($input ?: []);
|
$request = $request->withParsedBody($input ?: []);
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\Http\Middleware;
|
||||||
|
|
||||||
use Flarum\Http\AccessToken;
|
use Flarum\Http\AccessToken;
|
||||||
use Flarum\Http\CookieFactory;
|
use Flarum\Http\CookieFactory;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface as Response;
|
use Psr\Http\Message\ResponseInterface as Response;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
use Psr\Http\Server\MiddlewareInterface as Middleware;
|
use Psr\Http\Server\MiddlewareInterface as Middleware;
|
||||||
|
@ -35,7 +36,7 @@ class RememberFromCookie implements Middleware
|
||||||
|
|
||||||
public function process(Request $request, Handler $handler): Response
|
public function process(Request $request, Handler $handler): Response
|
||||||
{
|
{
|
||||||
$id = array_get($request->getCookieParams(), $this->cookie->getName('remember'));
|
$id = Arr::get($request->getCookieParams(), $this->cookie->getName('remember'));
|
||||||
|
|
||||||
if ($id) {
|
if ($id) {
|
||||||
$token = AccessToken::find($id);
|
$token = AccessToken::find($id);
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
namespace Flarum\Http\Middleware;
|
namespace Flarum\Http\Middleware;
|
||||||
|
|
||||||
use Flarum\Locale\LocaleManager;
|
use Flarum\Locale\LocaleManager;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface as Response;
|
use Psr\Http\Message\ResponseInterface as Response;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
use Psr\Http\Server\MiddlewareInterface as Middleware;
|
use Psr\Http\Server\MiddlewareInterface as Middleware;
|
||||||
|
@ -39,7 +40,7 @@ class SetLocale implements Middleware
|
||||||
if ($actor->exists) {
|
if ($actor->exists) {
|
||||||
$locale = $actor->getPreference('locale');
|
$locale = $actor->getPreference('locale');
|
||||||
} else {
|
} else {
|
||||||
$locale = array_get($request->getCookieParams(), 'locale');
|
$locale = Arr::get($request->getCookieParams(), 'locale');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($locale && $this->locales->hasLocale($locale)) {
|
if ($locale && $this->locales->hasLocale($locale)) {
|
||||||
|
|
|
@ -16,6 +16,7 @@ use Flarum\Http\CookieFactory;
|
||||||
use Illuminate\Contracts\Config\Repository as ConfigRepository;
|
use Illuminate\Contracts\Config\Repository as ConfigRepository;
|
||||||
use Illuminate\Contracts\Session\Session;
|
use Illuminate\Contracts\Session\Session;
|
||||||
use Illuminate\Session\Store;
|
use Illuminate\Session\Store;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface as Response;
|
use Psr\Http\Message\ResponseInterface as Response;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
use Psr\Http\Server\MiddlewareInterface as Middleware;
|
use Psr\Http\Server\MiddlewareInterface as Middleware;
|
||||||
|
@ -72,7 +73,7 @@ class StartSession implements Middleware
|
||||||
return new Store(
|
return new Store(
|
||||||
$this->config['cookie'],
|
$this->config['cookie'],
|
||||||
$this->handler,
|
$this->handler,
|
||||||
array_get($request->getCookieParams(), $this->cookie->getName($this->config['cookie']))
|
Arr::get($request->getCookieParams(), $this->cookie->getName($this->config['cookie']))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Install\Console;
|
||||||
use Flarum\Install\AdminUser;
|
use Flarum\Install\AdminUser;
|
||||||
use Flarum\Install\DatabaseConfig;
|
use Flarum\Install\DatabaseConfig;
|
||||||
use Flarum\Install\Installation;
|
use Flarum\Install\Installation;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
use Symfony\Component\Console\Helper\QuestionHelper;
|
use Symfony\Component\Console\Helper\QuestionHelper;
|
||||||
use Symfony\Component\Console\Input\InputInterface;
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
use Symfony\Component\Console\Output\OutputInterface;
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
@ -51,7 +52,7 @@ class UserDataProvider implements DataProviderInterface
|
||||||
$host = $this->ask('Database host:');
|
$host = $this->ask('Database host:');
|
||||||
$port = 3306;
|
$port = 3306;
|
||||||
|
|
||||||
if (str_contains($host, ':')) {
|
if (Str::contains($host, ':')) {
|
||||||
list($host, $port) = explode(':', $host, 2);
|
list($host, $port) = explode(':', $host, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,8 @@ use Flarum\Install\DatabaseConfig;
|
||||||
use Flarum\Install\Installation;
|
use Flarum\Install\Installation;
|
||||||
use Flarum\Install\StepFailed;
|
use Flarum\Install\StepFailed;
|
||||||
use Flarum\Install\ValidationFailed;
|
use Flarum\Install\ValidationFailed;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
@ -60,9 +62,9 @@ class InstallController implements RequestHandlerInterface
|
||||||
->databaseConfig($this->makeDatabaseConfig($input))
|
->databaseConfig($this->makeDatabaseConfig($input))
|
||||||
->adminUser($this->makeAdminUser($input))
|
->adminUser($this->makeAdminUser($input))
|
||||||
->settings([
|
->settings([
|
||||||
'forum_title' => array_get($input, 'forumTitle'),
|
'forum_title' => Arr::get($input, 'forumTitle'),
|
||||||
'mail_from' => 'noreply@'.preg_replace('/^www\./i', '', parse_url($baseUrl, PHP_URL_HOST)),
|
'mail_from' => 'noreply@'.preg_replace('/^www\./i', '', parse_url($baseUrl, PHP_URL_HOST)),
|
||||||
'welcome_title' => 'Welcome to '.array_get($input, 'forumTitle'),
|
'welcome_title' => 'Welcome to '.Arr::get($input, 'forumTitle'),
|
||||||
])
|
])
|
||||||
->build();
|
->build();
|
||||||
} catch (ValidationFailed $e) {
|
} catch (ValidationFailed $e) {
|
||||||
|
@ -83,10 +85,10 @@ class InstallController implements RequestHandlerInterface
|
||||||
|
|
||||||
private function makeDatabaseConfig(array $input): DatabaseConfig
|
private function makeDatabaseConfig(array $input): DatabaseConfig
|
||||||
{
|
{
|
||||||
$host = array_get($input, 'mysqlHost');
|
$host = Arr::get($input, 'mysqlHost');
|
||||||
$port = 3306;
|
$port = 3306;
|
||||||
|
|
||||||
if (str_contains($host, ':')) {
|
if (Str::contains($host, ':')) {
|
||||||
list($host, $port) = explode(':', $host, 2);
|
list($host, $port) = explode(':', $host, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,10 +96,10 @@ class InstallController implements RequestHandlerInterface
|
||||||
'mysql',
|
'mysql',
|
||||||
$host,
|
$host,
|
||||||
intval($port),
|
intval($port),
|
||||||
array_get($input, 'mysqlDatabase'),
|
Arr::get($input, 'mysqlDatabase'),
|
||||||
array_get($input, 'mysqlUsername'),
|
Arr::get($input, 'mysqlUsername'),
|
||||||
array_get($input, 'mysqlPassword'),
|
Arr::get($input, 'mysqlPassword'),
|
||||||
array_get($input, 'tablePrefix')
|
Arr::get($input, 'tablePrefix')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,16 +111,16 @@ class InstallController implements RequestHandlerInterface
|
||||||
private function makeAdminUser(array $input): AdminUser
|
private function makeAdminUser(array $input): AdminUser
|
||||||
{
|
{
|
||||||
return new AdminUser(
|
return new AdminUser(
|
||||||
array_get($input, 'adminUsername'),
|
Arr::get($input, 'adminUsername'),
|
||||||
$this->getConfirmedAdminPassword($input),
|
$this->getConfirmedAdminPassword($input),
|
||||||
array_get($input, 'adminEmail')
|
Arr::get($input, 'adminEmail')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getConfirmedAdminPassword(array $input): string
|
private function getConfirmedAdminPassword(array $input): string
|
||||||
{
|
{
|
||||||
$password = array_get($input, 'adminPassword');
|
$password = Arr::get($input, 'adminPassword');
|
||||||
$confirmation = array_get($input, 'adminPasswordConfirmation');
|
$confirmation = Arr::get($input, 'adminPasswordConfirmation');
|
||||||
|
|
||||||
if ($password !== $confirmation) {
|
if ($password !== $confirmation) {
|
||||||
throw new ValidationFailed('The admin password did not match its confirmation.');
|
throw new ValidationFailed('The admin password did not match its confirmation.');
|
||||||
|
|
|
@ -15,6 +15,7 @@ use Flarum\Install\DatabaseConfig;
|
||||||
use Flarum\Install\Step;
|
use Flarum\Install\Step;
|
||||||
use Illuminate\Database\Connectors\MySqlConnector;
|
use Illuminate\Database\Connectors\MySqlConnector;
|
||||||
use Illuminate\Database\MySqlConnection;
|
use Illuminate\Database\MySqlConnection;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
use RangeException;
|
use RangeException;
|
||||||
|
|
||||||
class ConnectToDatabase implements Step
|
class ConnectToDatabase implements Step
|
||||||
|
@ -40,7 +41,7 @@ class ConnectToDatabase implements Step
|
||||||
|
|
||||||
$version = $pdo->query('SELECT VERSION()')->fetchColumn();
|
$version = $pdo->query('SELECT VERSION()')->fetchColumn();
|
||||||
|
|
||||||
if (str_contains($version, 'MariaDB')) {
|
if (Str::contains($version, 'MariaDB')) {
|
||||||
if (version_compare($version, '10.0.5', '<')) {
|
if (version_compare($version, '10.0.5', '<')) {
|
||||||
throw new RangeException('MariaDB version too low. You need at least MariaDB 10.0.5');
|
throw new RangeException('MariaDB version too low. You need at least MariaDB 10.0.5');
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
namespace Flarum\Locale;
|
namespace Flarum\Locale;
|
||||||
|
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class LocaleManager
|
class LocaleManager
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
@ -74,12 +76,12 @@ class LocaleManager
|
||||||
|
|
||||||
public function getJsFiles(string $locale): array
|
public function getJsFiles(string $locale): array
|
||||||
{
|
{
|
||||||
$files = array_get($this->js, $locale, []);
|
$files = Arr::get($this->js, $locale, []);
|
||||||
|
|
||||||
$parts = explode('-', $locale);
|
$parts = explode('-', $locale);
|
||||||
|
|
||||||
if (count($parts) > 1) {
|
if (count($parts) > 1) {
|
||||||
$files = array_merge(array_get($this->js, $parts[0], []), $files);
|
$files = array_merge(Arr::get($this->js, $parts[0], []), $files);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $files;
|
return $files;
|
||||||
|
@ -92,12 +94,12 @@ class LocaleManager
|
||||||
|
|
||||||
public function getCssFiles(string $locale): array
|
public function getCssFiles(string $locale): array
|
||||||
{
|
{
|
||||||
$files = array_get($this->css, $locale, []);
|
$files = Arr::get($this->css, $locale, []);
|
||||||
|
|
||||||
$parts = explode('-', $locale);
|
$parts = explode('-', $locale);
|
||||||
|
|
||||||
if (count($parts) > 1) {
|
if (count($parts) > 1) {
|
||||||
$files = array_merge(array_get($this->css, $parts[0], []), $files);
|
$files = array_merge(Arr::get($this->css, $parts[0], []), $files);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $files;
|
return $files;
|
||||||
|
|
|
@ -16,6 +16,7 @@ use Flarum\Database\AbstractModel;
|
||||||
use Flarum\Event\ScopeModelVisibility;
|
use Flarum\Event\ScopeModelVisibility;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Models a notification record in the database.
|
* Models a notification record in the database.
|
||||||
|
@ -104,7 +105,7 @@ class Notification extends AbstractModel
|
||||||
*/
|
*/
|
||||||
public function getSubjectModelAttribute()
|
public function getSubjectModelAttribute()
|
||||||
{
|
{
|
||||||
return $this->type ? array_get(static::$subjectModels, $this->type) : null;
|
return $this->type ? Arr::get(static::$subjectModels, $this->type) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -18,6 +18,7 @@ use Flarum\Post\PostRepository;
|
||||||
use Flarum\Post\PostValidator;
|
use Flarum\Post\PostValidator;
|
||||||
use Flarum\User\AssertPermissionTrait;
|
use Flarum\User\AssertPermissionTrait;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class EditPostHandler
|
class EditPostHandler
|
||||||
{
|
{
|
||||||
|
@ -59,7 +60,7 @@ class EditPostHandler
|
||||||
$post = $this->posts->findOrFail($command->postId, $actor);
|
$post = $this->posts->findOrFail($command->postId, $actor);
|
||||||
|
|
||||||
if ($post instanceof CommentPost) {
|
if ($post instanceof CommentPost) {
|
||||||
$attributes = array_get($data, 'attributes', []);
|
$attributes = Arr::get($data, 'attributes', []);
|
||||||
|
|
||||||
if (isset($attributes['content'])) {
|
if (isset($attributes['content'])) {
|
||||||
$this->assertCan($actor, 'edit', $post);
|
$this->assertCan($actor, 'edit', $post);
|
||||||
|
|
|
@ -20,6 +20,7 @@ use Flarum\Post\Event\Saving;
|
||||||
use Flarum\Post\PostValidator;
|
use Flarum\Post\PostValidator;
|
||||||
use Flarum\User\AssertPermissionTrait;
|
use Flarum\User\AssertPermissionTrait;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class PostReplyHandler
|
class PostReplyHandler
|
||||||
{
|
{
|
||||||
|
@ -86,12 +87,12 @@ class PostReplyHandler
|
||||||
// opportunity to alter the post entity based on data in the command.
|
// opportunity to alter the post entity based on data in the command.
|
||||||
$post = CommentPost::reply(
|
$post = CommentPost::reply(
|
||||||
$discussion->id,
|
$discussion->id,
|
||||||
array_get($command->data, 'attributes.content'),
|
Arr::get($command->data, 'attributes.content'),
|
||||||
$actor->id,
|
$actor->id,
|
||||||
$command->ipAddress
|
$command->ipAddress
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($actor->isAdmin() && ($time = array_get($command->data, 'attributes.createdAt'))) {
|
if ($actor->isAdmin() && ($time = Arr::get($command->data, 'attributes.createdAt'))) {
|
||||||
$post->created_at = new Carbon($time);
|
$post->created_at = new Carbon($time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
namespace Flarum\Search;
|
namespace Flarum\Search;
|
||||||
|
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
trait ApplySearchParametersTrait
|
trait ApplySearchParametersTrait
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
@ -29,10 +31,10 @@ trait ApplySearchParametersTrait
|
||||||
foreach ($sort as $field => $order) {
|
foreach ($sort as $field => $order) {
|
||||||
if (is_array($order)) {
|
if (is_array($order)) {
|
||||||
foreach ($order as $value) {
|
foreach ($order as $value) {
|
||||||
$search->getQuery()->orderByRaw(snake_case($field).' != ?', [$value]);
|
$search->getQuery()->orderByRaw(Str::snake($field).' != ?', [$value]);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$search->getQuery()->orderBy(snake_case($field), $order);
|
$search->getQuery()->orderBy(Str::snake($field), $order);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
namespace Flarum\Settings;
|
namespace Flarum\Settings;
|
||||||
|
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class MemoryCacheSettingsRepository implements SettingsRepositoryInterface
|
class MemoryCacheSettingsRepository implements SettingsRepositoryInterface
|
||||||
{
|
{
|
||||||
protected $inner;
|
protected $inner;
|
||||||
|
@ -39,7 +41,7 @@ class MemoryCacheSettingsRepository implements SettingsRepositoryInterface
|
||||||
if (array_key_exists($key, $this->cache)) {
|
if (array_key_exists($key, $this->cache)) {
|
||||||
return $this->cache[$key];
|
return $this->cache[$key];
|
||||||
} elseif (! $this->isCached) {
|
} elseif (! $this->isCached) {
|
||||||
return array_get($this->all(), $key, $default);
|
return Arr::get($this->all(), $key, $default);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $default;
|
return $default;
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
|
|
||||||
namespace Flarum\Settings;
|
namespace Flarum\Settings;
|
||||||
|
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A settings repository decorator that allows overriding certain values.
|
* A settings repository decorator that allows overriding certain values.
|
||||||
*
|
*
|
||||||
|
@ -46,7 +48,7 @@ class OverrideSettingsRepository implements SettingsRepositoryInterface
|
||||||
return $this->overrides[$key];
|
return $this->overrides[$key];
|
||||||
}
|
}
|
||||||
|
|
||||||
return array_get($this->all(), $key, $default);
|
return Arr::get($this->all(), $key, $default);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function set($key, $value)
|
public function set($key, $value)
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\Update\Controller;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Flarum\Database\Console\MigrateCommand;
|
use Flarum\Database\Console\MigrateCommand;
|
||||||
use Flarum\Foundation\Application;
|
use Flarum\Foundation\Application;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
@ -49,7 +50,7 @@ class UpdateController implements RequestHandlerInterface
|
||||||
{
|
{
|
||||||
$input = $request->getParsedBody();
|
$input = $request->getParsedBody();
|
||||||
|
|
||||||
if (array_get($input, 'databasePassword') !== $this->app->config('database.password')) {
|
if (Arr::get($input, 'databasePassword') !== $this->app->config('database.password')) {
|
||||||
return new HtmlResponse('Incorrect database password.', 500);
|
return new HtmlResponse('Incorrect database password.', 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ use Flarum\User\User;
|
||||||
use Flarum\User\UserRepository;
|
use Flarum\User\UserRepository;
|
||||||
use Flarum\User\UserValidator;
|
use Flarum\User\UserValidator;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Illuminate\Validation\ValidationException;
|
use Illuminate\Validation\ValidationException;
|
||||||
|
|
||||||
class EditUserHandler
|
class EditUserHandler
|
||||||
|
@ -64,8 +65,8 @@ class EditUserHandler
|
||||||
$canEdit = $actor->can('edit', $user);
|
$canEdit = $actor->can('edit', $user);
|
||||||
$isSelf = $actor->id === $user->id;
|
$isSelf = $actor->id === $user->id;
|
||||||
|
|
||||||
$attributes = array_get($data, 'attributes', []);
|
$attributes = Arr::get($data, 'attributes', []);
|
||||||
$relationships = array_get($data, 'relationships', []);
|
$relationships = Arr::get($data, 'relationships', []);
|
||||||
$validate = [];
|
$validate = [];
|
||||||
|
|
||||||
if (isset($attributes['username'])) {
|
if (isset($attributes['username'])) {
|
||||||
|
@ -115,7 +116,7 @@ class EditUserHandler
|
||||||
|
|
||||||
$newGroupIds = [];
|
$newGroupIds = [];
|
||||||
foreach ($relationships['groups']['data'] as $group) {
|
foreach ($relationships['groups']['data'] as $group) {
|
||||||
if ($id = array_get($group, 'id')) {
|
if ($id = Arr::get($group, 'id')) {
|
||||||
$newGroupIds[] = $id;
|
$newGroupIds[] = $id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,8 @@ use Flarum\User\RegistrationToken;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
use Flarum\User\UserValidator;
|
use Flarum\User\UserValidator;
|
||||||
use Illuminate\Contracts\Events\Dispatcher;
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
use Illuminate\Validation\ValidationException;
|
use Illuminate\Validation\ValidationException;
|
||||||
use Intervention\Image\ImageManager;
|
use Intervention\Image\ImageManager;
|
||||||
|
|
||||||
|
@ -75,19 +77,19 @@ class RegisterUserHandler
|
||||||
$this->assertAdmin($actor);
|
$this->assertAdmin($actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
$password = array_get($data, 'attributes.password');
|
$password = Arr::get($data, 'attributes.password');
|
||||||
|
|
||||||
// If a valid authentication token was provided as an attribute,
|
// If a valid authentication token was provided as an attribute,
|
||||||
// then we won't require the user to choose a password.
|
// then we won't require the user to choose a password.
|
||||||
if (isset($data['attributes']['token'])) {
|
if (isset($data['attributes']['token'])) {
|
||||||
$token = RegistrationToken::validOrFail($data['attributes']['token']);
|
$token = RegistrationToken::validOrFail($data['attributes']['token']);
|
||||||
|
|
||||||
$password = $password ?: str_random(20);
|
$password = $password ?: Str::random(20);
|
||||||
}
|
}
|
||||||
|
|
||||||
$user = User::register(
|
$user = User::register(
|
||||||
array_get($data, 'attributes.username'),
|
Arr::get($data, 'attributes.username'),
|
||||||
array_get($data, 'attributes.email'),
|
Arr::get($data, 'attributes.email'),
|
||||||
$password
|
$password
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -95,7 +97,7 @@ class RegisterUserHandler
|
||||||
$this->applyToken($user, $token);
|
$this->applyToken($user, $token);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($actor->isAdmin() && array_get($data, 'attributes.isEmailConfirmed')) {
|
if ($actor->isAdmin() && Arr::get($data, 'attributes.isEmailConfirmed')) {
|
||||||
$user->activate();
|
$user->activate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\User;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Flarum\Database\AbstractModel;
|
use Flarum\Database\AbstractModel;
|
||||||
use Flarum\User\Exception\InvalidConfirmationTokenException;
|
use Flarum\User\Exception\InvalidConfirmationTokenException;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property string $token
|
* @property string $token
|
||||||
|
@ -54,7 +55,7 @@ class EmailToken extends AbstractModel
|
||||||
{
|
{
|
||||||
$token = new static;
|
$token = new static;
|
||||||
|
|
||||||
$token->token = str_random(40);
|
$token->token = Str::random(40);
|
||||||
$token->user_id = $userId;
|
$token->user_id = $userId;
|
||||||
$token->email = $email;
|
$token->email = $email;
|
||||||
$token->created_at = Carbon::now();
|
$token->created_at = Carbon::now();
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\User;
|
||||||
|
|
||||||
use Illuminate\Contracts\Auth\Access\Gate as GateContract;
|
use Illuminate\Contracts\Auth\Access\Gate as GateContract;
|
||||||
use Illuminate\Contracts\Container\Container;
|
use Illuminate\Contracts\Container\Container;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
use InvalidArgumentException;
|
use InvalidArgumentException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -98,7 +99,7 @@ class Gate implements GateContract
|
||||||
{
|
{
|
||||||
if (is_callable($callback)) {
|
if (is_callable($callback)) {
|
||||||
$this->abilities[$ability] = $callback;
|
$this->abilities[$ability] = $callback;
|
||||||
} elseif (is_string($callback) && str_contains($callback, '@')) {
|
} elseif (is_string($callback) && Str::contains($callback, '@')) {
|
||||||
$this->abilities[$ability] = $this->buildAbilityCallback($callback);
|
$this->abilities[$ability] = $this->buildAbilityCallback($callback);
|
||||||
} else {
|
} else {
|
||||||
throw new InvalidArgumentException("Callback must be a callable or a 'Class@method' string.");
|
throw new InvalidArgumentException("Callback must be a callable or a 'Class@method' string.");
|
||||||
|
|
|
@ -13,6 +13,7 @@ namespace Flarum\User;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Flarum\Database\AbstractModel;
|
use Flarum\Database\AbstractModel;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property string $token
|
* @property string $token
|
||||||
|
@ -50,7 +51,7 @@ class PasswordToken extends AbstractModel
|
||||||
{
|
{
|
||||||
$token = new static;
|
$token = new static;
|
||||||
|
|
||||||
$token->token = str_random(40);
|
$token->token = Str::random(40);
|
||||||
$token->user_id = $userId;
|
$token->user_id = $userId;
|
||||||
$token->created_at = Carbon::now();
|
$token->created_at = Carbon::now();
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\User;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Flarum\Database\AbstractModel;
|
use Flarum\Database\AbstractModel;
|
||||||
use Flarum\User\Exception\InvalidConfirmationTokenException;
|
use Flarum\User\Exception\InvalidConfirmationTokenException;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property string $token
|
* @property string $token
|
||||||
|
@ -62,7 +63,7 @@ class RegistrationToken extends AbstractModel
|
||||||
{
|
{
|
||||||
$token = new static;
|
$token = new static;
|
||||||
|
|
||||||
$token->token = str_random(40);
|
$token->token = Str::random(40);
|
||||||
$token->provider = $provider;
|
$token->provider = $provider;
|
||||||
$token->identifier = $identifier;
|
$token->identifier = $identifier;
|
||||||
$token->user_attributes = $attributes;
|
$token->user_attributes = $attributes;
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Flarum\User;
|
||||||
use Flarum\Group\Group;
|
use Flarum\Group\Group;
|
||||||
use Flarum\User\Event\Saving;
|
use Flarum\User\Event\Saving;
|
||||||
use Flarum\User\Exception\PermissionDeniedException;
|
use Flarum\User\Exception\PermissionDeniedException;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
class SelfDemotionGuard
|
class SelfDemotionGuard
|
||||||
{
|
{
|
||||||
|
@ -35,7 +36,7 @@ class SelfDemotionGuard
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$groups = array_get($event->data, 'relationships.groups.data');
|
$groups = Arr::get($event->data, 'relationships.groups.data');
|
||||||
|
|
||||||
// If there is no group data (not even an empty array), this means
|
// If there is no group data (not even an empty array), this means
|
||||||
// groups were not changed (and thus not removed) - we're fine!
|
// groups were not changed (and thus not removed) - we're fine!
|
||||||
|
|
|
@ -37,6 +37,7 @@ use Flarum\User\Event\Registered;
|
||||||
use Flarum\User\Event\Renamed;
|
use Flarum\User\Event\Renamed;
|
||||||
use Illuminate\Contracts\Hashing\Hasher;
|
use Illuminate\Contracts\Hashing\Hasher;
|
||||||
use Illuminate\Contracts\Session\Session;
|
use Illuminate\Contracts\Session\Session;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property int $id
|
* @property int $id
|
||||||
|
@ -460,7 +461,7 @@ class User extends AbstractModel
|
||||||
return $value['default'];
|
return $value['default'];
|
||||||
}, static::$preferences);
|
}, static::$preferences);
|
||||||
|
|
||||||
$user = array_only((array) json_decode($value, true), array_keys(static::$preferences));
|
$user = Arr::only((array) json_decode($value, true), array_keys(static::$preferences));
|
||||||
|
|
||||||
return array_merge($defaults, $user);
|
return array_merge($defaults, $user);
|
||||||
}
|
}
|
||||||
|
@ -508,7 +509,7 @@ class User extends AbstractModel
|
||||||
*/
|
*/
|
||||||
public function getPreference($key, $default = null)
|
public function getPreference($key, $default = null)
|
||||||
{
|
{
|
||||||
return array_get($this->preferences, $key, $default);
|
return Arr::get($this->preferences, $key, $default);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue
Block a user