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 ($invoice->invitations as $invitation) {
|
||||||
foreach ($client->contacts as $contact) {
|
foreach ($client->contacts as $contact) {
|
||||||
if ($invitation->contact_id == $contact->id) {
|
if ($invitation->contact_id == $contact->id) {
|
||||||
|
$hasPassword = $account->isClientPortalPasswordEnabled() && $contact->password;
|
||||||
$contact->email_error = $invitation->email_error;
|
$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_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_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();
|
$contact->invitation_status = $contact->email_error ? false : $invitation->getStatus();
|
||||||
|
@ -1787,6 +1787,11 @@ class Account extends Eloquent
|
|||||||
|
|
||||||
return $yearStart->format('Y-m-d');
|
return $yearStart->format('Y-m-d');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isClientPortalPasswordEnabled()
|
||||||
|
{
|
||||||
|
return $this->hasFeature(FEATURE_CLIENT_PORTAL_PASSWORD) && $this->enable_portal_password;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Account::updated(function ($account) {
|
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%-') {
|
if (! empty($data['password']) && $data['password'] != '-%unchanged%-') {
|
||||||
$contact->password = bcrypt($data['password']);
|
$contact->password = bcrypt($data['password']);
|
||||||
} elseif (empty($data['password'])) {
|
} elseif (empty($data['password'])) {
|
||||||
|
@ -66,7 +66,7 @@ class Invitation extends EntityModel
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getLink($type = 'view', $forceOnsite = false)
|
public function getLink($type = 'view', $forceOnsite = false, $forcePlain = false)
|
||||||
{
|
{
|
||||||
if (! $this->account) {
|
if (! $this->account) {
|
||||||
$this->load('account');
|
$this->load('account');
|
||||||
@ -87,7 +87,7 @@ class Invitation extends EntityModel
|
|||||||
|
|
||||||
if ($iframe_url && ! $forceOnsite) {
|
if ($iframe_url && ! $forceOnsite) {
|
||||||
return "{$iframe_url}?{$this->invitation_key}";
|
return "{$iframe_url}?{$this->invitation_key}";
|
||||||
} elseif ($this->account->subdomain) {
|
} elseif ($this->account->subdomain && ! $forcePlain) {
|
||||||
$url = Utils::replaceSubdomain($url, $account->subdomain);
|
$url = Utils::replaceSubdomain($url, $account->subdomain);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -171,7 +171,7 @@ class ContactMailer extends Mailer
|
|||||||
$variables['autobill'] = $invoice->present()->autoBillEmailMessage();
|
$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
|
// The contact needs a password
|
||||||
$variables['password'] = $password = $this->generatePassword();
|
$variables['password'] = $password = $this->generatePassword();
|
||||||
$invitation->contact->password = bcrypt($password);
|
$invitation->contact->password = bcrypt($password);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user