Skip to content

Commit ac2f13c

Browse files
committed
Added ticket permission to view every ticket
1 parent 0055762 commit ac2f13c

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

config/config.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@
8888
'show-ticket' => 'can:tickets.show',
8989
'message-ticket' => 'can:tickets.message',
9090
'download-ticket' => 'can:tickets.download',
91+
/*
92+
* For administrate tickets
93+
*/
94+
'all-ticket' => 'can:tickets.all',
9195
],
9296

9397
/*

src/Controllers/TicketController.php

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,12 @@ public function __construct()
6060
*/
6161
public function index()
6262
{
63-
$tickets = request()->user()->tickets()->orderBy('id', 'desc')->paginate(10);
63+
if (\request()->user()->can(config('laravel-tickets.permissions.all-ticket'))) {
64+
$tickets = Ticket::query();
65+
} else {
66+
$tickets = request()->user()->tickets();
67+
}
68+
$tickets = $tickets->orderBy('id', 'desc')->paginate(10);
6469

6570
return request()->wantsJson() ?
6671
response()->json(compact('tickets')) :
@@ -166,7 +171,8 @@ public function store(Request $request)
166171
*/
167172
public function show(Ticket $ticket)
168173
{
169-
if (! $ticket->user()->get()->contains(\request()->user())) {
174+
if (! $ticket->user()->get()->contains(\request()->user()) &&
175+
! request()->user()->can(config('laravel-tickets.permissions.all-ticket'))) {
170176
return abort(403);
171177
}
172178

@@ -196,7 +202,8 @@ public function show(Ticket $ticket)
196202
*/
197203
public function message(Request $request, Ticket $ticket)
198204
{
199-
if (! $ticket->user()->get()->contains(\request()->user())) {
205+
if (! $ticket->user()->get()->contains(\request()->user()) &&
206+
! request()->user()->can(config('laravel-tickets.permissions.all-ticket'))) {
200207
return abort(403);
201208
}
202209

@@ -250,7 +257,8 @@ public function message(Request $request, Ticket $ticket)
250257
*/
251258
public function close(Ticket $ticket)
252259
{
253-
if (! $ticket->user()->get()->contains(\request()->user())) {
260+
if (! $ticket->user()->get()->contains(\request()->user()) &&
261+
! request()->user()->can(config('laravel-tickets.permissions.all-ticket'))) {
254262
return abort(403);
255263
}
256264
if ($ticket->state === 'CLOSED') {
@@ -285,8 +293,8 @@ public function close(Ticket $ticket)
285293
*/
286294
public function download(Ticket $ticket, TicketUpload $ticketUpload)
287295
{
288-
if (! $ticket->user()->get()->contains(\request()->user()) ||
289-
! $ticket->messages()->get()->contains($ticketUpload->message()->first())) {
296+
if (! $ticket->user()->get()->contains(\request()->user()) &&
297+
! request()->user()->can(config('laravel-tickets.permissions.all-ticket'))) {
290298
return abort(403);
291299
}
292300

0 commit comments

Comments
 (0)