MOON
Server: Apache
System: Linux 101-53-147-124.cprapid.com 4.18.0-553.121.1.el8_10.x86_64 #1 SMP Thu Apr 30 09:06:34 EDT 2026 x86_64
User: clientsoftwares (1005)
PHP: 8.2.30
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open
Upload Files
File: /home/clientsoftwares/public_html/stocky.clientsoftwares.com/app/Models/Settings.php
<?php

namespace App\Models;

use App\Models\BaseModel;
use App\Scopes\CompanyScope;
use Symfony\Component\Mailer\Exception\TransportException;
use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransport;

class Settings extends BaseModel
{
    protected $table = 'settings';

    protected $default = ['xid'];

    protected $guarded = ['id', 'is_global', 'created_at', 'updated_at'];

    protected $hidden = ['id', 'created_at', 'updated_at'];

    protected $appends = ['xid'];

    protected $casts = [
        'credentials' => 'array',
        'other_data' => 'array',
        'status' => 'integer',
        'verified' => 'integer',
    ];

    public static $awsRegions = [
        'us-east-2' => 'US East (Ohio) us-east-2',
        'us-east-1' => 'US East (N. Virginia) us-east-1',
        'us-west-1' => 'US West (N. California) us-west-1',
        'us-west-2' => 'US West (Oregon) us-west-2',
        'af-south-1' => 'Africa (Cape Town) af-south-1',
        'ap-east-1' => 'Asia Pacific (Hong Kong) ap-east-1',
        'ap-south-1' => 'Asia Pacific (Mumbai) ap-south-1',
        'ap-northeast-3' => 'Asia Pacific (Osaka-Local) ap-northeast-3',
        'ap-northeast-2' => 'Asia Pacific (Seoul)	ap-northeast-2',
        'ap-southeast-1' => 'Asia Pacific (Singapore)	ap-southeast-1',
        'ap-southeast-2' => 'Asia Pacific (Sydney) ap-southeast-2',
        'ap-northeast-1' => 'Asia Pacific (Tokyo)	ap-northeast-1',
        'ca-central-1' => 'Canada (Central) ca-central-1',
        'eu-central-1' => 'Europe (Frankfurt) eu-central-1',
        'eu-west-1' => 'Europe (Ireland) eu-west-1',
        'eu-west-2' => 'Europe (London)  eu-west-2',
        'eu-south-1' => 'Europe (Milan) eu-south-1',
        'eu-west-3' => 'Europe (Paris) eu-west-3',
        'eu-north-1' => 'Europe (Stockholm) eu-north-1',
        'me-south-1' => 'Middle East (Bahrain) me-south-1',
        'sa-east-1' => 'South America (São Paulo)	 sa-east-1'
    ];

    protected static function boot()
    {
        parent::boot();

        static::addGlobalScope(new CompanyScope);
    }

    public function verifySmtp()
    {
        if ($this->name_key == 'smtp') {
            try {
                $tls = $this->credentials['encryption'] === 'ssl';
                $transport = new EsmtpTransport($this->credentials['host'], $this->credentials['port'], $tls);
                $transport->setUsername($this->credentials['username']);
                $transport->setPassword($this->credentials['password']);
                $transport->start();

                    if ($this->verified == 0) {
                        $this->verified = 1;
                        $this->save();
                    }

                    return [
                        'status' => 'success',
                        'message' => 'SMTP Setting saved successfully',
                        'verified' => 1
                    ];
            } catch (TransportException | \Exception $e) {
                $this->verified = 0;
                $this->save();

                return [
                    'status' => 'fail',
                    'message' => $e->getMessage(),
                    'verified' => 0
                ];
            } catch (\Exception $e) {
                $this->verified = 0;
                $this->save();

                return [
                    'status' => 'fail',
                    'message' => $e->getMessage(),
                    'verified' => 0
                ];
            }
        } else {
            return [
                'status' => 'success',
                'message' => 'Mail Setting saved successfully',
                'verified' => 0
            ];
        }
    }
}