bbone/application/modules/Auth/models/Auth_model.php
suseendhiran17 e5c14bc282 suseendhiran
2023-01-05 15:30:48 +05:30

212 lines
5.1 KiB
PHP

<?php
class Auth_model extends MY_Model {
public function edit_option_md5($action, $id, $table)
{
$this->db->where('md5(id)',$id);
$this->db->update($table,$action);
return;
}
//is logged in
public function is_logged_in()
{
//check if user logged in
if ($this->session->userdata('logged_in') == TRUE && !empty($this->get_user($this->session->userdata('id')))) {
return true;
} else {
return false;
}
}
//function get user
public function get_logged_user()
{
if ($this->is_logged_in()) {
$this->db->select('u.*');
$this->db->from('users as u');
// $this->db->join('country as c', 'c.id = u.country', 'LEFT');
$this->db->where('u.id', $this->session->userdata('id'));
$query = $this->db->get();
return $query->row();
}
}
//get user by id
public function get_user($id)
{
$this->db->where('id', $id);
$query = $this->db->get('users');
return $query->row();
}
//is super admin
public function is_superadmin()
{
// get_header_info();
//check logged in
if (!$this->is_logged_in()) {
return false;
}
//check role
if (user()->role == 'sadmin') {
return true;
} else {
return false;
}
}
//is admin
public function is_admin()
{
// get_header_info();
//check logged in
if (!$this->is_logged_in()) {
return false;
}
//check role
if (user()->role == 'admin') {
return true;
} else {
return false;
}
}
//is user
public function is_user()
{
// get_header_info();
//check logged in
if (!$this->is_logged_in()) {
return false;
}
//check role
if (user()->role == 'user') {
return true;
} else {
return false;
}
}
//is pro user
public function is_pro_user()
{
//check logged in
if (!$this->is_logged_in()) {
return false;
}
//check role
if (user()->role == 'user' && user()->account_type == 'pro') {
return true;
} else {
return false;
}
}
//logout
public function logout()
{
//unset user data
$this->session->unset_userdata('logged_in');
$this->session->unset_userdata('admin_logged_in');
$this->session->unset_userdata('app_key');
$this->session->sess_destroy();
}
// check valid user
function validate_user()
{
$this->db->select('*');
$this->db->from('users');
$this->db->where('email', $this->input->post('user_name'));
$this->db->or_where('user_name', $this->input->post('user_name'));
// $this->db->where('is_active', 1);
$this->db->limit(1);
$query = $this->db->get();
if($query->num_rows() == 1){
return $query->row();
}else{
return false;
}
}
// check valid staff
function validate_role()
{
$this->db->select('*');
$this->db->from('users_role');
$this->db->where('email', $this->input->post('user_name'));
$this->db->limit(1);
$query = $this->db->get();
if($query->num_rows() > 0)
{
return $query->row();
}
else{
return FALSE;
}
}
public function send_email($to, $subject, $message)
{
$this->load->library('email');
$settings = get_settings();
if ($settings->mail_protocol == "mail") {
$config = Array(
'protocol' => 'mail',
'smtp_host' => $settings->mail_host,
'smtp_port' => $settings->mail_port,
'smtp_user' => $settings->mail_username,
'smtp_pass' => $settings->mail_password,
'smtp_timeout' => 100,
'mailtype' => 'html',
'charset' => 'utf-8',
'wordwrap' => TRUE
);
} else {
$config = Array(
'protocol' => 'smtp',
'smtp_host' => $settings->mail_host,
'smtp_port' => $settings->mail_port,
'smtp_user' => $settings->mail_username,
'smtp_pass' => $settings->mail_password,
'smtp_timeout' => 100,
'mailtype' => 'html',
'charset' => 'utf-8',
'wordwrap' => TRUE
);
}
//initialize
$this->email->initialize($config);
//send email
$this->email->from($settings->mail_username, $settings->application_name);
$this->email->to($to);
$this->email->subject($subject);
$this->email->message($message);
$this->email->set_newline("\r\n");
return $this->email->send();
}
}