| 
				Server : Apache System : Linux server.mata-lashes.com 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 User : matalashes ( 1004) PHP Version : 8.1.29 Disable Function : NONE Directory : /home/matalashes/.trash/app.bak.12/Models/  | 
Upload File :  | 
<?php
namespace App\Models;
use CodeIgniter\Model;
use Config\Services;
class PsStoreUser extends Model
{
    protected $DBGroup = 'default';
    protected $table = 'ps_store_user';
    protected $primaryKey = 'ps_su_id';
    protected $useAutoIncrement = true;
    protected $insertID = 0;
    protected $returnType = 'object';
    protected $useSoftDeletes = true;
    protected $protectFields = true;
    protected $allowedFields = ['ps_store_id', 'ps_sr_id', 'username', 'password', 'is_owner', 'deleted_at', 'last_login'];
    // Dates
    protected $useTimestamps = true;
    protected $dateFormat = 'datetime';
    protected $createdField = 'created_at';
    protected $updatedField = 'updated_at';
    protected $deletedField = 'deleted_at';
    // Validation
    protected $validationRules = [];
    protected $validationMessages = [];
    protected $skipValidation = false;
    protected $cleanValidationRules = true;
    // Callbacks
    protected $allowCallbacks = true;
    protected $beforeInsert = [];
    protected $afterInsert = [];
    protected $beforeUpdate = [];
    protected $afterUpdate = [];
    protected $beforeFind = [];
    protected $afterFind = [];
    protected $beforeDelete = [];
    protected $afterDelete = [];
    public static function check_login($user_email, $password)
    {
        $data = ['username' => $user_email];
        $dataUser = new PsStoreUser();
        $userdata = $dataUser->join('ps_store_main', 'ps_store_main.ps_store_id=ps_store_user.ps_store_id')
            ->join('ps_store_role', 'ps_store_role.ps_sr_id=ps_store_user.ps_sr_id')
            ->getWhere($data)->getFirstRow();
        if ($userdata && $dataUser::validate_password($userdata, $password)) {
            $str = ['ps_store_id' => $userdata->ps_store_id];
            $ps_store_id = new PsStoreMain();
            $account = $ps_store_id->getByStoreId($str);
            if (is_null($account->suspended_at) && $account->sa_status == 1) {
                $dataUser::ses_login('ps_su_id', $userdata->ps_su_id);
                $dataUser::ses_role('ps_sr_id', $userdata->ps_sr_id);
                $dataUser::ses_store('ps_store_id', $userdata->ps_store_id);
                $dataUser::ses_store('ps_sa_id', $account->ps_sa_id);
                $data = ['last_login' => date("Y-m-d H:i:s")];
                $dataUser->update($userdata->ps_su_id, $data);
                return $userdata;
            } else {
                return false;
            }
        } else {
            return 'false';
        }
    }
    public static function check_user($username,$slug)
    {
        $data = ['username' => $username];
        $dataUser = new PsStoreUser();
        $userdata = $dataUser->getWhere($data)->getFirstRow();
        if ($userdata) {
            return false;
        } else {
            $slg = ['sm_slug' => $slug];
            $dataStore = new PsStoreMain();
            $storedata = $dataStore->getWhere($slg)->getFirstRow();
            if ($storedata) {
                return false;
            } else {
                return true;
            }
        }
    }
    public static function ses_store($sess_name, $user_id)
    {
        $session = Services::session();
        $session->set($sess_name, $user_id);
    }
    public static function validate_password($userdata, $password)
    {
        $dataUser = new PsStoreUser();
        $result = $dataUser::hash_verify($password, $userdata->password);
        if ($result)
            return true;
        else
            return false;
    }
    public static function hash_verify($password, $hashed)
    {
        if (password_verify($password, $hashed))
            return true;
        else
            return false;
    }
    public static function hash_password($password)
    {
        $options = [
            'cost' => 12
        ];
        return password_hash($password, PASSWORD_DEFAULT, $options);
    }
    public static function ses_login($sess_name, $user_id)
    {
        $session = Services::session();
        $session->set($sess_name, $user_id);
        setcookie("kcfinder_disabled", "false", time() + 1 * 24 * 60 * 60);
    }
    public static function ses_role($sess_name, $role_id)
    {
        $session = Services::session();
        $session->set($sess_name, $role_id);
    }
    public static function logout($data)
    {
        $data->session->stop();
        $data->session->destroy();
        setcookie("kcfinder_disabled", "", time() - 60);
    }
    public function fieldExist($field_name)
    {
        $db = \Config\Database::connect();
        return $db->fieldExists($field_name, 'ps_store_user');
    }
}