Server IP : 103.191.208.50 / Your IP : 216.73.216.53 Web Server : LiteSpeed System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64 User : celkcksm ( 1031) PHP Version : 7.4.33 Disable Function : show_source, system, shell_exec, passthru, popen, exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/celkcksm/ecampus.ncriptech.com/application/controllers/admin/hrm/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php defined('BASEPATH') OR exit('No direct script access allowed'); /** * */ class Roles extends BaseAdminController { protected $inst_id=''; protected $inst_parent_id=''; protected $inst_code=''; protected $inst_type=''; protected $hrms_access=''; function __construct() { parent::__construct(); $institute_data=check_institute($this->data['userdata']); //print_obj($institute_data);die; $this->inst_id=$institute_data['institute_id']; $this->inst_parent_id=$institute_data['inst_parent_id']; $this->inst_code=$institute_data['inst_code']; $this->inst_type=$institute_data['inst_type']; $this->hrms_access=$institute_data['hrms_access']; $this->data['module_name']='System Roles & Permissions Management'; $this->load->model(array('hrm/employee_model'=>'em','hrm/roles_model'=>'hrmrm')); } public function index(){ if(session_userdata('isAdminLoggedin')){ $this->data['page_title']='Roles & Permissions'; if($this->hrms_access=='yes'){ $this->data['add_edit_access'] = check_access_control($this->data['userdata'], 'hrm_roles', ['add','edit']); $view_access = check_access_control($this->data['userdata'], 'hrm_roles', ['view']); if($view_access=='yes'){ $view='hrm/roles/vw_roles'; }else{ $view='hrm/vw_permission_denied'; } }else{ $view='hrm/vw_permission_denied'; } $this->theme->title($this->data['page_title'])->load($view, $this->data); }else{ redirect($this->data['base_url']); } } public function indexAddEdit($role_id=null){ if(session_userdata('isAdminLoggedin')){ $this->data['page_title']='Roles & Permissions'; $role_permissions=array(); $role_data=array(); if($this->hrms_access=='yes'){ $view_access = check_access_control($this->data['userdata'], 'hrm_roles', ['view']); if($view_access=='yes'){ $add_edit_access = check_access_control($this->data['userdata'], 'hrm_roles', ['add', 'edit']); if($add_edit_access=='yes'){ if(!empty($role_id)){ $role_id=decode_data($role_id); $role_data=$this->hrmrm->get_role(array('role_id'=>$role_id),TRUE,$this->inst_code); if(!empty($role_data) && !empty($role_data->role_permissions)){ $role_permissions=json_decode($role_data->role_permissions); } } $i=0; $this->data['role_data']=$role_data; $this->data['permissions']=$role_permissions; $view='hrm/roles/vw_roles_add_edit'; }else{ $view='hrm/vw_permission_denied'; } }else{ $view='hrm/vw_permission_denied'; } }else{ $view='hrm/vw_permission_denied'; } $this->theme->title($this->data['page_title'])->load($view, $this->data); }else{ redirect($this->data['base_url']); } } public function onAddEditRolesPermissions(){ if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){ if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){ if($this->hrms_access=='yes'){ $role_id=post_data('_role_id'); $role_name=post_data('hrm_role_name'); $role_display_name=post_data('hrm_role_display_name'); $hrm_role_status=post_data('hrm_role_status'); $role_permissions=$this->input->post('hrm_role_permissions'); $perm_values=[]; if(!empty($role_permissions)){ foreach ($role_permissions as $k => $v) { $perm_values[$k]=$v; } } $roles_data=array( 'role_name'=>$role_name, 'role_display_name'=>$role_display_name, 'role_inst_id'=>$this->inst_id, 'role_inst_type'=>$this->inst_type, 'role_status'=>$hrm_role_status, 'is_editable_deletable'=>'yes', 'role_permissions'=>(!empty(perm_values))?json_encode($perm_values):null ); if(empty($role_id)){ $get_role=$this->hrmrm->get_role(array('role_name'=>$role_name,'role_inst_id'=>$this->inst_id,'role_inst_type'=>$this->inst_type)); if(empty($get_role)){ $added=$this->hrmrm->store_role($roles_data); if($added){ $return['success']='Role & Permissions added successfully'; }else{ $return['error']='Role & Permissions not added.'; } }else{ $return['error']='Role already exists'; } }else{ $role_id=decode_data($role_id); $get_role=$this->hrmrm->get_role(array('role_inst_id'=>$this->inst_id,'role_inst_type'=>$this->inst_type,'role_id'=>$role_id)); if(!empty($get_role)){ $_get_role=$this->hrmrm->get_role(array('role_name'=>$role_name,'role_inst_id'=>$this->inst_id,'role_inst_type'=>$this->inst_type,'role_id!='=>$role_id)); if(empty($_get_role)){ if(is_numeric($role_id)){ $updated=$this->hrmrm->update_role($roles_data,array('role_id'=>$role_id)); if($updated){ $return['success']='Role & Permissions updated successfully'; }else{ $return['error']='Role & Permissions not updated.'; } }else{ $return['error']='Data not found to edit'; } }else{ $return['error']='Role already exists 1'; } }else{ $return['error']='Role already exists 2'; } } }else{ $return['error']='Permission denied'; } json_headers($return); }else{ redirect($this->data['base_url']); } }else{ redirect($this->data['base_url']); } } public function onSearchEmployeesRolesList(){ if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){ if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){ $edit_access = check_access_control($this->data['userdata'], 'hrm_roles', ['edit']); $delete_access = check_access_control($this->data['userdata'], 'hrm_roles', ['delete']); if($this->hrms_access=='yes'){ $param['column_order'] = array( null, 'role_name', 'role_display_name' ); $param['role_inst_id']=$this->inst_id; $param['role_inst_type']=$this->inst_type; $param['column_search'] = array('role_name','role_display_name'); $param['order'] = array('role_id' => 'ASC'); $posts=$this->input->post(); $list = $this->hrmrm->_get_roles($posts,$param,FALSE,$this->inst_code,FALSE); $data = array(); $no = isset($posts['start'])?$posts['start']:0; $action=''; foreach ($list as $role){ $no++; $row = array(); $row[] = $no; $row[] = $role->role_name; $row[] = $role->role_display_name; if($role->role_status=='active'){ $status='<span class="badge badge-sm badge-success">Active</span>'; }else if($role->role_status=='inactive'){ $status='<span class="badge badge-sm badge-danger">Inactive</span>'; } $row[] = $status; if($role->is_editable_deletable=='yes'){ if($edit_access=='yes' && $delete_access=='yes'){ $row[] = '<a class="btn btn-xs btn-dark" href="'.$this->data['base_url'].'/hrm/employees/roles/add/'.encode_data($role->role_id).'"><i class="fa fa-edit"></i></a> <button type="button" class="btn btn-xs btn-danger btn_delete_canteen_vendor" data-role_id="'.encode_data($role->role_id).'"><i class="fa fa-trash"></i></button>'; }else if($edit_access=='no' && $delete_access=='yes'){ $row[] = '<button type="button" class="btn btn-xs btn-danger btn_delete_canteen_vendor" data-role_id="'.encode_data($role->role_id).'"><i class="fa fa-trash"></i></button>'; }else if($edit_access=='yes' && $delete_access=='no'){ $row[] = '<a class="btn btn-xs btn-dark" href="'.$this->data['base_url'].'/hrm/employees/roles/add/'.encode_data($role->role_id).'"><i class="fa fa-edit"></i></a>'; }else{ $row[]='<span class="badge badge-danger">Not permitted</span>'; } }else{ $row[] = ''; } $data[] = $row; } $output = array( "draw" => isset($posts['draw'])?$posts['draw']:'', "recordsTotal" => $this->hrmrm->_get_roles($posts,$param,TRUE,$this->inst_code), "recordsFiltered" => $this->hrmrm->_get_roles($posts,$param,TRUE,$this->inst_code), "data" => $data, ); }else{ $output['error']='permission denied'; } echo json_encode($output); }else{ redirect($this->data['base_url']); } }else{ redirect($this->data['base_url']); } } /*****Users Access*****/ public function indexRoleAccessAddEdit($emp_id){ if(session_userdata('isAdminLoggedin')){ $this->data['page_title']='User Access Permissions'; if($this->hrms_access=='yes'){ if(!empty($emp_id)){ $this->data['emp_id']=$emp_id; $permissions=array(); $user_permissions=array(); $emp_id=decode_data($emp_id); $employee_data=$this->em->get_employee(array('emp_id'=>$emp_id),TRUE,$this->inst_code); $employee_access_data=$this->um->_get_user(array('user_id'=>$employee_data->emp_user_id),TRUE,$this->inst_code); if(!empty($employee_access_data->user_permissions)){ $user_permissions=json_decode($employee_access_data->user_permissions); } $get_role=$this->hrmrm->get_role(array('role_id'=>$employee_data->emp_role),TRUE,$this->inst_code); $roles_permissions=json_decode($get_role->role_permissions); $user_access_permissions=$this->config->item('action_permissions_array'); //print_obj($roles_permissions);die; foreach ($roles_permissions as $key => $value) { foreach ($value as $k => $v) { if(!empty($user_access_permissions[$k])){ $permissions[$key]=$user_access_permissions[$k]; } } } } //print_obj($user_permissions);die; $this->data['permissions']=$permissions; $this->data['user_permissions']=(!empty($user_permissions))?$user_permissions[0]:null; $view='hrm/roles/vw_roles_user_access_add_edit'; }else{ $view='hrm/vw_permission_denied'; } $this->theme->title($this->data['page_title'])->load($view, $this->data); }else{ redirect($this->data['base_url']); } } public function onAddEditUserAccess(){ if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){ if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){ $_emp_id=post_data('_emp_id'); $hrm_access_permissions=$this->input->post('hrm_access_permissions'); if(!empty($_emp_id)){ $emp_id=decode_data($_emp_id); $employee_data=$this->em->get_employee(array('emp_id'=>$emp_id),TRUE,$this->inst_code); $employee_user_id=$employee_data->emp_user_id; $data_access=json_encode($hrm_access_permissions); $updated=$this->um->update_users(array('user_permissions'=>$data_access),array('user_id'=>$employee_user_id),FALSE,$this->inst_code); if($updated){ $return['success']='Access updated'; }else{ $return['error']='Access not updated'; } }else{ $return['error']='Employee details not found'; } json_headers($return); }else{ redirect($this->data['base_url']); } }else{ redirect($this->data['base_url']); } } public function onLoadUsersRolesSettings(){ if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){ if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){ $role_id=post_data('role_id'); $roles_data=$this->hrmrm->get_role(array('role_id'=>$role_id),TRUE,$this->inst_code); if(!empty($roles_data)){ $permissions=json_decode($roles_data->role_permissions); } if($this->input->post('role_user_id')){ $user_id=decode_data(post_data('role_user_id')); $user_type=post_data('user_type'); $user_data=$this->um->get_user(array('user_id'=>$user_id),$user_type,null,$this->inst_code); if(!empty($user_data)){ $permissions=json_decode($user_data->user_permissions); } }else{ } $this->data['permissions']=$permissions; // print_obj($permissions);die; $this->data['hrms_access']=$this->hrms_access; $return['html']=$this->theme->view('_pages/hrm/roles/vw_users_roles_permissions_dyna',$this->data,true); json_headers($return); }else{ redirect($this->data['base_url']); } }else{ redirect($this->data['base_url']); } } }