diff --git a/app/Http/Controllers/ClientPortalController.php b/app/Http/Controllers/ClientPortalController.php
index 11f37a7074a3..e0de71a3ed1a 100644
--- a/app/Http/Controllers/ClientPortalController.php
+++ b/app/Http/Controllers/ClientPortalController.php
@@ -228,6 +228,11 @@ class ClientPortalController extends BaseController
public function dashboard($contactKey = false)
{
+ if (request()->silent) {
+ session(['silent' => true]);
+ return redirect(request()->url());
+ }
+
if ($contactKey) {
if (! $contact = Contact::where('contact_key', '=', $contactKey)->first()) {
return $this->returnError();
diff --git a/app/Models/Contact.php b/app/Models/Contact.php
index 593eb207077e..c19ba4bda6cb 100644
--- a/app/Models/Contact.php
+++ b/app/Models/Contact.php
@@ -2,6 +2,7 @@
namespace App\Models;
+use Utils;
use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
@@ -142,6 +143,23 @@ class Contact extends EntityModel implements AuthenticatableContract, CanResetPa
*/
public function getLinkAttribute()
{
- return \URL::to('client/dashboard/' . $this->contact_key);
+ if (! $this->account) {
+ $this->load('account');
+ }
+
+ $account = $this->account;
+ $url = trim(SITE_URL, '/');
+
+ if ($account->hasFeature(FEATURE_CUSTOM_URL)) {
+ if (Utils::isNinjaProd()) {
+ $url = $account->present()->clientPortalLink();
+ }
+
+ if ($this->account->subdomain) {
+ $url = Utils::replaceSubdomain($url, $account->subdomain);
+ }
+ }
+
+ return "{$url}/client/dashboard/{$this->contact_key}";
}
}
diff --git a/resources/views/clients/show.blade.php b/resources/views/clients/show.blade.php
index a8aa2a8fc14f..702437d8eddf 100644
--- a/resources/views/clients/show.blade.php
+++ b/resources/views/clients/show.blade.php
@@ -157,7 +157,10 @@
{{ $contact->phone }}
@endif
@if (Auth::user()->confirmed && $client->account->enable_client_portal)
- {{ trans('texts.view_client_portal') }}
+ {{ trans('texts.view_client_portal') }}
+
+
@endif
@endforeach