diff --git a/app/Http/Controllers/ClientPortal/RecurringInvoiceController.php b/app/Http/Controllers/ClientPortal/RecurringInvoiceController.php index d08c2a7ac068..25fbfaadd306 100644 --- a/app/Http/Controllers/ClientPortal/RecurringInvoiceController.php +++ b/app/Http/Controllers/ClientPortal/RecurringInvoiceController.php @@ -12,7 +12,9 @@ namespace App\Http\Controllers\ClientPortal; use App\Http\Controllers\Controller; -use App\Http\Requests\ClientPortal\ShowRecurringInvoiceRequest; +use App\Http\Requests\ClientPortal\RecurringInvoices\RequestCancellationRequest; +use App\Http\Requests\ClientPortal\RecurringInvoices\ShowRecurringInvoicesRequest; +use App\Http\Requests\ClientPortal\RecurringInvoices\ShowRecurringInvoiceRequest; use App\Jobs\Mail\NinjaMailer; use App\Jobs\Mail\NinjaMailerJob; use App\Jobs\Mail\NinjaMailerObject; @@ -23,7 +25,6 @@ use App\Utils\Traits\MakesDates; use App\Utils\Traits\MakesHash; use App\Utils\Traits\Notifications\UserNotifies; use Illuminate\Contracts\View\Factory; -use Illuminate\Http\Request; use Illuminate\View\View; /** @@ -40,7 +41,7 @@ class RecurringInvoiceController extends Controller * * @return Factory|View */ - public function index() + public function index(ShowRecurringInvoicesRequest $request) { return $this->render('recurring_invoices.index'); } @@ -59,7 +60,7 @@ class RecurringInvoiceController extends Controller ]); } - public function requestCancellation(Request $request, RecurringInvoice $recurring_invoice) + public function requestCancellation(RequestCancellationRequest $request, RecurringInvoice $recurring_invoice) { if (is_null($recurring_invoice->subscription_id) || optional($recurring_invoice->subscription)->allow_cancellation) { $nmo = new NinjaMailerObject; diff --git a/app/Http/Requests/ClientPortal/RecurringInvoices/RequestCancellationRequest.php b/app/Http/Requests/ClientPortal/RecurringInvoices/RequestCancellationRequest.php new file mode 100644 index 000000000000..c4f1cd4ca470 --- /dev/null +++ b/app/Http/Requests/ClientPortal/RecurringInvoices/RequestCancellationRequest.php @@ -0,0 +1,21 @@ +user()->company->enabled_modules & PortalComposer::MODULE_RECURRING_INVOICES; + } + + public function rules() + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/ClientPortal/ShowRecurringInvoiceRequest.php b/app/Http/Requests/ClientPortal/RecurringInvoices/ShowRecurringInvoiceRequest.php similarity index 52% rename from app/Http/Requests/ClientPortal/ShowRecurringInvoiceRequest.php rename to app/Http/Requests/ClientPortal/RecurringInvoices/ShowRecurringInvoiceRequest.php index 0e109d10776c..66108ed79fba 100644 --- a/app/Http/Requests/ClientPortal/ShowRecurringInvoiceRequest.php +++ b/app/Http/Requests/ClientPortal/RecurringInvoices/ShowRecurringInvoiceRequest.php @@ -9,19 +9,23 @@ * @license https://www.elastic.co/licensing/elastic-license */ -namespace App\Http\Requests\ClientPortal; +namespace App\Http\Requests\ClientPortal\RecurringInvoices; use App\Http\Requests\Request; +use App\Http\ViewComposers\PortalComposer; class ShowRecurringInvoiceRequest extends Request { - /** - * Determine if the user is authorized to make this request. - * - * @return bool - */ public function authorize() : bool { - return auth()->user()->client->id === $this->recurring_invoice->client_id; + return auth('contact')->user()->client->id === $this->recurring_invoice->client_id + && auth('contact')->user()->company->enabled_modules & PortalComposer::MODULE_RECURRING_INVOICES; + } + + public function rules() + { + return [ + // + ]; } } diff --git a/app/Http/Requests/ClientPortal/RecurringInvoices/ShowRecurringInvoicesRequest.php b/app/Http/Requests/ClientPortal/RecurringInvoices/ShowRecurringInvoicesRequest.php new file mode 100644 index 000000000000..75b336fef462 --- /dev/null +++ b/app/Http/Requests/ClientPortal/RecurringInvoices/ShowRecurringInvoicesRequest.php @@ -0,0 +1,31 @@ +user()->company->enabled_modules & PortalComposer::MODULE_RECURRING_INVOICES; + } + + public function rules() + { + return [ + // + ]; + } +}