diff --git a/app/Http/Controllers/Auth/ContactLoginController.php b/app/Http/Controllers/Auth/ContactLoginController.php
index eb64a0ac41e4..f39544ea7f42 100644
--- a/app/Http/Controllers/Auth/ContactLoginController.php
+++ b/app/Http/Controllers/Auth/ContactLoginController.php
@@ -13,6 +13,7 @@ namespace App\Http\Controllers\Auth;
use App\Events\Contact\ContactLoggedIn;
use App\Http\Controllers\Controller;
+use App\Http\ViewComposers\PortalComposer;
use App\Libraries\MultiDB;
use App\Models\Account;
use App\Models\ClientContact;
@@ -20,10 +21,10 @@ use App\Models\Company;
use App\Utils\Ninja;
use Auth;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
-use Illuminate\Http\Request;
-use Route;
use Illuminate\Http\JsonResponse;
+use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
+use Route;
class ContactLoginController extends Controller
{
@@ -131,6 +132,8 @@ class ContactLoginController extends Controller
return $response;
}
+ $this->setRedirectPath();
+
return $request->wantsJson()
? new JsonResponse([], 204)
: redirect()->intended($this->redirectPath());
@@ -156,4 +159,22 @@ class ContactLoginController extends Controller
return redirect('/client/login');
}
+
+ private function setRedirectPath()
+ {
+
+ if(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_INVOICES)
+ $this->redirectTo = '/client/invoices';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_RECURRING_INVOICES)
+ $this->redirectTo = '/client/recurring_invoices';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_QUOTES)
+ $this->redirectTo = '/client/quotes';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_CREDITS)
+ $this->redirectTo = '/client/credits';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_TASKS)
+ $this->redirectTo = '/client/tasks';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_EXPENSES)
+ $this->redirectTo = '/client/expenses';
+
+ }
}
diff --git a/app/Http/Controllers/ClientPortal/ContactHashLoginController.php b/app/Http/Controllers/ClientPortal/ContactHashLoginController.php
index 63d5b4b3abe2..51ca60adf347 100644
--- a/app/Http/Controllers/ClientPortal/ContactHashLoginController.php
+++ b/app/Http/Controllers/ClientPortal/ContactHashLoginController.php
@@ -12,6 +12,7 @@
namespace App\Http\Controllers\ClientPortal;
use App\Http\Controllers\Controller;
+use App\Http\ViewComposers\PortalComposer;
use App\Models\RecurringInvoice;
use Auth;
@@ -36,16 +37,36 @@ class ContactHashLoginController extends Controller
}
- return redirect('/client/invoices');
+ return redirect($this->setRedirectPath());
}
public function magicLink(string $magic_link)
{
- return redirect('/client/invoices');
+
+ return redirect($this->setRedirectPath());
}
public function errorPage()
{
return render('generic.error', ['title' => session()->get('title'), 'notification' => session()->get('notification')]);
}
+
+ private function setRedirectPath()
+ {
+
+ if(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_INVOICES)
+ return '/client/invoices';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_RECURRING_INVOICES)
+ return '/client/recurring_invoices';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_QUOTES)
+ return '/client/quotes';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_CREDITS)
+ return '/client/credits';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_TASKS)
+ return '/client/tasks';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_EXPENSES)
+ return '/client/expenses';
+
+ }
+
}
diff --git a/app/Http/Middleware/ContactKeyLogin.php b/app/Http/Middleware/ContactKeyLogin.php
index a40b423d91d0..93d2c1edf423 100644
--- a/app/Http/Middleware/ContactKeyLogin.php
+++ b/app/Http/Middleware/ContactKeyLogin.php
@@ -11,6 +11,7 @@
namespace App\Http\Middleware;
+use App\Http\ViewComposers\PortalComposer;
use App\Libraries\MultiDB;
use App\Models\Client;
use App\Models\ClientContact;
@@ -59,7 +60,7 @@ class ContactKeyLogin
return redirect()->to($request->query('redirect'));
}
- return redirect()->to('client/dashboard');
+ return redirect($this->setRedirectPath());
}
}
elseif ($request->segment(3) && config('ninja.db.multi_db_enabled')) {
@@ -77,8 +78,8 @@ class ContactKeyLogin
return redirect()->to($request->query('next'));
}
- return redirect()->to('client/dashboard');
- }
+ return redirect($this->setRedirectPath());
+ }
}
} elseif ($request->segment(2) && $request->segment(2) == 'key_login' && $request->segment(3)) {
@@ -93,7 +94,7 @@ class ContactKeyLogin
return redirect($request->query('next'));
}
- return redirect()->to('client/dashboard');
+ return redirect($this->setRedirectPath());
}
} elseif ($request->has('client_hash') && config('ninja.db.multi_db_enabled')) {
if (MultiDB::findAndSetDbByClientHash($request->input('client_hash'))) {
@@ -106,7 +107,7 @@ class ContactKeyLogin
$primary_contact->email = Str::random(6) . "@example.com"; $primary_contact->save();
auth()->guard('contact')->loginUsingId($primary_contact->id, true);
- return redirect()->to('client/dashboard');
+ return redirect($this->setRedirectPath());
}
}
} elseif ($request->has('client_hash')) {
@@ -119,10 +120,28 @@ class ContactKeyLogin
auth()->guard('contact')->loginUsingId($primary_contact->id, true);
- return redirect()->to('client/dashboard');
+ return redirect($this->setRedirectPath());
}
}
return $next($request);
}
+
+ private function setRedirectPath()
+ {
+
+ if(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_INVOICES)
+ return '/client/invoices';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_RECURRING_INVOICES)
+ return '/client/recurring_invoices';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_QUOTES)
+ return '/client/quotes';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_CREDITS)
+ return '/client/credits';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_TASKS)
+ return '/client/tasks';
+ elseif(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_EXPENSES)
+ return '/client/expenses';
+
+ }
}
diff --git a/app/Services/Client/PaymentMethod.php b/app/Services/Client/PaymentMethod.php
index 4a18387d2215..f36fb2b2d3db 100644
--- a/app/Services/Client/PaymentMethod.php
+++ b/app/Services/Client/PaymentMethod.php
@@ -70,16 +70,16 @@ class PaymentMethod
$transformed_ids = $this->transformKeys(explode(',', $company_gateways));
- $this->gateways =
- CompanyGateway::with('gateway')
- ->where('company_id', $this->client->company_id)
+ $this->gateways = $this->client
+ ->company
+ ->company_gateways
->whereIn('id', $transformed_ids)
->where('is_deleted', false)
->whereNull('deleted_at')
->where('gateway_key', '!=', '54faab2ab6e3223dbe848b1686490baa')
->sortby(function ($model) use ($transformed_ids) { //company gateways are sorted in order of priority
return array_search($model->id, $transformed_ids);// this closure sorts for us
- })->get();
+ });
} else {
@@ -105,15 +105,16 @@ class PaymentMethod
$transformed_ids = $this->transformKeys(explode(',', $company_gateways));
- $this->gateways = CompanyGateway::with('gateway')
- ->where('company_id', $this->client->company_id)
+ $this->gateways = $this->client
+ ->company
+ ->company_gateways
->whereIn('id', $transformed_ids)
->where('is_deleted', false)
->whereNull('deleted_at')
->where('gateway_key', '54faab2ab6e3223dbe848b1686490baa')
->sortby(function ($model) use ($transformed_ids) { //company gateways are sorted in order of priority
return array_search($model->id, $transformed_ids);// this closure sorts for us
- })->get();
+ });
} else {
diff --git a/app/Utils/Helpers.php b/app/Utils/Helpers.php
index 1594b066e521..c80b55dc6089 100644
--- a/app/Utils/Helpers.php
+++ b/app/Utils/Helpers.php
@@ -264,7 +264,6 @@ class Helpers
return $value;
// $x = str_replace(["\n", "
"], ["\r", "
"], $value);
-
// return $x;
}
diff --git a/resources/views/portal/ninja2020/invoices/payment.blade.php b/resources/views/portal/ninja2020/invoices/payment.blade.php
index a3969763b6e5..b45fd4435575 100644
--- a/resources/views/portal/ninja2020/invoices/payment.blade.php
+++ b/resources/views/portal/ninja2020/invoices/payment.blade.php
@@ -78,7 +78,7 @@
{{ ctrans('texts.due_date') }}