feat: company blacklist

This commit is contained in:
paulwer 2024-03-19 07:55:55 +01:00
parent 7cc5ff11d4
commit a5b3215ff7
3 changed files with 15 additions and 2 deletions

View File

@ -118,6 +118,8 @@ use Laracasts\Presenter\PresentableTrait;
* @property bool $expense_mailbox_allow_unknown * @property bool $expense_mailbox_allow_unknown
* @property string|null $expense_mailbox_whitelist_domains * @property string|null $expense_mailbox_whitelist_domains
* @property string|null $expense_mailbox_whitelist_emails * @property string|null $expense_mailbox_whitelist_emails
* @property string|null $expense_mailbox_blacklist_domains
* @property string|null $expense_mailbox_blacklist_emails
* @property int $deleted_at * @property int $deleted_at
* @property string $smtp_username * @property string $smtp_username
* @property string $smtp_password * @property string $smtp_password
@ -373,7 +375,8 @@ class Company extends BaseModel
'expense_mailbox_allow_unknown', 'expense_mailbox_allow_unknown',
'expense_mailbox_whitelist_domains', 'expense_mailbox_whitelist_domains',
'expense_mailbox_whitelist_emails', 'expense_mailbox_whitelist_emails',
'expense_mailbox_whitelist', 'expense_mailbox_blacklist_domains',
'expense_mailbox_blacklist_emails',
'smtp_host', 'smtp_host',
'smtp_port', 'smtp_port',
'smtp_encryption', 'smtp_encryption',

View File

@ -207,6 +207,14 @@ class IngresEmailEngine
$domain_whitelist = explode(",", $this->company->expense_mailbox_whitelist_domains); $domain_whitelist = explode(",", $this->company->expense_mailbox_whitelist_domains);
if (in_array($domain, $domain_whitelist)) if (in_array($domain, $domain_whitelist))
return true; return true;
$email_blacklist = explode(",", $this->company->expense_mailbox_blacklist_emails);
if (in_array($this->email->from, $email_blacklist))
return false;
$domain_blacklist = explode(",", $this->company->expense_mailbox_blacklist_domains);
if (in_array($domain, $domain_blacklist))
return false;
// allow unknown
if ($this->company->expense_mailbox_allow_unknown && sizeOf($email_whitelist) == 0 && sizeOf($domain_whitelist) == 0) // from unknown only, when no whitelists are defined if ($this->company->expense_mailbox_allow_unknown && sizeOf($email_whitelist) == 0 && sizeOf($domain_whitelist) == 0) // from unknown only, when no whitelists are defined
return true; return true;

View File

@ -19,6 +19,8 @@ return new class extends Migration {
$table->boolean("expense_mailbox_allow_unknown")->default(false); $table->boolean("expense_mailbox_allow_unknown")->default(false);
$table->string("expense_mailbox_whitelist_domains")->nullable(); $table->string("expense_mailbox_whitelist_domains")->nullable();
$table->string("expense_mailbox_whitelist_emails")->nullable(); $table->string("expense_mailbox_whitelist_emails")->nullable();
$table->string("expense_mailbox_blacklist_domains")->nullable();
$table->string("expense_mailbox_blacklist_emails")->nullable();
}); });
Schema::table('vendors', function (Blueprint $table) { Schema::table('vendors', function (Blueprint $table) {
$table->string("invoicing_email")->nullable(); $table->string("invoicing_email")->nullable();