Files
accounting_dev_v2/application/libraries/CompanyContext.php
T
2026-09-11 16:03:00 +07:00

10 lines
1.1 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class CompanyContext
{
private $CI,$id;public function __construct(){$this->CI=&get_instance();}
public function id(){if($this->id)return$this->id;$uid=(int)$this->CI->session->userdata('user_id');$selected=(int)$this->CI->session->userdata('company_id');if($selected&&$this->CI->db->get_where('user_companies',array('user_id'=>$uid,'company_id'=>$selected))->row())return$this->id=$selected;$row=$this->CI->db->where('user_id',$uid)->order_by('is_default','DESC')->get('user_companies')->row();if(!$row)throw new BusinessException('User belum diberi akses perusahaan.');$this->CI->session->set_userdata('company_id',$row->company_id);return$this->id=(int)$row->company_id;}
public function assertAccess($companyId){if(!$this->CI->db->get_where('user_companies',array('user_id'=>(int)$this->CI->session->userdata('user_id'),'company_id'=>(int)$companyId))->row())throw new BusinessException('Akses perusahaan ditolak.');return true;}
public function scope($builder,$column='company_id'){$builder->where($column,$this->id());return$builder;}
}