mirror of
https://github.com/Kovah/LinkAce.git
synced 2025-03-20 06:39:38 +01:00
Only allow ordering of entities by predefined columns and directions
This commit is contained in:
parent
d7a9e4dfbe
commit
6e29698ae8
@ -23,7 +23,8 @@ class LinkCheckController extends Controller
|
||||
return response()->json(['linksFound' => false]);
|
||||
}
|
||||
|
||||
$linkCount = Link::byUser($request->user()->id)
|
||||
$linkCount = Link::query()
|
||||
->visibleForUser()
|
||||
->where('url', trim($searchedUrl))
|
||||
->count();
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace App\Http\Controllers\API;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Controllers\Traits\ChecksOrdering;
|
||||
use App\Http\Requests\Models\LinkStoreRequest;
|
||||
use App\Http\Requests\Models\LinkUpdateRequest;
|
||||
use App\Models\Link;
|
||||
@ -13,6 +14,19 @@ use Illuminate\Http\Response;
|
||||
|
||||
class LinkController extends Controller
|
||||
{
|
||||
use ChecksOrdering;
|
||||
|
||||
protected array $allowedOrders = [
|
||||
'url',
|
||||
'title',
|
||||
'description',
|
||||
'visibility',
|
||||
'status',
|
||||
'check_disabled',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->authorizeResource(Link::class, 'link');
|
||||
@ -26,12 +40,14 @@ class LinkController extends Controller
|
||||
*/
|
||||
public function index(Request $request): JsonResponse
|
||||
{
|
||||
$this->orderBy = $request->input('order_by', 'created_at');
|
||||
$this->orderDir = $request->input('order_dir', 'desc');
|
||||
|
||||
$this->checkOrdering();
|
||||
|
||||
$links = Link::query()
|
||||
->visibleForUser()
|
||||
->orderBy(
|
||||
$request->input('order_by', 'created_at'),
|
||||
$request->input('order_dir', 'DESC')
|
||||
)
|
||||
->orderBy($this->orderBy, $this->orderDir)
|
||||
->paginate(getPaginationLimit());
|
||||
|
||||
return response()->json($links);
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace App\Http\Controllers\API;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Controllers\Traits\ChecksOrdering;
|
||||
use App\Http\Requests\Models\ListStoreRequest;
|
||||
use App\Http\Requests\Models\ListUpdateRequest;
|
||||
use App\Models\LinkList;
|
||||
@ -13,6 +14,17 @@ use Illuminate\Http\Response;
|
||||
|
||||
class ListController extends Controller
|
||||
{
|
||||
use ChecksOrdering;
|
||||
|
||||
protected array $allowedOrders = [
|
||||
'id',
|
||||
'name',
|
||||
'description',
|
||||
'visibility',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
@ -21,11 +33,13 @@ class ListController extends Controller
|
||||
*/
|
||||
public function index(Request $request): JsonResponse
|
||||
{
|
||||
$this->orderBy = $request->input('order_by', 'created_at');
|
||||
$this->orderDir = $request->input('order_dir', 'desc');
|
||||
|
||||
$this->checkOrdering();
|
||||
|
||||
$lists = LinkList::byUser()
|
||||
->orderBy(
|
||||
$request->input('order_by', 'created_at'),
|
||||
$request->input('order_dir', 'DESC')
|
||||
)
|
||||
->orderBy($this->orderBy, $this->orderDir)
|
||||
->paginate(getPaginationLimit());
|
||||
|
||||
return response()->json($lists);
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace App\Http\Controllers\API;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Controllers\Traits\ChecksOrdering;
|
||||
use App\Http\Requests\Models\TagStoreRequest;
|
||||
use App\Http\Requests\Models\TagUpdateRequest;
|
||||
use App\Models\Tag;
|
||||
@ -13,6 +14,16 @@ use Illuminate\Http\Response;
|
||||
|
||||
class TagController extends Controller
|
||||
{
|
||||
use ChecksOrdering;
|
||||
|
||||
protected array $allowedOrders = [
|
||||
'id',
|
||||
'name',
|
||||
'visibility',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
@ -21,11 +32,13 @@ class TagController extends Controller
|
||||
*/
|
||||
public function index(Request $request): JsonResponse
|
||||
{
|
||||
$this->orderBy = $request->input('order_by', 'created_at');
|
||||
$this->orderDir = $request->input('order_dir', 'desc');
|
||||
|
||||
$this->checkOrdering();
|
||||
|
||||
$tags = Tag::byUser()
|
||||
->orderBy(
|
||||
$request->input('order_by', 'created_at'),
|
||||
$request->input('order_dir', 'DESC')
|
||||
)
|
||||
->orderBy($this->orderBy, $this->orderDir)
|
||||
->paginate(getPaginationLimit());
|
||||
|
||||
return response()->json($tags);
|
||||
|
Loading…
x
Reference in New Issue
Block a user