mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-08 16:34:30 -04:00
Support viewing invoice is password and custom subdomain are used
This commit is contained in:
parent
b4cd7fba72
commit
81764778d0
@ -164,8 +164,9 @@ class InvoiceController extends BaseController
|
||||
foreach ($invoice->invitations as $invitation) {
|
||||
foreach ($client->contacts as $contact) {
|
||||
if ($invitation->contact_id == $contact->id) {
|
||||
$hasPassword = $account->isClientPortalPasswordEnabled() && $contact->password;
|
||||
$contact->email_error = $invitation->email_error;
|
||||
$contact->invitation_link = $invitation->getLink();
|
||||
$contact->invitation_link = $invitation->getLink('view', $hasPassword, $hasPassword);
|
||||
$contact->invitation_viewed = $invitation->viewed_date && $invitation->viewed_date != '0000-00-00 00:00:00' ? $invitation->viewed_date : false;
|
||||
$contact->invitation_openend = $invitation->opened_date && $invitation->opened_date != '0000-00-00 00:00:00' ? $invitation->opened_date : false;
|
||||
$contact->invitation_status = $contact->email_error ? false : $invitation->getStatus();
|
||||
|
@ -1787,6 +1787,11 @@ class Account extends Eloquent
|
||||
|
||||
return $yearStart->format('Y-m-d');
|
||||
}
|
||||
|
||||
public function isClientPortalPasswordEnabled()
|
||||
{
|
||||
return $this->hasFeature(FEATURE_CLIENT_PORTAL_PASSWORD) && $this->enable_portal_password;
|
||||
}
|
||||
}
|
||||
|
||||
Account::updated(function ($account) {
|
||||
|
@ -294,7 +294,7 @@ class Client extends EntityModel
|
||||
}
|
||||
}
|
||||
|
||||
if (Utils::hasFeature(FEATURE_CLIENT_PORTAL_PASSWORD) && $this->account->enable_portal_password) {
|
||||
if ($this->account->isClientPortalPasswordEnabled()) {
|
||||
if (! empty($data['password']) && $data['password'] != '-%unchanged%-') {
|
||||
$contact->password = bcrypt($data['password']);
|
||||
} elseif (empty($data['password'])) {
|
||||
|
@ -66,7 +66,7 @@ class Invitation extends EntityModel
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getLink($type = 'view', $forceOnsite = false)
|
||||
public function getLink($type = 'view', $forceOnsite = false, $forcePlain = false)
|
||||
{
|
||||
if (! $this->account) {
|
||||
$this->load('account');
|
||||
@ -87,7 +87,7 @@ class Invitation extends EntityModel
|
||||
|
||||
if ($iframe_url && ! $forceOnsite) {
|
||||
return "{$iframe_url}?{$this->invitation_key}";
|
||||
} elseif ($this->account->subdomain) {
|
||||
} elseif ($this->account->subdomain && ! $forcePlain) {
|
||||
$url = Utils::replaceSubdomain($url, $account->subdomain);
|
||||
}
|
||||
}
|
||||
|
@ -171,7 +171,7 @@ class ContactMailer extends Mailer
|
||||
$variables['autobill'] = $invoice->present()->autoBillEmailMessage();
|
||||
}
|
||||
|
||||
if (empty($invitation->contact->password) && $account->hasFeature(FEATURE_CLIENT_PORTAL_PASSWORD) && $account->enable_portal_password && $account->send_portal_password) {
|
||||
if (empty($invitation->contact->password) && $account->isClientPortalPasswordEnabled() && $account->send_portal_password) {
|
||||
// The contact needs a password
|
||||
$variables['password'] = $password = $this->generatePassword();
|
||||
$invitation->contact->password = bcrypt($password);
|
||||
|
Loading…
x
Reference in New Issue
Block a user