diff --git a/app/Http/Controllers/ClientGatewayTokenController.php b/app/Http/Controllers/ClientGatewayTokenController.php index f1b4b4076448..87fb8aa9ab18 100644 --- a/app/Http/Controllers/ClientGatewayTokenController.php +++ b/app/Http/Controllers/ClientGatewayTokenController.php @@ -303,7 +303,10 @@ class ClientGatewayTokenController extends BaseController */ public function create(CreateClientGatewayTokenRequest $request) { - $client_gateway_token = ClientGatewayTokenFactory::create(auth()->user()->company()->id); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $client_gateway_token = ClientGatewayTokenFactory::create($user->company()->id); $client_gateway_token = $this->client_gateway_token_repo->save($request->all(), $client_gateway_token); @@ -350,7 +353,11 @@ class ClientGatewayTokenController extends BaseController */ public function store(StoreClientGatewayTokenRequest $request) { - $client_gateway_token = ClientGatewayTokenFactory::create(auth()->user()->company()->id); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $client_gateway_token = ClientGatewayTokenFactory::create($user->company()->id); $client_gateway_token = $this->client_gateway_token_repo->save($request->all(), $client_gateway_token); diff --git a/app/Http/Controllers/CompanyGatewayController.php b/app/Http/Controllers/CompanyGatewayController.php index f0ea4abf4556..6b5b151b4071 100644 --- a/app/Http/Controllers/CompanyGatewayController.php +++ b/app/Http/Controllers/CompanyGatewayController.php @@ -149,7 +149,11 @@ class CompanyGatewayController extends BaseController */ public function create(CreateCompanyGatewayRequest $request) { - $company_gateway = CompanyGatewayFactory::create(auth()->user()->company()->id, auth()->user()->id); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $company_gateway = CompanyGatewayFactory::create($user->company()->id, auth()->user()->id); return $this->itemResponse($company_gateway); } diff --git a/app/Http/Controllers/CompanyLedgerController.php b/app/Http/Controllers/CompanyLedgerController.php index deccc1829e6d..91eba243468e 100644 --- a/app/Http/Controllers/CompanyLedgerController.php +++ b/app/Http/Controllers/CompanyLedgerController.php @@ -64,7 +64,11 @@ class CompanyLedgerController extends BaseController */ public function index(ShowCompanyLedgerRequest $request) { - $company_ledger = CompanyLedger::where('company_id', auth()->user()->company()->id)->orderBy('id', 'ASC'); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $company_ledger = CompanyLedger::where('company_id', $user->company()->id)->orderBy('id', 'ASC'); return $this->listResponse($company_ledger); } diff --git a/app/Http/Controllers/ConnectedAccountController.php b/app/Http/Controllers/ConnectedAccountController.php index e7ee53e59722..7d0aeb46d1fa 100644 --- a/app/Http/Controllers/ConnectedAccountController.php +++ b/app/Http/Controllers/ConnectedAccountController.php @@ -121,9 +121,13 @@ class ConnectedAccountController extends BaseController 'email_verified_at' => now() ]; - auth()->user()->update($connected_account); - auth()->user()->email_verified_at = now(); - auth()->user()->save(); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $user->update($connected_account); + $user->email_verified_at = now(); + $user->save(); $this->setLoginCache(auth()->user()); diff --git a/app/Http/Controllers/CreditController.php b/app/Http/Controllers/CreditController.php index a8de6aceaffd..3eedd8fe2ffc 100644 --- a/app/Http/Controllers/CreditController.php +++ b/app/Http/Controllers/CreditController.php @@ -616,7 +616,7 @@ class CreditController extends BaseController return response()->streamDownload(function () use ($file) { echo $file; - }, $credit->numberFormatter().'.pdf', ['Content-Type' => 'application/pdf']); + }, $credit->numberFormatter() . '.pdf', ['Content-Type' => 'application/pdf']); break; case 'archive': $this->credit_repository->archive($credit); @@ -724,7 +724,7 @@ class CreditController extends BaseController return response()->streamDownload(function () use ($file) { echo $file; - }, $credit->numberFormatter().'.pdf', $headers); + }, $credit->numberFormatter() . '.pdf', $headers); } diff --git a/app/Http/Controllers/ExpenseCategoryController.php b/app/Http/Controllers/ExpenseCategoryController.php index 0c43f649aad8..51b8dc49a0f7 100644 --- a/app/Http/Controllers/ExpenseCategoryController.php +++ b/app/Http/Controllers/ExpenseCategoryController.php @@ -128,7 +128,11 @@ class ExpenseCategoryController extends BaseController */ public function create(CreateExpenseCategoryRequest $request) { - $expense_category = ExpenseCategoryFactory::create(auth()->user()->company()->id, auth()->user()->id); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $expense_category = ExpenseCategoryFactory::create($user->company()->id, auth()->user()->id); return $this->itemResponse($expense_category); } diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index 080e41405e83..e9c438ec16b3 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -497,7 +497,7 @@ class InvoiceController extends BaseController return response(['message' => ctrans('texts.email_quota_exceeded_subject')], 400); } - if(in_array($request->action, ['auto_bill','mark_paid']) && $user->cannot('create', \App\Models\Payment::class)) { + if(in_array($request->action, ['auto_bill', 'mark_paid']) && $user->cannot('create', \App\Models\Payment::class)) { return response(['message' => ctrans('texts.not_authorized'), 'errors' => ['ids' => [ctrans('texts.not_authorized')]]], 422); } @@ -514,8 +514,6 @@ class InvoiceController extends BaseController if ($action == 'bulk_download' && $invoices->count() > 1) { $invoices->each(function ($invoice) use ($user) { if ($user->cannot('view', $invoice)) { - nlog('access denied'); - return response()->json(['message' => ctrans('text.access_denied')]); } }); @@ -570,7 +568,7 @@ class InvoiceController extends BaseController } }); - return $this->listResponse(Invoice::query()->withTrashed()->whereIn('id', $this->transformKeys($ids))->company()); + return $this->listResponse(Invoice::withTrashed()->whereIn('id', $this->transformKeys($ids))->company()); } /* @@ -584,7 +582,7 @@ class InvoiceController extends BaseController /* Need to understand which permission are required for the given bulk action ie. view / edit */ - return $this->listResponse(Invoice::query()->withTrashed()->whereIn('id', $this->transformKeys($ids))->company()); + return $this->listResponse(Invoice::withTrashed()->whereIn('id', $this->transformKeys($ids))->company()); } /** diff --git a/app/Http/Controllers/MigrationController.php b/app/Http/Controllers/MigrationController.php index 1c80ee1c43cd..f86a4e14d69c 100644 --- a/app/Http/Controllers/MigrationController.php +++ b/app/Http/Controllers/MigrationController.php @@ -305,7 +305,7 @@ class MigrationController extends BaseController $fresh_company = false; // Look for possible existing company (based on company keys). - $existing_company = Company::whereRaw('BINARY `company_key` = ?', [$company['company_key']])->first(); + $existing_company = Company::query()->whereRaw('BINARY `company_key` = ?', [$company['company_key']])->first(); App::forgetInstance('translator'); $t = app('translator'); @@ -386,6 +386,7 @@ class MigrationController extends BaseController $fresh_company_token->is_system = true; $fresh_company_token->save(); + /** @var \App\Models\User $user */ $user->companies()->attach($fresh_company->id, [ 'account_id' => $account->id, 'is_owner' => 1, @@ -417,6 +418,7 @@ class MigrationController extends BaseController $fresh_company_token->save(); + /** @var \App\Models\User $user */ $user->companies()->attach($fresh_company->id, [ 'account_id' => $account->id, 'is_owner' => 1, diff --git a/app/Http/Controllers/PingController.php b/app/Http/Controllers/PingController.php index fd11748ec6e4..4e6dd93ce4a1 100644 --- a/app/Http/Controllers/PingController.php +++ b/app/Http/Controllers/PingController.php @@ -40,9 +40,13 @@ class PingController extends BaseController */ public function index() { + + /** @var \App\Models\User $user */ + $user = auth()->user(); + return response()->json( - ['company_name' => auth()->user()->getCompany()->present()->name(), - 'user_name' => auth()->user()->present()->name(), + ['company_name' => $user->getCompany()->present()->name(), + 'user_name' => $user->present()->name(), ], 200 ); diff --git a/app/Http/Controllers/ProductController.php b/app/Http/Controllers/ProductController.php index 3ae0b2ab499b..f3f82132a473 100644 --- a/app/Http/Controllers/ProductController.php +++ b/app/Http/Controllers/ProductController.php @@ -132,7 +132,11 @@ class ProductController extends BaseController */ public function create(CreateProductRequest $request) { - $product = ProductFactory::create(auth()->user()->company()->id, auth()->user()->id); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $product = ProductFactory::create($user->company()->id, auth()->user()->id); return $this->itemResponse($product); } @@ -177,7 +181,11 @@ class ProductController extends BaseController */ public function store(StoreProductRequest $request) { - $product = $this->product_repo->save($request->all(), ProductFactory::create(auth()->user()->company()->id, auth()->user()->id)); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $product = $this->product_repo->save($request->all(), ProductFactory::create($user->company()->id, auth()->user()->id)); return $this->itemResponse($product); } diff --git a/app/Http/Controllers/SystemLogController.php b/app/Http/Controllers/SystemLogController.php index 298f9b5f24c8..4c8f122ffc18 100644 --- a/app/Http/Controllers/SystemLogController.php +++ b/app/Http/Controllers/SystemLogController.php @@ -60,7 +60,10 @@ class SystemLogController extends BaseController { $system_logs = SystemLog::filter($filters); - if (auth()->user()->isAdmin()) { + /** @var \App\Models\User $user */ + $user = auth()->user(); + + if ($user->isAdmin()) { return $this->listResponse($system_logs); } diff --git a/app/Http/Controllers/TaskSchedulerController.php b/app/Http/Controllers/TaskSchedulerController.php index e206ca8e4e2c..1c0d015a71df 100644 --- a/app/Http/Controllers/TaskSchedulerController.php +++ b/app/Http/Controllers/TaskSchedulerController.php @@ -45,14 +45,20 @@ class TaskSchedulerController extends BaseController public function create(CreateSchedulerRequest $request) { - $scheduler = SchedulerFactory::create(auth()->user()->company()->id, auth()->user()->id); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $scheduler = SchedulerFactory::create($user->company()->id, auth()->user()->id); return $this->itemResponse($scheduler); } public function store(StoreSchedulerRequest $request) { - $scheduler = $this->scheduler_repository->save($request->all(), SchedulerFactory::create(auth()->user()->company()->id, auth()->user()->id)); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $scheduler = $this->scheduler_repository->save($request->all(), SchedulerFactory::create($user->company()->id, auth()->user()->id)); return $this->itemResponse($scheduler); } @@ -79,6 +85,10 @@ class TaskSchedulerController extends BaseController public function bulk() { + + /** @var \App\Models\User $user */ + $user = auth()->user(); + $action = request()->input('action'); if (!in_array($action, ['archive', 'restore', 'delete'])) { @@ -89,8 +99,8 @@ class TaskSchedulerController extends BaseController $task_schedulers = Scheduler::withTrashed()->find($this->transformKeys($ids)); - $task_schedulers->each(function ($task_scheduler, $key) use ($action) { - if (auth()->user()->can('edit', $task_scheduler)) { + $task_schedulers->each(function ($task_scheduler, $key) use ($action, $user) { + if ($user->can('edit', $task_scheduler)) { $this->scheduler_repository->{$action}($task_scheduler); } }); diff --git a/app/Http/Controllers/TokenController.php b/app/Http/Controllers/TokenController.php index 6cf4413bf57b..6f014114161a 100644 --- a/app/Http/Controllers/TokenController.php +++ b/app/Http/Controllers/TokenController.php @@ -311,7 +311,11 @@ class TokenController extends BaseController */ public function create(CreateTokenRequest $request) { - $token = CompanyTokenFactory::create(auth()->user()->company()->id, auth()->user()->id, auth()->user()->account_id); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $token = CompanyTokenFactory::create($user->company()->id, auth()->user()->id, auth()->user()->account_id); return $this->itemResponse($token); } @@ -356,7 +360,11 @@ class TokenController extends BaseController */ public function store(StoreTokenRequest $request) { - $company_token = CompanyTokenFactory::create(auth()->user()->company()->id, auth()->user()->id, auth()->user()->account_id); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $company_token = CompanyTokenFactory::create($user->company()->id, auth()->user()->id, auth()->user()->account_id); $token = $this->token_repo->save($request->all(), $company_token); @@ -476,13 +484,16 @@ class TokenController extends BaseController { $this->entity_transformer = CompanyTokenHashedTransformer::class; + /** @var \App\Models\User $user */ + $user = auth()->user(); + $action = request()->input('action'); $ids = request()->input('ids'); $tokens = CompanyToken::withTrashed()->find($this->transformKeys($ids)); - $tokens->each(function ($token, $key) use ($action) { - if (auth()->user()->can('edit', $token)) { + $tokens->each(function ($token, $key) use ($action, $user) { + if ($user->can('edit', $token)) { $this->token_repo->{$action}($token); } }); diff --git a/app/Http/Controllers/TwoFactorController.php b/app/Http/Controllers/TwoFactorController.php index 2d86469f9dd8..a108d6c67012 100644 --- a/app/Http/Controllers/TwoFactorController.php +++ b/app/Http/Controllers/TwoFactorController.php @@ -59,7 +59,9 @@ class TwoFactorController extends BaseController { $google2fa = new Google2FA(); + /** @var \App\Models\User $user */ $user = auth()->user(); + $secret = $request->input('secret'); $oneTimePassword = $request->input('one_time_password'); @@ -82,7 +84,10 @@ class TwoFactorController extends BaseController public function disableTwoFactor() { + + /** @var \App\Models\User $user */ $user = auth()->user(); + $user->google_2fa_secret = null; $user->save(); diff --git a/app/Http/Controllers/VendorController.php b/app/Http/Controllers/VendorController.php index 5b074f20f482..7802a8838f01 100644 --- a/app/Http/Controllers/VendorController.php +++ b/app/Http/Controllers/VendorController.php @@ -320,7 +320,11 @@ class VendorController extends BaseController */ public function create(CreateVendorRequest $request) { - $vendor = VendorFactory::create(auth()->user()->company()->id, auth()->user()->id); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $vendor = VendorFactory::create($user->company()->id, auth()->user()->id); return $this->itemResponse($vendor); } @@ -365,7 +369,11 @@ class VendorController extends BaseController */ public function store(StoreVendorRequest $request) { - $vendor = $this->vendor_repo->save($request->all(), VendorFactory::create(auth()->user()->company()->id, auth()->user()->id)); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $vendor = $this->vendor_repo->save($request->all(), VendorFactory::create($user->company()->id, auth()->user()->id)); $vendor->load('contacts', 'primary_contact'); @@ -491,9 +499,12 @@ class VendorController extends BaseController $ids = request()->input('ids'); $vendors = Vendor::withTrashed()->find($this->transformKeys($ids)); + + /** @var \App\Models\User $user */ + $user = auth()->user(); - $vendors->each(function ($vendor, $key) use ($action) { - if (auth()->user()->can('edit', $vendor)) { + $vendors->each(function ($vendor, $key) use ($action, $user) { + if ($user->can('edit', $vendor)) { $this->vendor_repo->{$action}($vendor); } }); diff --git a/app/Http/Controllers/WebhookController.php b/app/Http/Controllers/WebhookController.php index 5374b11ff698..49e7318c3be2 100644 --- a/app/Http/Controllers/WebhookController.php +++ b/app/Http/Controllers/WebhookController.php @@ -355,8 +355,11 @@ class WebhookController extends BaseController return response()->json('Invalid event', 400); } + /** @var \App\Models\User $user */ + $user = auth()->user(); + $webhook = new Webhook(); - $webhook->company_id = auth()->user()->company()->id; + $webhook->company_id = $user->company()->id; $webhook->user_id = auth()->user()->id; $webhook->event_id = $event_id; $webhook->target_url = $target_url; diff --git a/app/Models/ClientGatewayToken.php b/app/Models/ClientGatewayToken.php index 2a82fe78ce2c..f0c8195d7816 100644 --- a/app/Models/ClientGatewayToken.php +++ b/app/Models/ClientGatewayToken.php @@ -37,6 +37,7 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @property-read \App\Models\GatewayType|null $gateway_type * @property-read mixed $hashed_id * @property-read \App\Models\User $user + * @method static \Illuminate\Database\Eloquent\Builder|BaseModel company() * @mixin \Eloquent */ class ClientGatewayToken extends BaseModel diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 76fd487b03db..7ea31ef1915f 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -98,7 +98,7 @@ use Laracasts\Presenter\PresentableTrait; * @property \App\Models\User|null $assigned_user * @property \App\Models\Client $client * @property \App\Models\InvoiceInvitation $invitation - * @property \App\Models\Company $company + * @property-read \App\Models\Company $company * @property-read int|null $company_ledger_count * @property-read int|null $credits_count * @property \App\Models\Design|null $design @@ -129,6 +129,7 @@ use Laracasts\Presenter\PresentableTrait; * @property-read \Illuminate\Database\Eloquent\Collection $invitations * @property-read \Illuminate\Database\Eloquent\Collection $payments * @property-read \Illuminate\Database\Eloquent\Collection $tasks + * @method static \Illuminate\Database\Eloquent\Builder|BaseModel company() * @property object|null $tax_data * @mixin \Eloquent */ @@ -248,7 +249,10 @@ class Invoice extends BaseModel return $value ? $this->dateMutator($value) : null; } - public function company(): \Illuminate\Database\Eloquent\Relations\BelongsTo + /** + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function company() { return $this->belongsTo(Company::class); } diff --git a/app/Models/PurchaseOrder.php b/app/Models/PurchaseOrder.php index 634f7eaa8694..3cc2b0e0de3b 100644 --- a/app/Models/PurchaseOrder.php +++ b/app/Models/PurchaseOrder.php @@ -109,6 +109,7 @@ use Illuminate\Support\Carbon; * @property-read \Illuminate\Database\Eloquent\Collection $invitations * @method static \Illuminate\Database\Eloquent\Builder|PurchaseOrder withTrashed() * @method static \Illuminate\Database\Eloquent\Builder|PurchaseOrder withoutTrashed() + * @method static \Illuminate\Database\Eloquent\Builder|BaseModel company() * @mixin \Eloquent */ class PurchaseOrder extends BaseModel diff --git a/app/Models/Quote.php b/app/Models/Quote.php index ff15b8faf125..07a59c8b97cd 100644 --- a/app/Models/Quote.php +++ b/app/Models/Quote.php @@ -106,7 +106,7 @@ use Laracasts\Presenter\PresentableTrait; * @property-read \Illuminate\Database\Eloquent\Collection $documents * @property-read \Illuminate\Database\Eloquent\Collection $history * @property-read \Illuminate\Database\Eloquent\Collection $invitations - * + * @method static \Illuminate\Database\Eloquent\Builder|BaseModel company() * @mixin \Eloquent * @mixin \Illuminate\Database\Eloquent\Builder */ diff --git a/app/Models/User.php b/app/Models/User.php index 2cadd4672a02..35441ff43d89 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -98,6 +98,7 @@ use Laracasts\Presenter\PresentableTrait; * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications * @property-read \Illuminate\Database\Eloquent\Collection $tokens * @property-read \Illuminate\Database\Eloquent\Collection $companies + * @method static \Illuminate\Database\Eloquent\Builder|BaseModel companies() * @method bool hasPermissionTo(string $permission) * @method \App\Models\Company getCompany() * @method \App\Models\Company company()