From 05efc803f845d0fb7f07681a60a32ad4c2d50361 Mon Sep 17 00:00:00 2001 From: Alexis Gousseau Date: Tue, 5 Apr 2022 11:08:38 +0200 Subject: [PATCH] Ticket 775 : fix tickets count on sites/Projects/User pages --- app/Http/Controllers/Controller.php | 84 +++++++++++----------- app/Http/Controllers/ProjectController.php | 9 +++ app/Http/Controllers/SiteController.php | 8 +++ app/Http/Controllers/UserController.php | 11 ++- 4 files changed, 71 insertions(+), 41 deletions(-) diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 91b282c..16e674f 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -19,45 +19,49 @@ class Controller extends BaseController public function __construct() { - $ignore = [ - 9, -// Support Web - 15, -// Gen-Game- Web - 19, -// Store LDC - 27, -// CRM - 55, -// LDC - WEB - ]; - - $ticketsNew = Ticket::where('status', TicketStatus::new()); - $ticketsWaiting = Ticket::where('status', TicketStatus::waiting()); - $ticketsInProgress = Ticket::whereNotIn( - 'status', - [ - TicketStatus::new(), - TicketStatus::estimateTodo(), - TicketStatus::estimateValidated(), - TicketStatus::toPlan(), - TicketStatus::planned(), - TicketStatus::waiting(), - TicketStatus::production(), - TicketStatus::archived() - ] - ); - - - $user = Auth::user(); - if (!is_null($user) && !$user->isAdmin()) { - $ticketsNew = $ticketsNew->where('is_internal', 0)->whereNotIn('site_id', $ignore); - $ticketsWaiting = $ticketsWaiting->where('is_internal', 0)->whereNotIn('site_id', $ignore); - $ticketsInProgress = $ticketsInProgress->where('is_internal', 0)->whereNotIn('site_id', $ignore); - } - - View::share('ticketsNew', $ticketsNew->count()); - View::share('ticketsWaiting', $ticketsWaiting->count()); - View::share('ticketsInProgress', $ticketsInProgress->count()); + $this->middleware(function($request, $next) { + $ignore = [ + // Support Web + 9, + // Gen-Game- Web + 15, + // Store LDC + 19, + // CRM + 27, + // LDC - WEB + 55, + ]; + + $ticketsNew = Ticket::where('status', TicketStatus::new()); + $ticketsWaiting = Ticket::where('status', TicketStatus::waiting()); + $ticketsInProgress = Ticket::whereNotIn( + 'status', + [ + TicketStatus::new(), + TicketStatus::estimateTodo(), + TicketStatus::estimateValidated(), + TicketStatus::toPlan(), + TicketStatus::planned(), + TicketStatus::waiting(), + TicketStatus::production(), + TicketStatus::archived() + ] + ); + + /** @var \App\Models\User|null $user */ + $user = Auth::user(); + if (!is_null($user) and !$user->isAdmin()) { + $ticketsNew = $ticketsNew->where('is_internal', 0)->whereNotIn('site_id', $ignore); + $ticketsWaiting = $ticketsWaiting->where('is_internal', 0)->whereNotIn('site_id', $ignore); + $ticketsInProgress = $ticketsInProgress->where('is_internal', 0)->whereNotIn('site_id', $ignore); + } + + View::share('ticketsNew', $ticketsNew->count()); + View::share('ticketsWaiting', $ticketsWaiting->count()); + View::share('ticketsInProgress', $ticketsInProgress->count()); + + return $next($request); + }); } } diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index 483a579..f6dfb6b 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -10,11 +10,20 @@ use Kwaadpepper\CrudPolicies\Traits\CrudController; class ProjectController extends Controller { + use CrudController { + __construct as __CrudConstructor; index as crudIndex; show as crudShow; } + public function __construct() + { + parent::__construct(); + $this->__CrudConstructor(); + $this->authorizeResource(Project::class, 'project'); + } + /** @var Project */ public static $modelClass = Project::class; diff --git a/app/Http/Controllers/SiteController.php b/app/Http/Controllers/SiteController.php index 43d5d80..112dd17 100644 --- a/app/Http/Controllers/SiteController.php +++ b/app/Http/Controllers/SiteController.php @@ -9,9 +9,17 @@ use Kwaadpepper\CrudPolicies\Traits\CrudController; class SiteController extends Controller { use CrudController { + __construct as __CrudConstructor; index as crudIndex; } + public function __construct() + { + parent::__construct(); + $this->__CrudConstructor(); + $this->authorizeResource(Site::class, 'site'); + } + /** @var Site */ public static $modelClass = Site::class; diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 4e14d20..426ee51 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -11,7 +11,16 @@ use Kwaadpepper\CrudPolicies\Traits\CrudController; class UserController extends Controller { - use CrudController; + use CrudController { + __construct as __CrudConstructor; + } + + public function __construct() + { + parent::__construct(); + $this->__CrudConstructor(); + $this->authorizeResource(User::class, 'user'); + } /** @var User */ public static $modelClass = User::class;