load->database(); $query = $this->db->query('SELECT * FROM modules ORDER BY module_name ASC'); return $query->result(); } public function getModuleById($module_id){ $this->load->database(); $query = $this->db->query('SELECT * FROM modules WHERE module_id = "'.$module_id.'" LIMIT 1;'); return $query->result()[0]; } public function getModuleBySlug($module_slug){ $this->load->database(); $query = $this->db->query('SELECT * FROM modules WHERE module_slug = "'.$module_slug.'" LIMIT 1;'); return $query->result()[0]; } public function getUserModules($userId){ $this->load->database(); $this->load->model('User_model'); $currentUser = $this->User_model->getUserById($userId); $query = $this->db->query('SELECT * FROM modules'); $all_module = $query->result(); $activeModules = array(); $activeModuleIds = array(); foreach($all_module as $moduleItem){ //check groupmodules $moduleGroupIds = unserialize($moduleItem->permission_group_ids); $moduleUserIds = unserialize($moduleItem->permission_ids); if(!empty($moduleItem->permission_ids)){ } //check group ids if(is_array($moduleGroupIds)){ if(in_array($currentUser->permission_id, $moduleGroupIds)){ if(!in_array($moduleItem->module_id, $activeModuleIds)){ $activeModules[] = $moduleItem; $activeModuleIds[] = $moduleItem->module_id; } } } //check user_ids if(is_array($moduleUserIds)){ if(in_array($currentUser->user_id, $moduleUserIds)){ if(!in_array($moduleItem->module_id, $activeModuleIds)){ $activeModules[] = $moduleItem; $activeModuleIds[] = $moduleItem->module_id; } } } } return $activeModules; } public function is_module_available($module_id, $userId){ $this->load->database(); $this->load->model('User_model'); $currentModule = $this->getModuleById($module_id); $currentUser = $this->User_model->getUserById($userId); $moduleGroupIds = unserialize($currentModule->permission_group_ids); $moduleUserIds = unserialize($currentModule->permission_ids); $moduleIsOk = 0; //if($currentUser->permission_slug == 'admin' && $module_id != '5'){ if($currentUser->permission_slug == 'admin'){ $moduleIsOk = 1; } //check groupmodules if(is_array($moduleGroupIds)){ if(in_array($currentUser->permission_id, $moduleGroupIds)){ $moduleIsOk = 1; } } //check user_ids if(is_array($moduleUserIds)){ if(in_array($currentUser->user_id, $moduleUserIds)){ $moduleIsOk = 1; } } if($moduleIsOk){ return 1; } else{ return 0; } } public function is_userId_available_in_module($module_id, $userId){ $this->load->database(); $this->load->model('User_model'); $currentModule = $this->getModuleById($module_id); $userIds = unserialize($currentModule->permission_ids); if(is_array($userIds)){ if(in_array($userId, $userIds)){ return 1; } } } public function is_groupId_available_in_module($module_id, $groupId){ $this->load->database(); $this->load->model('User_model'); $currentModule = $this->getModuleById($module_id); $moduleGroupIds = unserialize($currentModule->permission_group_ids); if(is_array($moduleGroupIds)){ if(in_array($groupId, $moduleGroupIds)){ return 1; } } } public function updateModule($fieldName, $module_id, $moduleUserArray){ $this->load->database(); if(!empty($moduleUserArray)){ $query = $this->db->query("UPDATE modules SET ".$fieldName." ='".serialize($moduleUserArray)."' WHERE module_id = '".$module_id."';"); } else{ $query = $this->db->query("UPDATE modules SET ".$fieldName." ='' WHERE module_id = '".$module_id."';"); } } public function getModulesByPermissionSlug($permissionSlug){ $this->load->database(); $this->load->model('Module_model'); $selectedPermission = $this->Module_model->getPermissionBySlug($permissionSlug); $query = $this->db->query('SELECT * FROM modules;'); $results = $query->result(); $resultArray = array(); foreach($results as $resultItem){ $permissionIdsArray = explode(',', $resultItem->permission_ids); if(in_array($selectedPermission->permission_id, $permissionIdsArray)){ $resultArray[] = $resultItem; } } return $resultArray; } public function getPermissionBySlug($permissionSlug){ $this->load->database(); $query = $this->db->query('SELECT * FROM permissions WHERE permission_slug = "'.$permissionSlug.'";'); if($query->num_rows() == 1){ return $query->result()[0]; } else{ return 0; } } public function user_can_access_this_module($moduleSlug, $userId){ $this->load->database(); $this->load->model('User_model'); $selectedUser = $this->User_model->getUserById($userId); $query = $this->db->query('SELECT * FROM modules WHERE module_slug = "'.$moduleSlug.'" LIMIT 1;'); if($query->num_rows() == 1){ $result = $query->result()[0]; $permissionArray = explode(',', $result->permission_ids); if(in_array($selectedUser->permission_id, $permissionArray)){ return 1; } else{ return 0; } } else{ return 0; } } } ?>