mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-07 18:44:28 -04:00
commit
54de9d6c07
59398
app/DataProviders/Domains.php
Normal file
59398
app/DataProviders/Domains.php
Normal file
File diff suppressed because it is too large
Load Diff
@ -11,24 +11,25 @@
|
||||
|
||||
namespace App\Jobs\Account;
|
||||
|
||||
use App\DataMapper\Analytics\AccountCreated as AnalyticsAccountCreated;
|
||||
use App\DataMapper\Analytics\AccountPlatform;
|
||||
use App\Events\Account\AccountCreated;
|
||||
use App\Utils\Ninja;
|
||||
use App\Models\Account;
|
||||
use Illuminate\Support\Str;
|
||||
use App\Jobs\User\CreateUser;
|
||||
use App\DataProviders\Domains;
|
||||
use App\Jobs\Util\VersionCheck;
|
||||
use App\Jobs\Mail\NinjaMailerJob;
|
||||
use App\Jobs\Company\CreateCompany;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use App\Jobs\Mail\NinjaMailerObject;
|
||||
use App\Utils\Traits\User\LoginCache;
|
||||
use App\Events\Account\AccountCreated;
|
||||
use Turbo124\Beacon\Facades\LightLogs;
|
||||
use App\Jobs\Company\CreateCompanyToken;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use App\DataMapper\Analytics\AccountPlatform;
|
||||
use App\Jobs\Company\CreateCompanyPaymentTerms;
|
||||
use App\Jobs\Company\CreateCompanyTaskStatuses;
|
||||
use App\Jobs\Company\CreateCompanyToken;
|
||||
use App\Jobs\Mail\NinjaMailerJob;
|
||||
use App\Jobs\Mail\NinjaMailerObject;
|
||||
use App\Jobs\User\CreateUser;
|
||||
use App\Jobs\Util\VersionCheck;
|
||||
use App\Models\Account;
|
||||
use App\Utils\Ninja;
|
||||
use App\Utils\Traits\User\LoginCache;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use Illuminate\Support\Str;
|
||||
use Turbo124\Beacon\Facades\LightLogs;
|
||||
use App\DataMapper\Analytics\AccountCreated as AnalyticsAccountCreated;
|
||||
|
||||
class CreateAccount
|
||||
{
|
||||
@ -39,6 +40,8 @@ class CreateAccount
|
||||
|
||||
protected $client_ip;
|
||||
|
||||
|
||||
|
||||
public function __construct(array $sp660339, $client_ip)
|
||||
{
|
||||
$this->request = $sp660339;
|
||||
@ -77,7 +80,7 @@ class CreateAccount
|
||||
$sp794f3f->hosted_company_count = config('ninja.quotas.free.max_companies');
|
||||
$sp794f3f->account_sms_verified = true;
|
||||
|
||||
if (in_array($this->getDomain($this->request['email']), ['mailto.plus', 'givmail.com','yopmail.com','gmail.com', 'hotmail.com', 'outlook.com', 'yahoo.com', 'aol.com', 'mail.ru','brand-app.biz','proton.me','ema-sofia.eu', 'mail.com', 'fastmail.com'])) {
|
||||
if (in_array($this->getDomain($this->request['email']), Domains::getDomains())) {
|
||||
$sp794f3f->account_sms_verified = false;
|
||||
}
|
||||
|
||||
@ -166,4 +169,8 @@ class CreateAccount
|
||||
|
||||
return 'gmail.com';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -11,15 +11,16 @@
|
||||
|
||||
namespace App\Listeners\Mail;
|
||||
|
||||
use App\Utils\Ninja;
|
||||
use App\Models\Webhook;
|
||||
use App\Libraries\MultiDB;
|
||||
use App\Models\QuoteInvitation;
|
||||
use App\Models\CreditInvitation;
|
||||
use App\Models\InvoiceInvitation;
|
||||
use App\Models\PurchaseOrderInvitation;
|
||||
use App\Models\QuoteInvitation;
|
||||
use App\Models\RecurringInvoiceInvitation;
|
||||
use App\Utils\Ninja;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Mail\Events\MessageSent;
|
||||
use App\Models\RecurringInvoiceInvitation;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Symfony\Component\Mime\MessageConverter;
|
||||
|
||||
class MailSentListener implements ShouldQueue
|
||||
@ -42,10 +43,7 @@ class MailSentListener implements ShouldQueue
|
||||
public function handle(MessageSent $event)
|
||||
{
|
||||
|
||||
if (!Ninja::isHosted()) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
$message_id = $event->sent->getMessageId();
|
||||
|
||||
$message = MessageConverter::toEmail($event->sent->getOriginalMessage());
|
||||
@ -66,6 +64,10 @@ class MailSentListener implements ShouldQueue
|
||||
$invitation->message_id = $message_id;
|
||||
$invitation->save();
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
nlog("Mail Sent Listener Exception");
|
||||
nlog($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private function discoverInvitation($key)
|
||||
@ -74,14 +76,18 @@ class MailSentListener implements ShouldQueue
|
||||
|
||||
foreach (MultiDB::$dbs as $db) {
|
||||
if ($invitation = InvoiceInvitation::on($db)->where('key', $key)->first()) {
|
||||
$invitation->invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client");
|
||||
return $invitation;
|
||||
} elseif ($invitation = QuoteInvitation::on($db)->where('key', $key)->first()) {
|
||||
$invitation->quote->sendEvent(Webhook::EVENT_SENT_QUOTE, "client");
|
||||
return $invitation;
|
||||
} elseif ($invitation = RecurringInvoiceInvitation::on($db)->where('key', $key)->first()) {
|
||||
return $invitation;
|
||||
} elseif ($invitation = CreditInvitation::on($db)->where('key', $key)->first()) {
|
||||
$invitation->credit->sendEvent(Webhook::EVENT_SENT_CREDIT, "client");
|
||||
return $invitation;
|
||||
} elseif ($invitation = PurchaseOrderInvitation::on($db)->where('key', $key)->first()) {
|
||||
$invitation->purchase_order->sendEvent(Webhook::EVENT_SENT_PURCHASE_ORDER, "vendor");
|
||||
return $invitation;
|
||||
}
|
||||
}
|
||||
|
@ -11,30 +11,32 @@
|
||||
|
||||
namespace Tests\Integration;
|
||||
|
||||
use App\DataMapper\CompanySettings;
|
||||
use App\DataMapper\InvoiceItem;
|
||||
use App\Factory\CompanyUserFactory;
|
||||
use App\Jobs\Ledger\UpdateLedger;
|
||||
use App\Models\Account;
|
||||
use Tests\TestCase;
|
||||
use App\Models\User;
|
||||
use App\Models\Client;
|
||||
use App\Models\ClientContact;
|
||||
use App\Models\Account;
|
||||
use App\Models\Company;
|
||||
use App\Models\CompanyLedger;
|
||||
use App\Models\CompanyToken;
|
||||
use App\Models\Invoice;
|
||||
use App\Models\Payment;
|
||||
use App\Models\User;
|
||||
use App\Models\CompanyToken;
|
||||
use App\Models\ClientContact;
|
||||
use App\Models\CompanyLedger;
|
||||
use App\Utils\Traits\AppSetup;
|
||||
use App\DataMapper\InvoiceItem;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
use App\Jobs\Ledger\UpdateLedger;
|
||||
use App\DataMapper\CompanySettings;
|
||||
use App\Factory\CompanyUserFactory;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
use Tests\TestCase;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
/** @test*/
|
||||
class CompanyLedgerTest extends TestCase
|
||||
{
|
||||
use DatabaseTransactions;
|
||||
use MakesHash;
|
||||
use AppSetup;
|
||||
|
||||
public $company;
|
||||
|
||||
@ -55,6 +57,7 @@ class CompanyLedgerTest extends TestCase
|
||||
$this->withoutExceptionHandling();
|
||||
|
||||
$this->artisan('db:seed --force');
|
||||
$this->buildCache(true);
|
||||
|
||||
$this->faker = \Faker\Factory::create();
|
||||
$fake_email = $this->faker->email();
|
||||
|
35
tests/Unit/DomainCheckTest.php
Normal file
35
tests/Unit/DomainCheckTest.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com).
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://www.elastic.co/licensing/elastic-license
|
||||
*/
|
||||
|
||||
namespace Tests\Unit;
|
||||
|
||||
use App\DataProviders\Domains;
|
||||
use Tests\TestCase;
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
class DomainCheckTest extends TestCase
|
||||
{
|
||||
|
||||
protected function setUp() :void
|
||||
{
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
public function testDomainCheck()
|
||||
{
|
||||
|
||||
$this->assertTrue(in_array('yopmail.com', Domains::getDomains()));
|
||||
$this->assertFalse(in_array('invoiceninja.com', Domains::getDomains()));
|
||||
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user