File: /home/cafsindia/wealth_cafsindia_com/application/models/Module.php
<?php
class Module extends CI_Model{
function __construct(){
parent::__construct();
}
public function get_module_name($module_id){
$query = $this->db->get_where('modules', array('module_id' => $module_id), 1);
if($query->num_rows() == 1){
$row = $query->row();
return $this->lang->line($row->name_lang_key);
}
return $this->lang->line('error_unknown');
}
public function get_allowed_modules($logged_id){
if((int)$this->session->userdata('logged_role') === 12){
$this->db->from('modules');
$this->db->join('permissions', 'permissions.permission_id = modules.module_id');
$this->db->join('grants_customer', 'permissions.permission_id = grants_customer.permission_id');
$this->db->where('prime_customer_id', $logged_id);
$this->db->order_by('sort', 'asc');
return $this->db->get();
}else{
$this->db->from('modules');
$this->db->join('permissions', 'permissions.permission_id = modules.module_id');
$this->db->join('grants', 'permissions.permission_id = grants.permission_id');
$this->db->where('prime_employees_id', $logged_id);
$this->db->order_by('sort', 'asc');
return $this->db->get();
}
}
public function get_header_menu($logged_id){
if((int)$this->session->userdata('logged_role') === 12){
$this->db->select('main_menu.menu_name,modules.module_id,module_name,sub_menu_name');
$this->db->from('modules');
$this->db->join('permissions', 'permissions.permission_id = modules.module_id');
$this->db->join('grants_customer', 'permissions.permission_id = grants_customer.permission_id');
$this->db->join('main_menu', 'main_menu.prime_menu_id = modules.menu_id');
$this->db->join('sub_menu', 'cw_sub_menu.prime_sub_menu_id = modules.sub_menu_id','left');
$this->db->where('prime_customer_id', $logged_id);
$this->db->where('modules.trans_status',1);
$this->db->where('modules.show_module',1);
$this->db->where('main_menu.trans_status',1);
$this->db->order_by('menu_sort,sort', 'asc');
$query = $this->db->get();
return $query->result();
}else{
$this->db->select('main_menu.menu_name,modules.module_id,module_name,sub_menu_name');
$this->db->from('modules');
$this->db->join('permissions', 'permissions.permission_id = modules.module_id');
$this->db->join('grants', 'permissions.permission_id = grants.permission_id');
$this->db->join('main_menu', 'main_menu.prime_menu_id = modules.menu_id');
$this->db->join('sub_menu', 'cw_sub_menu.prime_sub_menu_id = modules.sub_menu_id','left');
$this->db->where('prime_employees_id', $logged_id);
$this->db->where('modules.trans_status',1);
$this->db->where('modules.show_module',1);
$this->db->where('main_menu.trans_status',1);
$this->db->order_by('menu_sort,sort', 'asc');
$query = $this->db->get();
return $query->result();
}
}
//GET REPORT DETAILS FOR ROLE BASED HEADER -- 13MARCH2019
public function get_report_menu($logged_user){
$logged_id = $logged_user->prime_employees_id;
$logged_role = $logged_user->prime_role_id;
$this->db->select('prime_report_setting_id,report_name');
$this->db->from('report_setting');
$this->db->where('report_setting.trans_status',1);
$this->db->where("report_for IN (".$logged_role.")",NULL, false);
$this->db->order_by('prime_report_setting_id', 'asc');
$query = $this->db->get();
return $query->result();
}
/* USED IN BOTH EMPLOYEE AND CUSTOMER MODULE - START*/
public function get_all_modules($control_name){
if(strtoupper($control_name) === "EMPLOYEES"){
$this->db->from('modules');
$this->db->join('cw_main_menu', 'cw_main_menu.prime_menu_id = modules.menu_id');
$this->db->order_by('abs(menu_sort)', 'asc');
$query = $this->db->get();
return $query->result();
}else{
$query = $this->db->query("SELECT * FROM cw_modules JOIN `cw_main_menu` ON `cw_main_menu`.`prime_menu_id` = cw_modules.menu_id where FIND_IN_SET('2',rights_to) ORDER BY sort ASC");
return $query->result();
}
}
public function has_grant($control_name,$permission_id, $logged_id){
if($permission_id == null){
return TRUE;
}
if(strtoupper($control_name) === "EMPLOYEES"){
$query = $this->db->get_where('grants', array('prime_employees_id' => $logged_id, 'permission_id' => $permission_id), 1);
}else
if(strtoupper($control_name) === "EMPLOYEE_PERMISSION"){
$query = $this->db->get_where('employee_permission', array('role' => $logged_id, 'permission_id' => $permission_id), 1);
}else{
$query = $this->db->get_where('grants_customer', array('prime_customer_id' => $logged_id, 'permission_id' => $permission_id), 1);
}
return((int)$query->num_rows() === 1);
}
public function has_access($control_name,$permission_id, $logged_id){
$this->db->select('access_add,access_update,access_delete,access_search,access_export,access_import');
if(strtoupper($control_name) === "EMPLOYEES"){
$this->db->from('grants');
$this->db->where('prime_employees_id', $logged_id);
}else
if(strtoupper($control_name) === "EMPLOYEE_PERMISSION"){
$this->db->from('employee_permission');
$this->db->where('role', $logged_id);
}else{
$this->db->from('grants_customer');
$this->db->where('prime_customer_id', $logged_id);
}
$this->db->where('permission_id', $permission_id);
return $this->db->get()->result_array();
}
function update_grants($control_name,$logged_id,$grants_data,$access_data){
if(strtoupper($control_name) === "EMPLOYEES"){
$success = $this->db->delete('grants', array('prime_employees_id' => $logged_id));
}else{
$success = $this->db->delete('grants_customer', array('prime_customer_id' => $logged_id));
}
if($success){
foreach($grants_data as $permission_id){
$add = 0;
if (in_array("$permission_id::add", $access_data)){
$add = 1;
}
$update = 0;
if (in_array("$permission_id::update", $access_data)){
$update = 1;
}
$delete = 0;
if (in_array("$permission_id::delete", $access_data)){
$delete = 1;
}
$search = 0;
if (in_array("$permission_id::search", $access_data)){
$search = 1;
}
$export = 0;
if (in_array("$permission_id::export", $access_data)){
$export = 1;
}
$import = 0;
if (in_array("$permission_id::import", $access_data)){
$import = 1;
}
if(strtoupper($control_name) === "EMPLOYEES"){
$this->db->insert('grants', array('permission_id' => $permission_id, 'prime_employees_id' => $logged_id, 'access_add' => $add, 'access_update' => $update, 'access_delete' => $delete, 'access_search' => $search, 'access_export' => $export, 'access_import' => $import));
}else{
$this->db->insert('grants_customer', array('permission_id' => $permission_id, 'prime_customer_id' => $logged_id, 'access_add' => $add, 'access_update' => $update, 'access_delete' => $delete, 'access_search' => $search, 'access_export' => $export, 'access_import' => $import));
}
}
}
}
/* USED IN BOTH EMPLOYEE AND CUSTOMER MODULE - END*/
}
?>