diff --git a/app/Http/Controllers/Auth/ContactForgotPasswordController.php b/app/Http/Controllers/Auth/ContactForgotPasswordController.php index 991aea83c4b9..65f0118fbf01 100644 --- a/app/Http/Controllers/Auth/ContactForgotPasswordController.php +++ b/app/Http/Controllers/Auth/ContactForgotPasswordController.php @@ -100,10 +100,18 @@ class ContactForgotPasswordController extends Controller if(Ninja::isHosted() && $company = Company::where('company_key', $request->input('company_key'))->first()) { - $contact = ClientContact::where(['email' => $request->input('email'), 'company_id' => $company->id])->first(); + $contact = ClientContact::where(['email' => $request->input('email'), 'company_id' => $company->id]) + ->whereHas('client', function ($query) { + $query->where('is_deleted',0); + })->first(); + } + else { + + $contact = ClientContact::where(['email' => $request->input('email')]) + ->whereHas('client', function ($query) { + $query->where('is_deleted',0); + })->first(); } - else - $contact = ClientContact::where(['email' => $request->input('email')])->first(); $response = false; diff --git a/app/Http/Controllers/Auth/ContactLoginController.php b/app/Http/Controllers/Auth/ContactLoginController.php index bd39ca0da864..18fbf462dc0d 100644 --- a/app/Http/Controllers/Auth/ContactLoginController.php +++ b/app/Http/Controllers/Auth/ContactLoginController.php @@ -98,7 +98,10 @@ class ContactLoginController extends Controller if(Ninja::isHosted() && $request->has('password') && $company = Company::where('company_key', $request->input('company_key'))->first()){ - $contact = ClientContact::where(['email' => $request->input('email'), 'company_id' => $company->id])->first(); + $contact = ClientContact::where(['email' => $request->input('email'), 'company_id' => $company->id]) + ->whereHas('client', function ($query) { + $query->where('is_deleted',0); + })->first(); if(!$contact) return $this->sendFailedLoginResponse($request); diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php index 4d05cb2f31f2..f8751f2747fa 100644 --- a/app/Http/Controllers/Auth/ResetPasswordController.php +++ b/app/Http/Controllers/Auth/ResetPasswordController.php @@ -15,6 +15,7 @@ use App\Http\Controllers\Controller; use App\Libraries\MultiDB; use App\Models\Account; use App\Models\Company; +use App\Utils\Ninja; use Illuminate\Foundation\Auth\ResetsPasswords; use Illuminate\Http\JsonResponse; use Illuminate\Http\RedirectResponse; @@ -55,9 +56,14 @@ class ResetPasswordController extends Controller public function showResetForm(Request $request, $token = null) { + $company = false; - MultiDB::findAndSetDbByCompanyKey($request->session()->get('company_key')); - $company = Company::where('company_key', $request->session()->get('company_key'))->first(); + if(Ninja::isHosted()){ + + MultiDB::findAndSetDbByCompanyKey($request->session()->get('company_key')); + $company = Company::where('company_key', $request->session()->get('company_key'))->first(); + + } if($company) $account = $company->account; diff --git a/app/Jobs/Mail/NinjaMailer.php b/app/Jobs/Mail/NinjaMailer.php index 239b368c6b91..4ebd9a9bb5ed 100644 --- a/app/Jobs/Mail/NinjaMailer.php +++ b/app/Jobs/Mail/NinjaMailer.php @@ -35,7 +35,13 @@ class NinjaMailer extends Mailable public function build() { - return $this->from(config('mail.from.address'), config('mail.from.name')) + $from_name = config('mail.from.name'); + + if(property_exists($this->mail_obj, 'from_name')){ + $from_name = $this->mail_obj->from_name; + } + + return $this->from(config('mail.from.address'), $from_name) ->subject($this->mail_obj->subject) ->view($this->mail_obj->markdown, $this->mail_obj->data) ->withSwiftMessage(function ($message) { diff --git a/app/Jobs/Mail/NinjaMailerJob.php b/app/Jobs/Mail/NinjaMailerJob.php index fc7eb610590f..dfaec8927bc3 100644 --- a/app/Jobs/Mail/NinjaMailerJob.php +++ b/app/Jobs/Mail/NinjaMailerJob.php @@ -219,7 +219,7 @@ class NinjaMailerJob implements ShouldQueue $google->getClient()->setAccessToken(json_encode($user->oauth_user_token)); //need to slow down gmail requests otherwise we hit 429's - sleep(1); + sleep(rand(1,3)); } catch(\Exception $e) { $this->logMailError('Gmail Token Invalid', $this->company->clients()->first()); diff --git a/app/Mail/ClientContact/ClientContactResetPasswordObject.php b/app/Mail/ClientContact/ClientContactResetPasswordObject.php index a911045ff922..fa6a0906a8f5 100644 --- a/app/Mail/ClientContact/ClientContactResetPasswordObject.php +++ b/app/Mail/ClientContact/ClientContactResetPasswordObject.php @@ -22,6 +22,7 @@ class ClientContactResetPasswordObject public $token; private $company; + /** * */ @@ -52,12 +53,19 @@ class ClientContactResetPasswordObject 'logo' => $this->company->present()->logo(), ]; + $email_from_name = config('mail.from.name'); + + if(property_exists($settings, 'email_from_name') && strlen($settings->email_from_name) > 1) + $email_from_name = $settings->email_from_name; + else + $email_from_name = $this->company->present()->name(); $mail_obj = new \stdClass; $mail_obj->subject = ctrans('texts.your_password_reset_link'); $mail_obj->data = $data; $mail_obj->markdown = 'email.client.generic'; $mail_obj->tag = $this->company->company_key; + $mail_obj->from_name = $email_from_name; return $mail_obj; } diff --git a/app/PaymentDrivers/Stripe/BrowserPay.php b/app/PaymentDrivers/Stripe/BrowserPay.php index 9de0cbcca8fa..b5ba9c7ca57f 100644 --- a/app/PaymentDrivers/Stripe/BrowserPay.php +++ b/app/PaymentDrivers/Stripe/BrowserPay.php @@ -227,11 +227,11 @@ class BrowserPay implements MethodInterface if(Ninja::isHosted()) { - if($this->company_gateway->company->portal_mode == 'domain'){ - $domain = $this->company_gateway->company->portal_domain; + if($this->stripe->company_gateway->company->portal_mode == 'domain'){ + $domain = $this->stripe->company_gateway->company->portal_domain; } else{ - $domain = $this->company_gateway->company->subdomain . '.' . config('ninja.app_domain'); + $domain = $this->stripe->company_gateway->company->subdomain . '.' . config('ninja.app_domain'); } } diff --git a/app/PaymentDrivers/Stripe/UpdatePaymentMethods.php b/app/PaymentDrivers/Stripe/UpdatePaymentMethods.php index de7d38b0eaa9..f585ada7b80f 100644 --- a/app/PaymentDrivers/Stripe/UpdatePaymentMethods.php +++ b/app/PaymentDrivers/Stripe/UpdatePaymentMethods.php @@ -88,7 +88,7 @@ class UpdatePaymentMethods ], $this->stripe->stripe_connect_auth); - foreach($alipay_methods as $method) + foreach($sofort_methods as $method) { $this->addOrUpdateCard($method, $customer->id, $client, GatewayType::SOFORT); } diff --git a/config/database.php b/config/database.php index b4136c460a6e..7ae5cf6fd203 100644 --- a/config/database.php +++ b/config/database.php @@ -97,12 +97,12 @@ return [ 'strict' => env('DB_STRICT', false), 'engine' => 'InnoDB ROW_FORMAT=DYNAMIC', // 'options' => Ninja::isHosted() ? config('ninja.db_options') : [], - 'options' => [ - PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false, - PDO::MYSQL_ATTR_SSL_KEY => env("DB_CLIENT_KEY", ''), - PDO::MYSQL_ATTR_SSL_CERT => env("DB_CLIENT_CERT", ''), - PDO::MYSQL_ATTR_SSL_CA => env("DB_CA_CERT", ''), - ], + // 'options' => [ + // PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false, + // PDO::MYSQL_ATTR_SSL_KEY => env("DB_CLIENT_KEY", ''), + // PDO::MYSQL_ATTR_SSL_CERT => env("DB_CLIENT_CERT", ''), + // PDO::MYSQL_ATTR_SSL_CA => env("DB_CA_CERT", ''), + // ], ], 'db-ninja-01a' => [ @@ -118,7 +118,6 @@ return [ 'prefix_indexes' => true, 'strict' => env('DB_STRICT', false), 'engine' => 'InnoDB ROW_FORMAT=DYNAMIC', - 'ssl_mode' => env('SSL_MODE',''), //required // 'options' => Ninja::isHosted() ? config('ninja.db_options') : [], ], @@ -135,7 +134,6 @@ return [ 'prefix_indexes' => true, 'strict' => env('DB_STRICT', false), 'engine' => 'InnoDB ROW_FORMAT=DYNAMIC', - 'ssl_mode' => env('SSL_MODE',''), // 'options' => Ninja::isHosted() ? config('ninja.db_options') : [], ], @@ -152,7 +150,6 @@ return [ 'prefix_indexes' => true, 'strict' => env('DB_STRICT', false), 'engine' => 'InnoDB ROW_FORMAT=DYNAMIC', - 'ssl_mode' => env('SSL_MODE',''), // 'options' => Ninja::isHosted() ? config('ninja.db_options') : [], ], ],