From 62191c2711fdd9287a33f3e9beb2d14b05880d58 Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Fri, 23 Feb 2024 10:49:09 +0800 Subject: [PATCH 1/3] Undo a changes made on previous commit --- .../ControllersLogic/ListTransactionsLogic.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php index ae638bae..5974f5e2 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php @@ -50,10 +50,11 @@ class ListTransactionsLogic extends AbstractControllerLogic }); $item['storages'] = $filteredStorages; } - return $this->collectionResponse(TransactionWithStorageResource::collection($query)); - } - else{ - return $this->collectionResponse(TransactionResource::collection($query)); + //return $this->collectionResponse(TransactionWithStorageResource::collection($query)); } + // else{ + // return $this->collectionResponse(TransactionResource::collection($query)); + // + return $this->collectionResponse(TransactionWithStorageResource::collection($query)); } } From 2689296a2c7bea0b6312dd018a275044b8d7d361 Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Fri, 23 Feb 2024 11:09:30 +0800 Subject: [PATCH 2/3] Implement authorization module for update customer credit term status --- .../UpdateCompanyCreditTermStatusLogic.php | 9 +++- .../Rules/CanUpdateCompanyModule.php | 53 +++++++++++++++++++ 2 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 app/Classes/Modules/Companies/Standards/Rules/CanUpdateCompanyModule.php diff --git a/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyCreditTermStatusLogic.php b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyCreditTermStatusLogic.php index a37d66ce..9d0689a4 100644 --- a/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyCreditTermStatusLogic.php +++ b/app/Classes/Modules/Companies/ControllersLogic/UpdateCompanyCreditTermStatusLogic.php @@ -6,6 +6,7 @@ namespace App\Classes\Modules\Companies\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Companies\Services\FetchesCompany; use App\Classes\Modules\Companies\Services\UpdatesCompanyModuleIsCreditTerm; +use App\Classes\Modules\Companies\Standards\Rules\CanUpdateCompanyModule; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; @@ -30,16 +31,20 @@ class UpdateCompanyCreditTermStatusLogic extends AbstractControllerLogic /** @var UpdatesCompanyModuleIsCreditTerm */ private $updatesCompanyModuleIsCreditTerm; + /** @var CanUpdateCompanyModule */ + private $canUpdateCompanyModule; /** * UpdateCompanyCreditTermStatusLogic constructor. * @param FetchesCompany $fetchesCompany * @param UpdatesCompanyModuleIsCreditTerm $updatesCompanyModuleIsCreditTerm + * @param CanUpdateCompanyModule $canUpdateCompanyModule */ - public function __construct(FetchesCompany $fetchesCompany, UpdatesCompanyModuleIsCreditTerm $updatesCompanyModuleIsCreditTerm) + public function __construct(FetchesCompany $fetchesCompany, UpdatesCompanyModuleIsCreditTerm $updatesCompanyModuleIsCreditTerm, CanUpdateCompanyModule $canUpdateCompanyModule) { $this->fetchesCompany = $fetchesCompany; $this->updatesCompanyModuleIsCreditTerm = $updatesCompanyModuleIsCreditTerm; + $this->canUpdateCompanyModule = $canUpdateCompanyModule; } /** @@ -51,9 +56,9 @@ class UpdateCompanyCreditTermStatusLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { + $this->canUpdateCompanyModule->passes(); $company = $this->fetchesCompany->execute(['id' => $request->route('id')]); - $isCreditTerm = $company->companyModules()->first()->connections()->first()->is_credit_term; if ($isCreditTerm == 1) { diff --git a/app/Classes/Modules/Companies/Standards/Rules/CanUpdateCompanyModule.php b/app/Classes/Modules/Companies/Standards/Rules/CanUpdateCompanyModule.php new file mode 100644 index 00000000..64f827fa --- /dev/null +++ b/app/Classes/Modules/Companies/Standards/Rules/CanUpdateCompanyModule.php @@ -0,0 +1,53 @@ +user(); + if($user){ + $roleToCheck = Auth()->user()->type; + if (in_array($roleToCheck, RoleTypes::ADMIN_ROLES)) { + return true; + } + } + + return false; + } + + /** + * @param $object + * @return bool + * @throws \App\Classes\Exceptions\RequestValidationException + */ + protected function validators($object): bool + { + return true; + } + + /** + * @param CompanyObject $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } +} From b66dfa8649ac80c7efeba675b9d719edc69fdff9 Mon Sep 17 00:00:00 2001 From: Dillon Ngo Date: Sat, 24 Feb 2024 10:08:24 +0800 Subject: [PATCH 3/3] Implement authorization module for update customer credit term status --- .../Transactions/ControllersLogic/ListTransactionsLogic.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php index 5974f5e2..2d5c40dd 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/ListTransactionsLogic.php @@ -43,7 +43,7 @@ class ListTransactionsLogic extends AbstractControllerLogic $query = $this->listsTransactions->execute($this->listsTransactions->deserializeFilters($request->input('filters'))); if($request->input('storages')){ - foreach ($query->items() as &$item) { + foreach ($query->items() as $item) { $transactionId = $item['id']; $filteredStorages = array_filter($request->input('storages'), function ($storage) use ($transactionId) { return isset($storage['parentInvoiceId']) && $storage['parentInvoiceId'] == $transactionId;