| 
				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/public_html/kite.mata-lashes.com/app/Models/  | 
Upload File :  | 
<?php
namespace App\Models;
use CodeIgniter\Model;
use Config\Services;
class PsAdmUser extends Model
{
    protected $DBGroup = 'default';
    protected $table = 'ps_adm_user';
    protected $primaryKey = 'ps_au_id';
    protected $useAutoIncrement = true;
    protected $insertID = 0;
    protected $returnType = 'object';
    protected $useSoftDeletes = true;
    protected $protectFields = true;
    protected $allowedFields = ['ps_ar_id', 'username', 'password', 'last_login', '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_email($user_email)
    {
        $data = ['au_email' => $user_email];
        $dataUser = new PsAdmUser();
        $userdata = $dataUser->getWhere($data)->getFirstRow();
        if ($userdata) {
            return $userdata;
        } else {
            return false;
        }
    }
    public static function check_login($user_email, $password)
    {
        $data = ['username' => $user_email];
        $dataUser = new PsAdmUser();
        $userdata = $dataUser->getWhere($data)->getFirstRow();
        if ($userdata && $dataUser::validate_password($userdata, $password)) {
            $dataUser::ses_login('ps_au_id', $userdata->ps_au_id);
            $dataUser::ses_role('ps_ar_id', $userdata->ps_ar_id);
            $data = ['last_login' => date("Y-m-d H:i:s")];
            $dataUser->update($userdata->ps_au_id, $data);
            return $userdata;
        } else {
            return false;
        }
    }
    public static function validate_password($userdata, $password)
    {
        $dataUser = new PsAdmUser();
        $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_adm_user');
    }
}